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)らしい。
コメント
コメントを投稿