この特集のトップページへ
この回のトップページへ

実例2

hosts.deny
in.telnetd: ALL: (/usr/sbin/safe_finger -l @%h | /bin/mail -s "telnet rejected (%h)" root) &
in.fingerd: ALL: (/usr/sbin/safe_finger -l @%h | /bin/mail -s "finger rejected (%h)" root) &
ALL: ALL

hosts.allow
in.ftpd in.telnetd: 192.168.1.0/255.255.255.0 EXCEPT 192.168.1.1
in.ftpd: .dialup.provider.com: (/bin/mail -s "ftp accepted (%h)" root) ipop3d: ALL

 この例では,基本的に外部からのアクセスはすべて拒絶して,POP3はすべてのプロバイダ,ftpは特定のプロバイダからのアクセスのみを許可している。また,プライベートネットワークからのアクセスについては,ftpとtelnetを許可しているのが分かる。

 ここで注目したいのは,外部からのtelnetやfingerを拒絶する場合であっても,接続してきた外部のホストに対してfingerを実行し,その結果をrootにメール通知している点だ。

 外部からのtelnetやfingerを拒絶していることは,ドメイン内に告知している場合アタック行為だと断定できるだろう。このような場合,(その相手のマシンが UNIX であれば)fingerが動作していることもある。接続要求してきたマシンに対し,fingerを実行しておくことでどのようなユーザーがログインしているのかをレポートすることが可能だ。

 ただし,クライアントがWindowsやMacintoshを使っていたり,fingerdが止めていたりすると意味は成さない。特定の大学やプロバイダなどのホストを踏み台にして攻撃を仕掛けてきた場合には有効だろう。同様に,ftpを許可するプロバイダに関しても,rootにメール告知するように設定している。

 tcp wrapperをコンパイルする際,PROCESS_OPTIONSを付けて実行しているのであれば,そのほかのオプション類を使用することが可能だ。たとえば,hosts.denyの中であってもallowルールを記述したりすることもできるようになる。詳細については,マニュアルページのhosts_options(5) を参照してほしい。

PREV 7/11 NEXT