Solaris 10 の設定: IP Filter でファイアウォールを実装

  Unix

Solaris 10 には、IP Filter というパケットフィルタ型ファイアウォールが実装されている。インターネットに接続する上で不可欠な設定項目である。

  1. /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
    
    

  2. network/pfil サービスを再起動させ、/etc/pfil.ap の変更内容を認識させる。

    # svcadm restart network/pfil
  3. Solaris IP Filter の有効化。

    # svcadm enable network/ipfilter
  4. 再起動させる。

    # init 6
  5. /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

  6. Solaris IP Filter の有効化。

    # ipf -E
  7. フィルタリングルールの初期化。ルール読み込み後にやると無防備になるので注意。

    # ipf -Fa
  8. フィルタリングルールの読み込み。

    # ipf -f /etc/ipf/ipf.conf
  9. アクティブなフィルタリングルールの確認。

    # 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

参考文書