R7800 OpenWrt(hnyman ビルド)のファイアーウォールの初期設定

  • OpenWrt は fw3 を使っている。
  • fw3 では iptable を直接いじるのではなく、設定ファイル(/etc/config/firewall 等)から一連の iptable を生成して、それを netfilter に渡す。netfilter に渡される iptable 自体はかなり複雑でユーザーが直接いじれるものではなくなっている。従って、fw3 に渡す設定ファイルの方を扱うことを考えればよく、UCI や LuCI で CUI/GUI を通じて操作するのも、設定ファイルの方である。

デフォルト設定

config defaults
    option syn_flood '1'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

グローバルに適用されるデフォルト設定(👉 Defaults)。

通信のルーター自身への出入は許可し、通過は拒絶する。syn_flood プロテクションを on。

lan ゾーン

config zone
    option name 'lan'
    list network 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'

lan のゾーン設定(👉 Zones)。

lan 側インターフェース(lan)をこのゾーン(lan)に割り当て、全ての通信を許可。

wan ゾーン

config zone
    option name 'wan'
    list network 'wan'
    list network 'wan6'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'

wan のゾーン設定(👉 Zones)。

wan 側インターフェース(wan / wan6)をこのゾーン(lan)に割り当て、ルーター自体から出ていく通信のみを許可し、その通信をマスカレードする。さらに MSS サイズの最適化を行う。

フォワーディング設定

config forwarding
    option src 'lan'
    option dest 'wan'

ゾーン間のフォワーディング設定(👉 Forwardings)。

lan ゾーンから wan ゾーンへのフォワードを許可する。

DHCP Renew 用のポート開放

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

wan からの DHCP Renew を許可するフィルタリングルール(👉 Rules)。

ping の許可

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

wan からの ICMP echo request(ping)を許可するフィルタリングルール(👉 Rules)。

IGMP の許可

config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
v option target 'ACCEPT'

wan からの IGMP(Internet Group Management Protocol)を許可するフィルタリングルール(👉 Rules)。

DHCPv6 用のポート開放

config rule
    option name 'Allow-DHCPv6'
    option src 'wan'
    option proto 'udp'
    option src_ip 'fc00::/6'
    option dest_ip 'fc00::/6'
    option dest_port '546'
    option family 'ipv6'
    option target 'ACCEPT'

wan からの DHCPv6 を許可するフィルタリングルール(👉 Rules)。

MLD の許可

config rule
    option name 'Allow-MLD'
    option src 'wan'
    option proto 'icmp'
    option src_ip 'fe80::/10'
    list icmp_type '130/0'
    list icmp_type '131/0'
    list icmp_type '132/0'
    list icmp_type '143/0'
    option family 'ipv6'
    option target 'ACCEPT'

wan 側リンクローカルアドレスからの MLD(Multicast Listener Discovery)を許可するフィルタリングルール(👉 Rules)。

ICMPv6 (Input) の許可

config rule
    option name 'Allow-ICMPv6-Input'
    option src 'wan'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    list icmp_type 'router-solicitation'
    list icmp_type 'neighbour-solicitation'
    list icmp_type 'router-advertisement'
    list icmp_type 'neighbour-advertisement'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

wan からの ICMPv6 (Input) を許可するフィルタリングルール(👉 Rules)。

ICMPv6 (Forward) の許可

config rule
    option name 'Allow-ICMPv6-Forward'
    option src 'wan'
    option dest '*'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

wan からの ICMPv6 (Forward) を許可するフィルタリングルール(👉 Rules)。

IPSec ESP の許可

config rule
    option name 'Allow-IPSec-ESP'
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

wan からの IPSec ESP(Encapsulated Security Payload)を許可するフィルタリングルール(👉 Rules)。

ISAKMP 用のポート開放

config rule
    option name 'Allow-ISAKMP'
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

wan からの ISAKMP(Internet Security Association and Key Management Protocol)を許可するフィルタリングルール(👉 Rules)。

カスタムスクリプト

config include
    option path '/etc/firewall.user'

デフォルトでは空(👉 Includes)。

miniupnpd 用のカスタムスクリプト

config include 'miniupnpd'
    option type 'script'
    option path '/usr/share/miniupnpd/firewall.include'
    option family 'any'
    option reload '1'

UPnP IGD daemon に関するカスタムスクリプト(👉 Includes)らしい。

Ingress filtering 用のカスタムスクリプト

config include 'bcp38'
    option type 'script'
    option path '/usr/lib/bcp38/run.sh'
    option family 'IPv4'
    option reload '1'

IEFT BCP38(Ingress filtering)用のカスタムスクリプト(👉 Includes)らしい。

コメント

人気の投稿