第 7章. ファイアウォール

情報セキュリティは1つのプロセスであり製品ではないとよく思われていますが、 標準的なセキュリティの施行は通常、 アクセス特権を制御するなんらかの専用メカニズムの形をとり、 許可があり、識別が可能でトレースができるユーザーに対してネットワークリソースを制限します。 Red Hat Enterprise Linux には、ネットワークレベルでのアクセス制御の問題を持つ 管理者やセキュリティエンジニアの方々を支援するいくつかの強力なツールが含まれています。

CIPEやIPsec(第6章で説明)などのVPNソリューションとは別に、 ファイアウォールはネットワークセキュリティ施行の核のひとつなるコンポーネントです。 ホームユーザー向け1台のPC保護から、 重要な企業情報を安全に保護するデータセンターソリューションまで、 市場すべてに向けてファイアウォールソリューションを提供しているメーカーがいくつかあります。 ファイアウォールは、Cisco、Nokia、Sonicwallなどが提供しているファイアウォール器機などの 独立型ハードウェアソリューションでも構いません。また、checkpoint、McAfee、Symantecなどの メーカーによって自宅仕様からビジネス仕様まで広く開発された ソフトウェアファイアウォールソリューション製品もあります。

ハードウェアのファイアウォールとソフトウェアのファイアウォールの違いは別にして、 ソリューション毎に異なるファイアウォールの機能の仕方も異なります。 表7-1ではよくある3つのファイアウォールタイプと その機能について説明しています。

方法詳細長所短所
NATNAT(Network Address Translation)は、 内部ネットワークIPサブネットワークを1つの外部IPアドレスまたは1群の外部IPアドレスの 内側に配置し、すべての要求を複数ではなく1つのソースにマスカレードします。

� LAN上のマシンに透過的に設定できる
� 1つ以上の外部IPアドレス内にある多くのマシンとサービスの保護、 管理業務を簡単にする
� ユーザーとLAN間のアクセスの制限は NATファイアウォール/ゲートウェイ上のポートを開く/閉じることで設定できる

� ユーザーがファイアウォールの外側にあるサービスに 接続すると悪意あるアクティビティを防ぐことができない

パケットフィルタパケットフィルタリングファイアウォールは、LANの外側及び内側でやりとりされる 各データパケットを読み込みます。ヘッダ情報でパケットを読み込んでから処理して、 ファイアウォール管理者により実行されているプログラム可能なルールセットに応じて パケットをフィルタします。Linuxカーネル netfilterカーネルサブシステム使う ビルトインのパケットフィルタリング機能を持っています。

� iptablesフロントエンド ユーティリティでカスタマイズが可能
� すべてのネットワークアクティビティがアプリケーションレベルではなく、 ルータレベルでフィルタリングされるため、クライアントサイドでの カスタマイズが不要
� パケットがプロキシを通して 送信されず、クライアントからリモートホストへのダイレクト接続になるため、 ネットワークパフォーマンスが高速化します。

� プロキシファイアウォールのようなコンテントに対しては パケットをフィルタできない
� プロトコル層でパケットを処理するが、 アプリケーション層ではパケットをフィルタできない
� 特にIP マスカレードか、 ローカルサブネットとDMZネットワークで接続されている場合、 複雑なネットワークアーキテクチャでパケットフィルタリングのルール確立が難しくなる可能性がある

プロキシプロキシファイアウォールは、LANクライアントからプロキシマシンへの特定のプロトコル またはタイプの要求すべてをフィルタします。次に、その要求をローカルクライアントに代わって インターネットに送ります。プロキシマシンは、悪意あるリモートユーザーと ネットワーククライアントマシン間のバッファとして動作します。

� LANの外で機能するアプリケーションとプロトコルを 管理者に制御させる
� プロキシサーバーの中には、 データをキャッシュできるものがあり、クライアントは頻繁に要求されるデータを要求するのに インターネット接続を使うのではなく、ローカルキャッシュからそのデータに アクセスできる。これは不必要なバンド幅の消費を削減するのに便利。
� プロキシサービスはログをとったり、厳重に監視することができ、 ネットワーク上のリソース利用を厳しく制御することができる。

� プロキシはよくアプリケーション固有であったり (HTTP、telnet、など)、プロトコルに制限があったりする(ほとんどのプロキシは サービスのみに接続されているTCPで機能)
� アプリケーション サービスはプロキシ内で稼動できないため、アプリケーションサーバーは別の形態の ネットワークセキュリティを使用する必要がある。
すべての要求と伝送は、クライアントからリモートサービス接続に直接繋がるのではなく、 1つのソースからやりとりされるため、プロキシはネットワークのボトルネックになる可能性がある

表 7-1. ファイアウォールのタイプ

7.1. Netfilter と IPTables

Linuxカーネルは、netfilterと呼ばれる 強力なネットワークサブシステムが特徴です。netfilter サブシステムは ステートフルまたはステートレスなパケットフィルタリング機能、同様に NAT及びIPマスカレードサービスも提供しています。 また、Netfilterには、高度なルーティング及び接続状態管理のためのIPヘッダ情報を mangleする機能もあります。 NetfilterはIPTablesユーティリティーで制御します。

7.1.1. IPTables の概要

netfilterのそのパワーと柔軟性はIPTablesインターフェースで実現されます。 このコマンドラインツールは、構文は以前のIPChainsに似ていますが、 IPTablesはnetfilterサブシステムを使用してネットワーク接続、インスペクション、 処理などを強化します。一方、IPChainsは、フィルタリングソース及び目的地へのパス、 同様に両方の接続ポートに対して複雑なルールセットを使用していました。 IPTablesは、高度なロギング、pre- と post- のルーティング動作、 Network Address Translation、ポートフォワーディングの機能すべてを オールインワンの1つのコマンドラインインターフェースで実現します。

このセクションではIPTablesの概要を説明しています。 IPTablesついての詳細は、Red Hat Enterprise Linux リファレンスガイドを参照してください。