# (group を指定していないルールはグループ 0) # IP オプションが指定されたもの、断片化されたもの、 # 短いパケットなどはここで破棄 block in log quick from any to any with ipopts frag block in log quick proto tcp from any to any with short ############################################ # 外部(Internet)からの入力(グループ 100) pass in on tun0 all head 100 # アドレス偽装防止 block in from 127.0.0.0/8 to any group 100 block in from XXX.XXX.XXX.XXX/32 to any group 100 block in from 192.168.1.0/24 to any group 100 # プライベートアドレスやマルチキャストなどの破棄 block in from 10.0.0.0/8 to any group 100 block in from 172.16.0.0/12 to any group 100 block in from 192.168.0.0/16 to any group 100 block in from 0.0.0.0/8 to any group 100 block in from 169.254.0.0/16 to any group 100 block in from 192.0.2.0/24 to any group 100 block in from 224.0.0.0/4 to any group 100 block in from 240.0.0.0/4 to any group 100 # NetBIOS (port 137-139) block in quick from any port 136 >< 140 to any group 100 block in quick from any to any port 136 >< 140 group 100 # UDP パケットをデフォルトで拒否 block in proto udp all group 100 # 接続された TCP パケットを許可 pass in quick proto tcp all flags A/A group 100 # 外部からの SSH 接続開始を許可 #pass in quick proto tcp from any to any port = 22 flags S/SA group 100 # 外部からの SMTP 接続開始を許可 pass in quick proto tcp from any to any port = 25 flags S/SA group 100 # IDENT には答えない block return-rst in quick proto tcp from any to any port = 113 group 100 # DNS サーバを立てている場合 pass in quick proto tcp from any to any port = 53 flags S/SA group 100 pass in quick proto udp from any to any port = 53 group 100 # WWW サーバを立てている場合 pass in quick proto tcp from any to any port = 80 flags S/SA group 100 # それ以外の外部からの TCP 接続を拒否し、ログに残す block in log quick proto tcp all flags S/SA group 100 # 外部の DNS に問い合わせた帰りのパケット pass in proto udp from any port = 53 to any group 100 # NTP の帰り pass in proto udp from any port = 123 to any group 100 # 内部から外部への ping のみ許可 block in proto icmp all group 100 pass in proto icmp all icmp-type 0 group 100 # tracerouteの帰りを許可 pass in proto icmp all icmp-type 11 group 100 # RFC2979 pass in proto icmp all icmp-type 3 group 100 ############################################ # 外部への出力(グループ 200) pass out on tun0 all head 200 # アドレス偽造防止 block out from 127.0.0.0/8 to any group 200 block out from any to 127.0.0.0/8 group 200 block out from any to XXX.XXX.XXX.XXX/32 group 200 # プライベートアドレスやマルチキャストなどの破棄 block out from any to 10.0.0.0/8 group 200 block out from any to 172.16.0.0/12 group 200 block out from any to 192.168.0.0/16 group 200 block out from any to 0.0.0.0/8 group 200 block out from any to 169.254.0.0/16 group 200 block out from any to 192.0.2.0/24 group 200 block out from any to 224.0.0.0/4 group 200 block out from any to 240.0.0.0/4 group 200 # NetBIOS (port 137-139) block out from any port 136 >< 140 to any group 200 block out from any to any port 136 >< 140 group 200 # 接続された TCP パケットを許可 pass out proto tcp all flags A/A group 200 # 外部の DNS サーバへの問い合わせを許可 pass out from any to any port = 53 group 200 # 外部への接続開始を許可 pass out proto tcp all flags S/SA group 200 # 外部の NTP サーバへの問い合わせを許可 pass out proto udp from any to any port = 123 group 200 # tracerouteの行きを許可 pass out proto udp from any to any port = 33434 group 200 # 内部から外部への ping のみ許可 block out proto icmp all group 200 pass out proto icmp all icmp-type 8 group 200 ############################################ # 内部から来るパケット(グループ 300) pass in on fxp0 all head 300 block in from 127.0.0.0/8 to any group 300 block in from 192.168.1.1/32 to any group 300 block in from XXX.XXX.XXX.XXX/0xffffff00 to any group 300 ############################################ # 内部へ出ていくパケット(グループ 400) pass out on fxp0 all head 400 block out from 127.0.0.0/8 to any group 400 block out from any to 127.0.0.0/8 group 400 block out from any to 192.168.1.1/32 group 400 ############################################ # ループバックへのルール(グループ 0) # (最後にあっても OK) pass in quick on lo0 all pass out quick on lo0 all