ファイアウォールの概要
「ファイアウォール」という言葉はもともと建築分野に由来し、火災が一つのエリアから別のエリアへ広がるのを防ぐための物理的な壁を意味します。通信技術の文脈では、この概念が転用され、異なるネットワーク間で論理的に隔離を行いながら、適切なトラフィックのみを許可するセキュリティデバイスとして機能します。「火」はサイバー攻撃や不正アクセスを、「人」は正当な通信を象徴しており、悪意ある通信だけを遮断しつつ、正常なデータのやり取りを維持することが目的です。
なぜファイアウォールが必要か
ルーターやスイッチによりネットワーク接続が実現される一方で、外部からの脅威や内部からの情報漏洩リスクも増大します。特にネットワーク境界部では、次のようなセキュリティ要件が生じます:
- 外部ネットワークとの論理的分離
- 内部ネットワークのアクセス制御
- 悪意のあるコンテンツのフィルタリング
- 侵入検知および防御(IPS)
- ウイルス対策
これらの課題に対応するため、ファイアウォールはネットワークアーキテクチャにおいて不可欠な役割を果たします。
ファイアウォールとは何か
通信分野におけるファイアウォールは、特定のネットワーク領域を他の領域からの攻撃や不正アクセスから保護する専用のセキュリティ機器です。主に企業のインターネットゲートウェイ、内部システム間の境界、データセンターのエッジなどに配置されます。ハードウェア形態としてはシャーシ型、ボックス型があり、また仮想化環境向けのソフトウェア型も存在し、クラウド環境でも柔軟に展開可能です。
スイッチ・ルーターとの機能比較
例えばオフィスネットワーク(キャンパスネットワーク)において:
- スイッチ:端末を接続し、ローカルネットワーク内の通信を実現
- ルーター:異なるネットワーク間の経路制御とパケット転送を行う
- ファイアウォール:ゾーン間のトラフィックを監視・制御し、セキュリティポリシーに基づいて通信を許可または拒否
ルータとファイアウォールの転送プロセスの違い
ルーターは主にIPヘッダーに基づいた転送を行いますが、ファイアウォールはそれ以上の処理を行います。特にシャーシ型デバイスでは、LPU(ラインプロセッシングユニット)に加えて、SPU(サービスプロセッシングユニット)という特別なモジュールを持ち、状態検査、アプリケーション認識、コンテンツ分析などの高度なセキュリティ機能を実行します。
代表的な導入シナリオ
ファイアウォールは以下の場面でよく使用されます:
- インターネット接続時の境界防御
- 社内LANとDMZ(Webサーバー等を配置)の間
- 本社と支店のVPNトンネル終端点
- クラウドVPC間のセキュリティガード
基本コンセプト
セキュリティゾーン(Security Zone)
セキュリティゾーンは、ファイアウォールが管理するネットワーク領域の集合体であり、同じ信頼レベルを持つインターフェース群をグループ化したものです。すべてのセキュリティポリシーは、これらのゾーン間の関係性を基に定義されます。
デフォルトゾーンと優先度
| ゾーン名 | 説明 | デフォルト優先度 |
|---|---|---|
| untrust | 外部ネットワーク(例:インターネット)。信頼度最低 | 5 |
| dmz | 公開サーバーを置く中立地帯。中程度の信頼 | 50 |
| trust | 内部ネットワーク。比較的高い信頼 | 85 |
| local | ファイアウォール自体のCPUや管理インターフェース。最高信頼 | 100 |
各ゾーンには1~100の数値で表される「セキュリティ優先度」が設定され、値が高いほど信頼度が高いと見なされます。デフォルトゾーンは削除できず、優先度の変更もできません。必要に応じてカスタムゾーンを作成できます。
ゾーン間(Interzone)の通信フロー
通信の発信元と宛先によって、どのゾーン間を通過するかが決まります。たとえば:
- PC → ファイアウォール管理IP:trust → local
- PC → インターネット:trust → untrust
セキュリティポリシー(Security Policy)
セキュリティポリシーは、特定の条件に一致するトラフィックに対して「許可」または「拒否」を行うルールです。受信したパケットの属性(五要素、ユーザー、時刻など)を評価し、該当するポリシーがあればそのアクションを実行します。
ポリシーの構成要素
- マッチ条件:送信元/宛先ゾーン、IPアドレス、サービス(プロトコル・ポート)など
- アクション:permit または deny
- セキュリティプロファイル(任意):UTM機能(アンチウイルス、URLフィルタなど)を適用
ポリシーの評価順序
複数のルールが存在する場合、上から順に照合され、最初に一致したルールが適用されて処理が終了します。そのため、具体的な条件を持つルールを上位に配置し、汎用的なルールを下位に置く必要があります。
セッションテーブル(Session Table)
ファイアウォールは「ステートフル検査」方式を採用しており、最初のパケットだけを詳細にチェックして接続を確立し、その後のパケットはその接続情報をもとに高速に転送します。この接続状態を保持するのがセッションテーブルです。TCP、UDP、ICMPなど主要プロトコルの双方向通信情報を記録し、戻り通信の正当性を保証します。
セッション生成とパケット処理
- 初回パケット到着 → ポリシー照合 → 許可されたらセッションエントリ作成
- 2回目以降のパケット → セッションテーブル照合 → 一致すれば即時転送
セッションのタイムアウトと長時間接続
通常、一定時間通信のないセッションは自動削除され、メモリリソースを節約します。しかし、FTPでの大容量ファイル転送やDBクエリのように、長期間にわたって制御チャネルが使われないケースでは、誤って切断される可能性があります。このような用途には「長時間セッション(Long Link)」機能を使い、特定の接続に長いタイムアウト値を設定できます。
マルチチャネルプロトコルの課題
FTPなどの一部のプロトコルは、制御用チャネルとは別に動的にデータ用チャネルを確立します。ファイアウォールが厳格な片方向ポリシーを適用していると、サーバーからクライアントへの逆方向データ接続がブロックされ、通信失敗の原因になります。
FTPの動作詳細
- クライアントがポート21でサーバーに制御接続を開始
- PORTコマンドでクライアント側のデータポートを通知
- サーバーがポート20からクライアントの指定ポートへデータ接続
このとき、逆方向の接続が事前に許可されていないと、ファイアウォールがこれを異常と判断して遮断します。
ASPFとServer-map
この問題を解決するために、ファイアウォールはASPF(Application Specific Packet Filter)機能を提供します。これはアプリケーション層の内容を解析し、動的に開かれる追加チャネルを予測して、一時的な例外ルール(Server-mapエントリ)を生成します。
Server-mapの動作例
FTP制御セッション中に「PORT 192,168,1,100,14,5」というコマンドを検出すると、ファイアウォールは以下のようなServer-mapを自動作成します:
Server-map: ftp-data source 192.168.1.100 destination 任意 port 3605
これにより、サーバーからクライアントへのデータ接続が一時的に許可されます。
Server-mapと簡略化された転送
パケットが到着してもセッションテーブルにヒットしない場合、ファイアウォールはまずServer-mapを参照します。該当するエントリがあれば、それに基づいて新しいセッションを生成して転送を許可します。これにより、動的ポートを使ったプロトコルでも円滑に通信できます。
基本構成手順
インターフェース設定
- インターフェースの作成とIPアドレス割り当て
- 管理サービスの許可(pingなど)
[FW] interface GigabitEthernet 1/0/1 [FW-GigabitEthernet1/0/1] ip address 1.1.1.1 255.255.255.0 [FW-GigabitEthernet1/0/1] service-manage ping permit
セキュリティゾーンの設定
- カスタムゾーンの作成
- 優先度の設定
- インターフェースをゾーンに所属させる
[FW] firewall zone name OM [FW-zone-OM] set priority 95 [FW-zone-OM] add interface GigabitEthernet 1/0/2
セキュリティポリシーの設定
- ポリシービューに入る
- ルールを作成し、送信元/宛先ゾーン、アドレス、サービス、アクションを指定
[FW] security-policy [FW-policy-security] rule name ALLOW_OM_TO_UNTRUST [FW-policy-security-rule-ALLOW_OM_TO_UNTRUST] source-zone OM [FW-policy-security-rule-ALLOW_OM_TO_UNTRUST] destination-zone untrust [FW-policy-security-rule-ALLOW_OM_TO_UNTRUST] service icmp [FW-policy-security-rule-ALLOW_OM_TO_UNTRUST] action permit
構成確認と検証
設定後は、実際に通信テストを行い、セッションテーブルに出力があるか確認します。
[FW] display firewall session table Current Total Sessions : 4 icmp VPN: public --> public 2.2.2.2:63928 --> 3.3.3.2:2048
上記出力は、OMゾーンのホストからuntrustゾーンへのICMP通信が成功し、セッションが確立されていることを示しています。