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 any100,110,200,65000,65535番のルールが設定されています。 このように複数のルールが設定されている場合は、番号の小さいものから プロトコルやアドレスが合致するか調べていき、 最初に一致するものが適用されます。
「サーバの構築」のページへ戻る ホームへ戻る