II-9-4. ルーティングとパケットフィルタリング

ネットワークサーバにおけるルーティングとフィルタリングの処理を理解させる。ルーティングにおいては静的なルーティングの設定を示し、フィルタリングにおいてはパケットフィルタリングの概念とNetfilterやiptablesにおける設定方法を示す。

【学習の要点】

* サーバからデータを送信する通信経路を見つけ出す方法のことをルーティングと呼ぶ。ルーティングは通信先がどこに接続されているかを定義する「ルーティングテーブル」で管理を行う。

* 静的ルートはルーティング設定ファイル(/etc/sysconfig/static-routes)へ経路情報を記述する他、routeコマンドにて経路情報の追加や削除を行うことができる。

* サーバに送られてきたパケットのヘッダにはプロトコルや送信元アドレス、送信先アドレスやポート番号などの情報が含まれており、これを参照して通過するかどうかを決定することをパケットフィルタリングという。

* Netfileterのパッケージとしてiptablesがあり、iptablesコマンドで設定するか、フィルタリングのルールを/etc/sysconfig/iptablesに記述することにより設定する。

図II-9-4. 静的ルートとパケットフィルタリング

 

【解説】

1) ネットワークサーバのルーティング

ネットワークサーバにて内部のネットワークと外部のネットワークへ同時にサービスを提供する場合など、要求のあったコンピュータへ返信を行うためには、要求元のコンピュータがどちらのネットワークに接続されているか経路情報がわからなくてはいけない。

この経路情報を見つけ出す方法のことを「ルーティング」と呼び、「ルーティングテーブル」によって管理されている経路情報を使用して通信経路を決定する。

経路情報としては、静的ルーティングと動的ルーティングがあるが、ネットワークサーバでは主に静的ルーティングにて経路情報の設定を行う。

2) 静的ルーティングの設定

設定ファイルまたはrouteコマンドにて、宛先のネットワークアドレスまたはホストアドレスがどのゲートウェイを経由してデータを送出するのかを設定する。

* 設定ファイルによる設定の例

/ etc/sysconfig/static-routes

 any net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1<br />
any host 192.168.0.10 gw 192.168.0.1

* routeコマンドによる設定の例

# route add –net 192.168.1.0 255.255.255.0 eth1

# route add –host 192.168.1.10 eth1

3) パケットフィルタリング

パケットフィルタリングはネットワークインタフェースを通過するデータ(パケット)のプロトコルや送信元アドレス、送信先アドレスやポート番号などを参照し、データを通過させるかどうか決定することで、ネットワークサーバおよびネットワーク内のセキュリティを高めるために使用する。

パケットフィルタリングはデータの入力、出力や転送などが行われるタイミングごとにチェインと呼ばれるルールセットによりフィルタリングを行う。

5) パケットフィルタリングの設定

Linuxでは主としてNetfilterを利用してパケットフィルタリングを行い、iptablesサービスを起動することにより使用することができる。

Netfilterは、PREROUTING、FORWARD、INOUT、OUTPUTおよびPOSTROUTINGの5つのチェインによってパケットフィルタリングを行う。

Netfilterで設定する項目は、ルールを設定する場所を設定する「テーブル」、ルールに一致したデータの扱いを設定する「ターゲット」、各チェインのデフォルトのターゲットを設定する「ポリシー」がある。

フィルタリングのルールはiptablesコマンドを使い、各チェインで使用するルールを追加することにより設定を行う。また、/etc/sysconfig/iptables へ記述しておくことによりサービスの起動した時に自動的にパケットフィルタリングのルールを設定することができる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。