最近の変更サイトマップ

FreeBSD 11のipfwでパケットフィルタリング

WIP

試した環境

  • FreeBSD 11.2-RELEASE-p7
    • ipfw自体は相当昔から搭載されているので、かなり前のバージョンでも殆ど一緒だと思われる。

ipfwの有効化

おなじみ/etc/rc.conffirewall_enableを追加する。firewall_typeには下表の値が指定可能。

firewall_type 意味
open 全てのトラフィックを通過
client 自ホストのみを保護
simple 自ネットワークを保護
closed ループバックインタフェース以外のIPトラフィックを全て無効化
workstation ステートフルルールで自ホストのみを保護
UNKNOWN ファイアウォールのルールを読み込まない
ファイルパス ファイアウォールのルールファイルのフルパス

これらデフォルトルールの設定は/etc/rc.firewallで処理される。client, simple, workstationの場合、自ネットワークなどの追加設定が必要だが、変数名なども全て同ファイル内に記載がある。

ここではひとまずopenとし全パケットを通過させる。

# echo 'firewall_enable="YES"' >> /etc/rc.conf
# echo 'firewall_type="open"' >> /etc/rc.conf

ファイアウォールを起動する(もしくはマシンを再起動)。確実にfirewall_type=“open”であることを再度確認のこと。ipfwのデフォルト設定は全パケット拒否なので、特にリモートで操作している場合に大変残念なことになる…。

# service ipfw start

ipfw -a listでフィルタルールが表示されれば成功。

# ipfw -a list
00100   0     0 allow ip from any to any via lo0
00200   0     0 deny ip from any to 127.0.0.0/8
00300   0     0 deny ip from 127.0.0.0/8 to any
00400   0     0 deny ip from any to ::1
00500   0     0 deny ip from ::1 to any
00600   0     0 allow ipv6-icmp from :: to ff02::/16
00700   0     0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800   0     0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900   0     0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000   3   216 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65000 399 39044 allow ip from any to any
65535   0     0 deny ip from any to any

設定ファイルからのルール読み込み

firewall_typeにファイルのフルパスを設定すると、ルールをファイルから読み込ませる事ができる。

firewall_typeとfirewall_scriptの違い

firewall_script
rcスクリプト用のファイアウォール設定ファイルを指定する変数。デフォルトは/etc/rc.firewall、すなわちipfw用のファイルが指定されている。
firewall_type
/etc/rc.firewallスクリプト用の変数。指定する値は前述の表の通り。従ってfirewall_scriptが独自のスクリプトの場合、特に意味のない値となる。とはいえ、ipfw自体がシステムに食い込んでいることもあり、デフォルトでUNKNOWNが設定されている。

ざっくり言うと、firewall_scriptには設定用のシェルスクリプトファイル、firewall_typeにはipfwのサブコマンドファイルを指定することになる。

参考サイト

freebsd/freebsd_11_ipfw.txt · 最終更新: 2019-03-05 20:09 by Decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0