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

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

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

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

方法詳細長所短所
NATNAT(Network Address Translation)は、プライベート 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 リファレンスガイドを 参照してください。