このページの本文へ

初心者歓迎!ネットワークセキュリティ入門 第1回

ネットワークの脅威と対策を一から学ぼう

不正アクセスを防ぐファイアウォールの仕組み

2009年08月12日 09時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

パケットフィルタリングの必要性

 ファイアウォールのアクセス制御の基本となるのが、「パケットフィルタリング」と呼ばれる技術だ。パケットフィルタリングでは、パケットのヘッダに書かれている宛先や制御情報を条件に管理者がルールを設定し、不要なパケットを遮断する(図3)。

図3 パケットフィルタリングではIPとTCPのヘッダ情報を精査する

 パケットフィルタリングで用いられるアクセス制御の具体的なルールは、「ポリシー」と呼ばれる。このポリシーを構成するための要素となるのは、まず攻撃とおぼしきパケットを特定するための条件である。これは、①宛先と送信元のIPアドレス、②送受信の方向、③プロトコル種別、④ポート番号のおもに4つとなる。

 そして、通信やパケットを識別する条件を指定したら、次は具体的な動作を設定する。一般的にはパケットの通過と破棄だが、その他ログを取ったり、最近ではトラフィック量などで通信を制限するといった指定も可能だ。

 こうしたフィルタリングルールは、管理者によって通常複数設定されている。そのため、ファイアウォールは並べられた順でこれらを適用し、通過と遮断の可否を判断する。

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

 具体的なパケットフィルタリングのポリシー設定を見ていこう。

 ファイアウォールには大きく2つのポリシーがスタート地点として用意されている。すべてを遮断するのが前提で、必要な通信だけ通すという「Deny All」、そして基本的にはすべてを通過させておき、遮断したいものを指定するという「Allow All」である。セキュリティの高さでいえば、前者のほうが強固で一般的だが、設定を間違えると通信ができなくなる。そのため、個人ユーザーにとっては、後者のほうが利用しやすい。

 設定の条件のうち、IPアドレスは範囲によってLAN内のクライアントと、インターネット上のサーバを指定するのに利用する。通常、LANのクライアントはプライベートアドレスを割り当てているので、その範囲を指定すればよい。一方、インターネットのホストはIPアドレスが不定なので、「ANY(どれでも)」などという指定を用いる。

 具体的なアクセス制御の設定は、TCP/UDPのポート番号によるサービスの指定が一番よく用いられる。これは主要なアプリケーションのサーバ側の待つ受けポートがウェルノウンポートとしてあらかじめ決められているからだ。たとえば、FTPは20/21番、POP3は25番、HTTPは80番、SMTPは110番といった具合である。そのため、宛先となるポート番号を指定すれば、サービスをある程度特定できる。これに対して、破棄や通過といったアクションを組み合わせれば、比較的簡単にポリシーが作成できる※3わけだ。

*3:ポリシーが作成できる たとえば、Webサイトへの利用を禁止するのであれば80番ポート、メールサーバからの受信を遮断するなら25番ポートを閉じればよい。

 また、TCPの制御情報であるフラグやICMP、IPsecなどの制御情報もフィルタ設定に利用できる。たとえば、LAN側から送信されたTCPの応答のみを通過させたいとする。この場合は、TCPのコネクション※4が確立した以降にACKのフラグが立つので、これを通過させるように指定すればよい(図4)。一方、インターネット側からのTCP接続要求は、SYNのフラグのみで、ACKフラグはないので、攻撃とみなしてパケットを破棄する。

*4:TCPのコネクション TCPのスリーウェイハンドシェイクにおける、送信元からの接続要求は、宛先のSYNフラグの送信で始まり、宛先側のマシンからの応答以降はACKが挿入される。

図4 TCPコネクションの確立とフィルタリング

(次ページ、「パケットフィルタリングの限界」に続く)


 

カテゴリートップへ

この連載の記事