ネットワークサーバの構築のページに戻る

IP forwarding を停止する

IP forwardingというのは、ルータが受け取ったIPパケットが自分宛でなければ、 それを宛先ホストあるいはそこに至る次のルータに渡す機能です。

この機能は UNIX の場合カーネルが行っています。 routed や gated はカーネルはこの仕事をするためのルーティングテーブルを 更新しているだけで、IP パケットを転送しているわけではありません。


デュアルホーム・ゲートウェイとは

ネットワークの外からのアタックを防ぐために、二つのネットワークに 接続されているにもかかわらず、このようなIPパケットの転送を 制限したい場合があります。このようなデュアルホーム・ゲートウェイ を用いたファイアウォール(防火壁)を構築する方法を説明します。

カーネルの再構築

IP forwarding はカーネルの機能なので、 OSによってはこれを制限するためにカーネルを作り直す必要がある場合があります。 これが必要な場合は、OS の種類に依って異なりますが、 カーネルコンフィギュレーションファイルの それらしいところ(options "IPFORWARDING=-1"など)を 探して変更し、再構築してください。

FreeBSDのIPフォワーディング

FreeBSDではIPFWという部分がこの機能をつかさどっています。 これによりパケットフィルタリングを行ってファイアウォールを作るには、 カーネルコンフィギュレーションの際に以下のオプションを指定してください。
options IPFIREWALL
options IPFIREWALL_VERBOSE
参考: FreeBSDハンドブック

FreeBSD の ipfw コマンドによる設定

パケットのフィルタリングの設定はipfwコマンドで行います。 どこから来た、どこ宛の、どの種類のパケットをどうするかを指定できます。 どのようなフィルタリングをするかをしていするルールを設定する 方法を以下に示します。

ルールの追加

用法ipfw add [番号] アクション プロトコル アドレス
用例
# ipfw add 50 allow all from 192.168.1.0/24 to 210.160.116.128/28
# ipfw add 60 deny ip from any to 192.168.1.0/24

この例の最初のコマンドでは 192.168.1.0 から 210.160.116.128への フォワーディングを許可しています。また後のコマンドは どのアドレスからも 192.168.1.0/24 へフォワーディングしないことを 記述しています。

ルールの削除

用法ipfw delete [番号]
用例
# ipfw delete 60

この例では 60 番のルールを削除します。

定義されているルールのリストを表示する

用法ipfw list
用例
# ipfw list
00100 deny ip from any to 192.168.1.0/24
00110 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
65000 allow ip from any to any
65535 deny ip from any to any

100,110,200,65000,65535番のルールが設定されています。 このように複数のルールが設定されている場合は、番号の小さいものから プロトコルやアドレスが合致するか調べていき、 最初に一致するものが適用されます。


「サーバの構築」のページへ戻る ホームへ戻る