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'
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; IPSec で使われる鍵交換用の規格)を許可するフィルタリングルール(👉 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)らしい。


コメント
コメントを投稿