このページでは,IPfilter のインストール法と設定法を説明します. IPfilter とは,「LAN 内」あるいは「指定されたポート/アドレスからのアクセス」のみ許可し、それ以外は拒否というような設定が簡単にできるソフトです.
IPFilter のインストール手順である. Solaris 10 では、OS に IPFilter が付属しているので、この手順は不要です。 下記のインストール手順は,Solaris 9 で確認済みです. (他の UNIX でも,同様の手順になるでしょう).
cd /tmp # wget pfil-2.1.9.tar.gz mkdir /tmp/pfil-2.1.9 cd /tmp/pfil-2.1.9 gzip -d < /tmp/pfil-2.1.9.tar.gz | tar -xvf - cd /tmp/pfil-2.1.9/pfil /usr/ccs/bin/make /usr/ccs/bin/make package pkgadd -d /tmp/pfil.pkg cd /tmp # wget pfil-2.1.9.tar.gz # wget ip_fil4.1.31.tar.gz rm -rf /tmp/pfil cd /tmp gzip -d < /tmp/pfil-2.1.9.tar.gz | tar -xvf - gzip -d < /tmp/ip_fil4.1.31.tar.gz | tar -xvf - cd ip_fil4.1.31 /usr/ccs/bin/make solaris cd SunOS5 /usr/ccs/bin/make package
ipflter で設定すべきルールの例は、次のようになります。 /etc/ipf/ipf.conf (上記の「インストール手順」で自前でインストールしたとき は、設定ファイルは /etc/opt/ipf/ipf.conf) の設定です。 「eri0」の部分は、「ifconfig -a」で確かめてから、適切に書き換えて下さ い。
この場合、LAN 内部の通信、外からの ssh は許可し、それ以外は拒否という 方針です。LAN の外側にサービスしないマシンを想 定しています。つまり、LAN 外部との通信を行なうメールサーバ, DNSサーバ, WWWサーバ、NTP サーバなどは対象外です(下記をベースとして設定できると思います)。
IPFilter の種類(バージョン?)によっては、デフォルトルールを最初に書 かないといけないものもあるので注意のこと。 下記は Solaris 10 に付属の IPFilter の設定例です。
# # lo0 # pass out quick on lo0 # pass in quick on lo0 # # out packet: # # allow LAN (for router) # pass out quick on hme0 proto tcp/udp from any to 133.xx.yy.0/0xffffff00 # allow 20(ftp-data), 21(ftp), 25(smtp), 80(http) # pass out quick on hme0 proto tcp from any to any port = 20 keep state # pass out quick on hme0 proto udp from any to any port = 20 # pass out quick on hme0 proto tcp from any to any port = 21 keep state # pass out quick on hme0 proto udp from any to any port = 21 # pass out quick on hme0 proto tcp from any to any port = 25 keep state # pass out quick on hme0 proto udp from any to any port = 25 # pass out quick on hme0 proto tcp from any to any port = 80 keep state # pass out quick on hme0 proto udp from any to any port = 80 # allow all tcp/udp and icmp pass out quick on hme0 proto tcp/udp all keep state pass out quick on hme0 proto icmp all keep state # # in packet: # # allow LAN pass in quick on hme0 proto tcp/udp from 133.xx.yy.0/0xffffff00 to any # 外部からのアクセスで、許可するもの (もしあれば) # ssh(22) を公開する場合の設定例です。 # pass in quick on hme0 proto tcp from any to any port = 22 flags S/SA keep state # attack by local IP packet block in log quick on hme0 from 127.0.0.0/8 to any block in log quick on hme0 from 10.0.0.0/8 to any block in log quick on hme0 from 169.254.0.0/16 to any block in log quick on hme0 from 172.16.0.0/12 to any block in log quick on hme0 from 192.168.0.0/16 to any # attack by invalid IP option block in log quick on hme0 all with opt lsrr block in log quick on hme0 all with opt ssrr # block in log quick from any to any with ipopts # attack by too-short IP fragment block in log quick on hme0 proto tcp all with short # # default rule # # deny all (default rule) block out log on hme0 all # deny all (default rule) block in log on hme0 all