Solaris 10 には、IP Filter というパケットフィルタ型ファイアウォールが実装されている。インターネットに接続する上で不可欠な設定項目である。
- /etc/ipf/pfil.ap で、IP Filter を利用してフィルタリングするインタフェース(NIC)を指定して有効にする。コメントをはずすす。(利用しているインタフェース名がない場合は追記する)
# vi /etc/ipf/pfil.ap
--- /etc/ipf/pfil.ap.default
+++ /etc/ipf/pfil.ap
@@ -6,7 +6,7 @@
#
#major minor lastminor modules
-#iprb -1 0 pfil
+iprb -1 0 pfil
#elxl -1 0 pfil
#e1000g -1 0 pfil
#bge -1 0 pfil
- network/pfil サービスを再起動させ、/etc/pfil.ap の変更内容を認識させる。
# svcadm restart network/pfil - Solaris IP Filter の有効化。
# svcadm enable network/ipfilter - 再起動させる。
# init 6 - /etc/ipf/ipf.conf にフィルタリングルールを書く。
# vi /etc/ipf/ipf.conf
#
# out packet:
#
pass out quick on iprb0 proto tcp/udp all keep state
pass out quick on iprb0 proto icmp all keep state
#
# in packet:
#
# icmp
pass in quick on iprb0 proto icmp from any to any icmp-type echorep
pass in quick on iprb0 proto icmp from any to any icmp-type unreach
pass in quick on iprb0 proto icmp from any to any icmp-type echo
pass in quick on iprb0 proto icmp from any to any icmp-type timex
# SSH
pass in quick on iprb0 proto tcp from any to any port = 22 flags S/SA keep state
# attack by local IP packet
block in log quick on iprb0 from 127.0.0.0/8 to any
block in log quick on iprb0 from 10.0.0.0/8 to any
block in log quick on iprb0 from 169.254.0.0/16 to any
block in log quick on iprb0 from 172.16.0.0/12 to any
block in log quick on iprb0 from 192.168.0.0/16 to any
# attack by invalid IP option
block in log quick on iprb0 all with opt lsrr
block in log quick on iprb0 all with opt ssrr
block in log quick from any to any with ipopts
block in log quick on iprb0 proto tcp all with short
#
# default rule:
#
block out log on iprb0 all
block in log on iprb0 all
- Solaris IP Filter の有効化。
# ipf -E - フィルタリングルールの初期化。ルール読み込み後にやると無防備になるので注意。
# ipf -Fa - フィルタリングルールの読み込み。
# ipf -f /etc/ipf/ipf.conf - アクティブなフィルタリングルールの確認。
# ipfstat -io
IP Filter のリアルタイムなログをながめる。 (・д・)ジドー
# ipmon
なんか知らんパケットが流れ込んでくるのが見える…
05/03/2006 01:09:15.254553 iprb0 @0:16 b 192.168.3.9,6001 -> 192.168.3.255,6000 PR udp len 20 44 IN 05/03/2006 01:10:17.931384 iprb0 @0:16 b 192.168.3.254 -> 224.0.0.1 PR igmp len 20 (28) IN 05/03/2006 01:10:51.280865 iprb0 @0:16 b 192.168.3.9,6001 -> 192.168.3.255,6000 PR udp len 20 44 IN 05/03/2006 01:11:03.284016 iprb0 @0:16 b 192.168.3.9,6001 -> 192.168.3.255,6000 PR udp len 20 44 IN 05/03/2006 01:12:39.308416 iprb0 @0:16 b 192.168.3.9,6001 -> 192.168.3.255,6000 PR udp len 20 44 IN 05/03/2006 01:14:27.337894 iprb0 @0:16 b 192.168.3.9,6001 -> 192.168.3.255,6000 PR udp len 20 44 IN |
ルール変更後の再読み込み。
再読み込みは極力短時間で行うこと。
# ipf -Fa; ipf -f /etc/ipf/ipf.conf; ipfstat -io