Security Tips
 

特定のIPアドレスからの通信を行えなくする

宮本 久仁男
2004/3/24

 Linuxでは、iptablesやipchainsなどを用いてIPパケットのフィルタリングを行うことができるが、ある特定のIPアドレスからの通信を遮断することはもっと簡単に行える。

 IPアドレスa.b.c.dのコンピュータAから、自分自身のコンピュータB(IPアドレスはe.f.g.h)にネットワーク接続が開設されており、コンピュータAからの通信だけを遮断したい場合(Linuxの場合)は、

route add -host a.b.c.d gw 127.0.0.1

とする。127.0.0.1は、コンピュータBの内部に閉じたループバックアドレス*1であり、外部との通信を行う性質のアドレスではない。この場合、パケットは図2のように流れるが、127.0.0.1はループバックアドレスであり、それより先にはパケットが流れない。結果として、a.b.c.dにパケットは戻らず、通信は成立しない。

*1
ループバックアドレスとは、自分自身をあて先にしたIPアドレスのこと。自分自身のTCP/IPの動作テストするときに用いる。なお、アドレスは127.0.0.1に固定されている。

 コマンド実行前とコマンド実行後のパケットの流れの概要をそれぞれ図1と図2に示す。この方法だと特定のアドレスからの通信を遮断することが可能なので、緊急で不審な通信のみ制限したい場合などに有効な手段だろう。

図1 コマンド実行前
普通に通信できる場合には、ルータに対してdefault routeが向いているためパケットが送り付けられる。

図2 コマンド実行後
特定のアドレスについての経路を127.0.0.1にした場合は、その特定のアドレス行きのパケットは127.0.0.1に向けられる(内部のループバックアドレス行きになる)ために、127.0.0.1より先には行かない。


Security Tips Index



Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間