[index] CentreCOM AR550S コマンドリファレンス 2.9

ファイアウォール/概要・基本設定


  - IPフィルターとの比較
  - 基本設定
   - インターフェースと基本ルール
    - ICMPパケットの扱い
    - 本体インターフェース宛ての通信
  - ルールの追加
   - トラフィックを制限する
   - アクセスを許可する
   - インターフェースNAT
    - スタティックNAT
    - ダイナミックNAT
    - ダイナミックENAT
    - スタティックENAT
    - ENAPT(Port Restricted Cone NAT)
   - ルールNAT
    - スタンダードNAT
    - エンハンストNAT
     - IPsecパススルー
    - リバースNAT
    - ダブルNAT
    - ルールNATのまとめ
   - アクセスリストによるルール
   - RADIUSサーバーを利用したルール
   - ルールの時間制限
   - ルールの確認・修正・削除
   - ルールの処理順序
  - ファイアウォールの動作監視
   - ログ
   - イベント通知
   - トリガー
   - アカウンティング
   - デバッグオプション
   - セッションの確認
  - ダイナミックインターフェース
   - テンプレートの作成
   - テンプレートの使用
  - アプリケーション検出・遮断機能(Application Detection System:ADS)
   - サポートする Winny バージョン
   - Winny関連のログ
  - その他設定


本製品には、IPトラフィックフローの開始・終了を認識し、これに応じて動的なパケットフィルタリングを行うステートフルインスペクション型のファイアウォールが搭載されています。ここでは、ファイアウォールの基本的な設定方法について説明します。

なお、オプションのフィーチャーライセンスにより、アプリケーションゲートウェイ型ファイアウォールの機能(SMTPおよびHTTPプロキシー)も使用できます。こちらについては、「ファイアウォール」/「アプリケーションゲートウェイ」をご覧ください。

 

IPフィルターとの比較

IPパケットのフィルタリングは、IPモジュールの「IPフィルター」によっても提供されています。フィルタリングの機能自体はほぼ同等ですが、設定項目や設定方法に細かい差異がありますので、運用上のニーズに応じてご使用ください。

汎用設計のIPフィルターに対して、ファイアウォールはインターネット接続を念頭に置いた設計になっており、最小限の設定で高い安全性を確保できるようになっています。

詳細については後述しますが、

  1. モジュールを有効化し、
  2. ファイアウォールポリシーを作成し、
  3. 外側(インターネット側)と内側(LAN側)のインターフェースを指定する

の3つの手順だけで、LAN側からインターネットへの通信は自由に行え、インターネットからLAN側への通信はすべて拒否するという、ファイアウォールの基本ルールが有効になります。

IPフィルターがパケットごとにヘッダーを見て処理を行う単純なパケットフィルターであるのに対し、ファイアウォールはトラフィックフロー(一連のパケット)を常に意識しているため、LAN側からの要求に対する応答パケットを通すために、Syn/Ackなどによる細かい設定をする必要がありません。

たとえば、LAN側のクライアントがインターネット上のサーバーと通信を開始したとします。ファイアウォールは、通信開始を検知すると該当セッションをテーブルに登録します。セッションは、ローカル側IPアドレス、プロトコル、ポート、リモート側IPアドレス、ポートなどの情報からなります。テーブルに記録されている間、セッションに該当するパケットは方向に関係なく通過させます。通信が終了するなどして一定時間通信が行われなくなると、テーブルからセッションを削除し、それ以降は同じサーバーからであっても、外部からのパケットは一切通過させません。このような処理を行うファイアウォールを、単純なパケットフィルタリング型ファイアウォールと対比して、ステートフルインスペクション型あるいはダイナミックパケットフィルタリングファイアウォールと呼びます。

また、通信状態を保持しておくステートフルインスペクションは、NAT(Network Address Translation)と共通の部分が多いため、ファイアウォールにはNATの機能も統合されています。本製品には、IPモジュールのNAT機能(レンジNAT)もありますが、ファイアウォールを使う場合、レンジNATは使えません。ファイアウォール内蔵のNAT機能を使ってください。ファイアウォールのNAT機能には、インターフェース単位で設定するインターフェースNATと、ファイアウォールルールの一部として記述するルールNATがあります。詳細は本章の「インターフェースNAT」「ルールNAT」をご覧ください。

さらに、ファイアウォールには、拒否・許可したパケットのログを記録したり、重大なイベントの発生時に自動通知をする機能もあります。

なお、ファイアウォールとIPフィルターは併用できるため、基本的なセキュリティーの確保にはファイアウォールを使い、ファイアウォールで制御できない点(ICMPの方向制御など)をIPフィルターで補う設定も可能です。

 

基本設定

本製品をファイアウォールとして使用する上で最低限必要な手順は次のとおりです。ここでは次のような構成のネットワークを想定しています。IPの設定までは終わっているものと仮定します。


  1. ファイアウォール機能を有効にします。


  2. ファイアウォールポリシーを作成します。ポリシー名は自由に付けられます。


  3. ファイアウォールポリシーの適用対象となるIPインターフェースを指定します。内側をPRIVATE、外側をPUBLICに設定します。


基本設定は以上です。

これにより、手順3で指定したインターフェース間のトラフィックに基本的なルールが適用され、外部(PUBLIC)から内部(PRIVATE)にはパケットが転送されなくなります。一方、内部から外部への通信は自由に行うことができます。ステートフルインスペクションにより、内部から通信を開始したときにはその状態が記憶されるため、戻りのパケットを通すために特別な設定をする必要はありません。

本製品では、上記の基本設定に独自のルールを追加することで、内部と外部のインターフェース間のやりとりを制御します。


■ 上記の基本設定だけでも十分実用的な運用が可能ですが、下記の設定を追加することにより、さらに快適に使用することができます。ここでは例だけを示します。詳細は他のセクションをご覧ください。


ここまでを基本設定と考えていただいてもかまいません。

 

インターフェースと基本ルール

ファイアウォールのインターフェースには次の3種類があります。

各インターフェースの配下にあるホスト間の通信可否は次のとおりです。ただしICMPは除きます。詳細は次節「ICMPパケットの扱い」をご覧ください。

表 1:インターフェース間の通信可否(ICMPを除く)
送信元→宛先
PRIVATE
PUBLIC
その他
PRIVATE
×
PUBLIC
×
その他
×


PRIVATE側からPUBLIC側へは通信を開始できますが、PRIVATE以外のインターフェース(PUBLIC、その他)からPRIVATE側への通信はすべて遮断します。これが基本ルールです。

ファイアウォールの動作をさらに細かく制御したい場合は、ADD FIREWALL POLICY RULEコマンドでPRIVATEかPUBLICインターフェースに独自ルールを追加します。独自ルールには次の種類があります。


Note - 「その他」インターフェースに独自ルールを設定することはできません。

 

ICMPパケットの扱い

ファイアウォールは、前記の基本ルールと独自ルールにしたがってトラフィックを制御しますが、ICMPパケットだけはルールの例外扱いとなります。デフォルトの設定(ICMP転送オフ時)では、PRIVATE・PUBLIC間およびPRIVATE・その他間ではICMPはどちら向きにも転送されません。

表 2:ICMPの通信可否(転送オフ時)
送信元→宛先
PRIVATE
PUBLIC
その他
PRIVATE
×
×
PUBLIC
×
その他
×


PRIVATE・PUBLIC間でICMPパケットの転送が行われるようにするには、ENABLE FIREWALL POLICYコマンドのICMP_FORWARDINGパラメーターに転送するICMPメッセージのタイプを指定します。ICMPメッセージをすべて通すならALLを指定します。転送をオンにしたときのICMPの通信可否は次のようになります。

表 3:ICMPの通信可否(転送オン時)
送信元→宛先
PRIVATE
PUBLIC
その他
PRIVATE
×
PUBLIC
その他
×


Note - ICMPの転送をオンにしても、PRIVATE・その他間では転送されません(PRIVATE・その他間では、ICMPも含め、いっさい通信ができません)。

Note - ICMPは双方向とも通すか、まったく通さないかの設定しかできません。ファイアウォールの独自ルールでもICMPパケットの通過・拒否は制御できませんので、片側からのみ通すような設定をしたい場合はIPフィルターを併用してください。

 

本体インターフェース宛ての通信

また、各インターフェース配下から本製品のインターフェース宛ての通信(Telnetなど)可否は次のとおりです。

表 4:インターフェース配下から本体インターフェース宛ての通信可否
送信元→宛先I/F
PRIVATE
PUBLIC
その他
PRIVATE
×
PUBLIC
×
×
×
その他
×


Note - 「その他」インターフェース配下から本体に対してTelnetが可能な点にご注意ください。

 

ルールの追加

前記の基本設定に独自ルールを追加するには、ADD FIREWALL POLICY RULEコマンドを使います。以下、いくつか例を示します。

Note - ルールを追加するときは、RULEパラメーターで指定するルール番号が重ならないようにしてください。また、ルールのチェックは番号の小さい順に行われ、最初にマッチしたものが適用されるため、ルールの順序にも留意してください。

Note - ファイアウォールルールの設定ではコマンドラインが長くなりがちなので、適宜省略形を用いるようにしてください。以下の例でも省略形を使っています。


 

トラフィックを制限する

デフォルトでは内部から外部へのパケットをすべて通しますが(ICMPを除く)、予期せぬ発呼や情報の漏洩を防ぐため、不要なトラフィックを遮断することができます。

■ 次の例では、内部(vlan1)からのMS-Networksパケット(Windowsネットワークなどで使用されるパケット)を遮断しています。ファイアウォールの基本ルールにより、その他のパケットはこれまでどおり通過が許可されます。


5つのコマンドは、「vlan1インターフェースで受信したTCP、UDPパケットのうち、終点ポート番号が135、137〜139のもの、および、TCPパケットのうち終点ポート番号が445番のものを破棄する」の意味になります。


■ 特定アドレスへのアクセスを禁止することもできます。この場合はREMOTEIPパラメーターで終点IPアドレスを指定します。IPアドレスは範囲で指定することも可能です。次の例では、内部から12.34.56.0〜12.34.56.255の範囲へのアクセスを禁止しています。


このコマンドは、「vlan1インターフェースで受信したIPパケットのうち、終点IPアドレスが12.34.56.0〜12.34.56.255のものを破棄する」の意味になります。

Note - デフォルトではICMPはファイアウォールを通過しません。ICMPの転送を有効にするには、ENABLE FIREWALL POLICYコマンドのICMP_FORWARDINGオプションを使う必要があります。

■ また、特定の内部ホストが外部にアクセスできないようにすることもできます。この場合はIPパラメーターで始点IPアドレスを指定します。IPアドレスは範囲で指定することも可能です。次の例では、内部ホスト192.168.10.3からのパケットを破棄するよう設定しています。


このコマンドは、「vlan1インターフェースで受信したIPパケットのうち、始点IPアドレスが192.168.10.3のものを破棄する」の意味になります。


■ 内部からのトラフィックを制限するときのパラメーターの指定方法をまとめます


表 5
パラメーター
指定する内容
ACTION 内部から外部への転送を拒否するためDENYを指定します
INTERFACE 内部(PRIVATE)インターフェースを指定します
PROTOCOL 対象となるプロトコルを指定します。TCP、UDPを指定した場合はPORTの指定も必要です。ALLを指定した場合はICMPを除くすべてのIPパケットが対象となります。また、プロトコル番号による指定も可能です
REMOTEIP 終点IPアドレス。パケットの宛先となる外部ホストのIPアドレスです(範囲指定可)。省略時はすべての終点IPアドレスが対象となります
PORT 終点ポート番号。パケットの宛先となる外部ホストのポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合にのみ必要です
IP 始点IPアドレス。パケットの送信元となる内部ホストのIPアドレスです(範囲指定可)。省略時はすべての始点IPアドレスが対象となります
SOURCEPORT 始点ポート番号。パケットの送信元となる内部ホストのポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合のみ有効。省略時はすべての始点ポートが対象となります



 

アクセスを許可する

デフォルトでは外部からのパケットをすべて拒否しますが、内部のWebサーバーにだけはアクセスさせたいような場合に、特定のIPアドレス、または、IPアドレス・ポート宛てのパケットのみ通過を許可する設定ができます。ただし、外部からのパケットを許可することはファイアウォールに穴をあけることであり、セキュリティー低下のリスクが伴いますので設定には十分ご注意ください。

■ 次の例では、PRIVATE・PUBLIC間でNATを使用していないことを前提に、外部(ppp0)から内部ホスト4.4.4.2へのアクセスを許可しています。ファイアウォールの基本ルールにより、その他のホストに対するアクセスはこれまでどおり拒否されます。


このコマンドは、「ppp0インターフェースで受信したIPパケットのうち、終点IPアドレスが4.4.4.2のものを通過させる」の意味になります。

Note - PROTOCOL=ALLはすべてのIPプロトコルの意味ですが、ICMPは含まれません。ICMPについては「PROTOCOL=ALL」を指定していたとしても、別途ICMPの転送を有効にしておかないとファイアウォールを通過できません。ICMPの転送を有効にするには、ENABLE FIREWALL POLICYコマンドのICMP_FORWARDINGオプションを使う必要があります。


■ 次の例では、外部(ppp0)から内部のWebサーバー(4.4.4.2のTCPポート80番)へのアクセスのみを許可しています。ファイアウォールの基本ルールにより、その他のアドレス・ポートへのアクセスはこれまでどおり拒否されます。


このコマンドは、「ppp0インターフェースで受信したTCPパケットのうち、終点IPアドレスが4.4.4.2で、終点ポートが80のものを通過させる」の意味になります。


■ 特定ホストからのみアクセスを許可する設定も可能です。これにはREMOTEIPパラメーターを使用します。次の例では、外部のホスト12.34.56.78からのみ内部(PRIVATE側)へのアクセスを許可しています。ファイアウォールの基本ルールにより、その他のホストからのアクセスはこれまでどおり拒否されます。


このコマンドは、「ppp0インターフェースで受信したIPパケットのうち、始点IPアドレスが12.34.56.78のものを通過させる」の意味になります。


■ NATを使用しているインターフェースを通じてアクセスを受け入れる場合は、NATの変換前後の両方のアドレスを指定する必要があります。たとえば、192.168.1.2と4.4.4.2を一対一で変換するスタティックNATを設定している場合、外部(ppp0)から4.4.4.2(実際は192.168.1.2)へのアクセスを許可するには次のようにします。ファイアウォールの基本ルールにより、その他のホストに対するアクセスはこれまでどおり拒否されます。


このコマンドは、「ppp0インターフェースで受信したIPパケットのうち、終点IPアドレスが4.4.4.2のものを、終点アドレスを192.168.1.2に書き換えた上で通過させる」の意味になります。

Note - この設定が機能するためには、あらかじめスタティックNATの設定が必要です。この例では、次のような設定になります。また、下記のスタティックNATの設定だけでは、グローバル側からのパケットがファイアウォールの基本ルールで遮断されるため、前述のような許可ルールも必須です。スタティックNATの設定詳細については、「スタティックNAT」をご覧ください。



■ スタティックNATを使用している場合、前例のようにすべてのIPパケットを通過させる設定だけでなく、特定のトラフィックだけを通過させる設定も可能です。たとえば、192.168.1.2と4.4.4.2を一対一で変換するスタティックNATを設定している場合、外部(ppp0)から4.4.4.2(実際は192.168.1.2)へのWebアクセス(終点ポートがTCP80番)だけを許可するには次のようにします。ファイアウォールの基本ルールにより、その他のホストに対するアクセスはこれまでどおり拒否されます。


このコマンドは、「ppp0インターフェースで受信したIPパケットのうち、終点IPアドレスが4.4.4.2で終点ポートが80番のTCPパケットを、終点アドレスを192.168.1.2に書き換えた上で通過させる」の意味になります。



■ NATを使用している場合に、外部からルーター自身に対するパケットを通過させたい場合は、GBLIPとIPに同じアドレスを指定します。たとえば、ルーター(4.4.4.1)宛てのISAKMPパケット(終点ポートがUDP 500番)を受け入れたい場合は次のようにします。これは、自動鍵交換によるIPsecとファイアウォールを併用する場合に必須の設定です。詳細は「IPsec」の章をご覧ください。


このコマンドは、「ppp0インターフェースで受信したIPパケットのうち、終点IPアドレスがルーター自身(4.4.4.1)で終点ポートが500番のUDPパケットを受け入れる」の意味になります。


■ 外部からのトラフィックを許可するときのパラメーターの指定方法をまとめます

表 6:NATを使っていない場合
パラメーター
指定する内容
ACTION 外部から内部への転送を許可するためALLOWを指定します
INTERFACE 外部(PUBLIC)インターフェースを指定します
PROTOCOL 対象となるプロトコルを指定します。TCP、UDPを指定した場合はPORTの指定も必要です。ALLを指定した場合はICMPを除くすべてのIPパケットが対象となります。また、プロトコル番号による指定も可能です
IP 終点IPアドレス。パケットの宛先となる内部ホストのIPアドレスです(範囲指定可)。省略時はすべての終点IPアドレスが対象となります
PORT 終点ポート番号。パケットの宛先となる内部ホストのポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合にのみ必要です
REMOTEIP 始点IPアドレス。パケットの送信元となる外部ホストのIPアドレスです(範囲指定可)。省略時はすべての始点IPアドレスが対象となります
SOURCEPORT 始点ポート番号。パケットの送信元となる外部ホストのポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合のみ有効。省略時はすべての始点ポートが対象となります



表 7:NATを使っている場合
パラメーター
指定する内容
ACTION 外部から内部への転送を許可するためALLOWを指定します
INTERFACE 外部(PUBLIC)インターフェースを指定します
PROTOCOL 対象となるプロトコルを指定します。TCP、UDPを指定した場合はGBLPORT、PORTの指定も必要です。ALLを指定した場合はICMPを除くすべてのIPパケットが対象となります。また、プロトコル番号による指定も可能です
IP 転送後の終点IPアドレス。パケットの最終的な宛先となるプライベートアドレスで、内部ホストに実際に割り当てられているアドレスを示します。GBLIPで指定したグローバルアドレス(外から見た終点IPアドレス)に対応するアドレスを指定してください
PORT 転送後の終点ポート番号。パケットの最終的な宛先となるポート番号で、内部ホストの実際のポート番号です。PROTOCOLにTCPかUDPを指定した場合にのみ必要です。GBLPORTで指定したグローバル側ポート番号(外から見た終点ポート)に対応するポート番号を指定してください
GBLIP 転送前の終点グローバルIPアドレス。外部から見た場合の終点IPアドレスです。NAT変換後のプライベートアドレス(最終的な宛先アドレス)はIPパラメーターで指定します
GBLPORT 転送前の終点グローバルポート番号。外部から見た場合の終点ポート番号です。NAT変換後のプライベートポート番号(最終的な宛先ポート)はPORTパラメーターで指定します
REMOTEIP 始点IPアドレス。パケットの送信元となる外部ホストのIPアドレスです(範囲指定可)。省略時はすべての始点IPアドレスが対象となります
SOURCEPORT 始点ポート番号。パケットの送信元となる外部ホストのポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合のみ有効。省略時はすべての始点ポートが対象となります



 

インターフェースNAT

本製品のファイアウォールには、インターフェース単位で設定するインターフェースNATと、アドレス単位で指定するルールNATの2種類のNAT機能が実装されています。

ルールNATでは、インターフェースNATよりも細かい制御が可能ですが、その分設定も複雑になります。よほど特殊な設定をしたいとき以外はインターフェースNATを使うようにしてください。また、両者は併用可能ですが、設定の見通しが悪くなりがちなので、通常はどちらか一方だけを使うようにしてください。

Note - インターフェースNATとルールNATの両方を設定した場合、ルールNATのほうが優先的に適用されます。設定の見通しをよくするためにも、通常はどちらか一方のみをご使用ください。

インターフェースNATの設定では、常に2つのインターフェース(INT、GBLINT)を指定する必要があります。パケットがこれら2つのインターフェース間で転送された場合に限ってアドレス変換が行われる、というのがインターフェースNATのポイントになります。

インターフェースNATは、アドレス変換のパターンによって次の4種類に分類できます。


以下、NATの種類ごとに例を挙げながら説明します。

 

スタティックNAT

スタティックNATは、プライベートアドレスをグローバルアドレスに1対1で固定的に変換するNATです。

アドレスが固定なので、プライベート側、グローバル側のどちらからでも通信を開始できます(ただし、グローバル側から通信を開始できるようにするには、明示的な許可ルールの設定が必要です)。プライベートアドレスで運用しているサーバーを、ファイアウォールの外からはグローバルアドレスを持っているかのように見せかけることができます。

■ スタティックNATの設定に使うパラメーターは次のとおりです。ここで「内IF」はPRIVATEインターフェース、「外IF」はPUBLICインターフェース、「内IP」はNAT前のプライベートアドレス、「外IP」はNAT後のグローバルアドレスを示します。



■ スタティックNATの設定をしていても、外側から内側への通信は基本ルールにより拒否されます。外側からの通信開始を可能にするには、「外IF」に次のような許可ルールを設定してください。


あるいは、PUBLICインターフェースをポリシーに追加するときに「METHOD=PASSALL」を指定する方法もあります。この場合、許可ルールは不要です。

Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。


 

ダイナミックNAT

ダイナミックNATは、プライベート側インターフェースで受信したパケットの始点アドレスを、あらかじめプールされたグローバルアドレス内の使用されていないアドレスに動的変換する多対多のNATです。グローバルアドレスが固定でないため、グローバル側から通信を開始することはできません。

Note - ダイナミックNATは、他のNATに比べてメリットが少ないためあまり使われません。

■ ダイナミックNATの設定に使うパラメーターは次のとおりです。ここで、「内IF」はPRIVATEインターフェース、「外IF」はPUBLICインターフェース、「外IP範囲」はNAT後のグローバルアドレスとして使うアドレス範囲を示します。



■ ダイナミックNATを使う場合、「外IF」がEthernetかVLANのときは「外IP範囲」へのARPに対して本製品が代理応答する必要があります。そのためには、「外IP範囲」へのスタティック経路を優先度0で登録してください。

たとえば、グローバルアドレスとして1.1.1.2〜1.1.1.4を使うダイナミックNATを設定する場合、次のような経路を登録してください(PRIVATE側インターフェースをvlan1とします)。「PREF=0」を忘れないようご注意ください。


Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。

 

ダイナミックENAT

ダイナミックENAT(Network Address Translation)は、ルーターなどの中継ノードでIPパケットのアドレスとポート番号を付け替えることにより、プライベートIPアドレスしか持たないホストがグローバルネットワークにアクセスできるようにする機能です。グローバルアドレスを1個しか割り当てられてない場合でも、ENATを利用することにより多くのホストがグローバルネットワークにアクセスできるようになります。ダイナミックENATではグローバル側から通信を開始することはできませんが、次節の「スタティックENAT」を併用すればグローバル側からの通信も可能です。

■ ダイナミックENATの設定に使うパラメーターは次のとおりです。ここで、「内IF」はPRIVATEインターフェース、「外IF」はPUBLICインターフェース、「外IP」はNAT後のグローバルアドレスを示します。



■ 次の例では、内部インターフェース側の全ホストが、外部インターフェースに割り当てられた1個のグローバルIPアドレスを共有して外部と通信します(各トラフィックはポート番号によって識別されます)。内部側の複数ホストが同時に外部と通信できます。INTERFACE(INTと省略)パラメーターにプライベート側インターフェース名を、GBLINTERFACE(GBLINTと省略)パラメーターにグローバル側インターフェース名を指定してください。


このコマンドは、「vlan1のインターフェースで受信したIPパケットがppp0側にルーティングされる場合、始点アドレスをppp0のインターフェースに割り当てられているグローバルIPアドレスに書き換えて送信する」の意味になります。また、外部からの戻りパケットは、終点アドレスに逆向きのアドレス変換(グローバル→プライベート)を施した上で内部の送信元に送り返されます。

■ 複数グローバルIPを割り当てられる専用線接続などのように、GBLINTで指定したインターフェースがUnnumberedの場合は、GBLIPパラメーターでダイナミックENAT用のIPアドレスを明示する必要があります。ISPから割り当てられたグローバルアドレスのうちの1個を指定してください。なお、Unnumbered、Numberedにかかわらず、GBLINTにはNAT変換時にパケットを送り出すインターフェースを指定してください。


このコマンドは、「vlan1-1のインターフェースで受信したIPパケットがppp0側にルーティングされる場合、始点アドレスをISPから割り当てられているグローバルIPアドレス1.2.3.6に書き換えて送信する」の意味になります。また、外部からの戻りパケットは、終点アドレスに逆向きのアドレス変換(グローバル→プライベート)を施した上で内部の送信元に送り返されます。

 

スタティックENAT

端末型接続のように1個しかグローバルアドレスがない場合であっても、スタティックENAT(ポート/プロトコル転送)機能を用いることにより、グローバル側インターフェースの特定ポート宛てに送られたパケットを、内部ホストの特定ポートに転送することができます。この機能を利用すると、グローバルアドレスが1つしかない環境でも、複数のサーバー(サービス)を外部に公開することができます。

■ スタティックENATは単独では使用できません。必ず最初にダイナミックENATの設定をする必要があります。前節の説明の繰り返しになりますが、再度ダイナミックENATの設定に必要なパラメーターを挙げます。


■ スタティックENATの設定に使うパラメーターは次のとおりです。ここで、「外IF」はPUBLICインターフェース、「プロトコル」はTCP、UDPなどの上位プロトコル、「外IP」はグローバルアドレス、「外ポート」は転送前のポート番号、「内IP」はプライベートアドレス、「内ポート」は転送先のポート番号を示します。



Note - スタティックENATの設定はADD FIREWALL POLICY RULEコマンドで行います。

Note - スタティックENAT単独では使用できません。必ずダイナミックENATと組み合わせて設定してください。

■ 次の例では、ルーターの(PPPインターフェースの)80番ポートに宛てられたTCPパケットを、LAN側のWebサーバー(192.168.10.2の80番ポート)に転送しています。また、ルーターの25番ポートに宛てられたTCPパケットを、LAN側のメールサーバー(192.168.10.3の25番ポート)に転送しています。この構成では、インターネット上のホストからは、ルーター自身がWebサーバーやメールサーバーであるかのように見えますが、実際にはプライベートIPアドレスを持つ内部のサーバーが応答します。


以下、コマンドラインが長くなるため適宜省略形を使っています。

  1. スタティックENATは、ダイナミックENATを使用していることが前提となります。ここでは、LAN(vlan1)側の全ホストが、WAN(ppp0)側に割り当てられたグローバルアドレスを使って外部と通信できるように設定します。


  2. ルーターの80番ポートに届いたパケットを、LAN側のWebサーバー(192.168.10.2)に転送するためのルールを設定します。


    このコマンドは、「ppp0インターフェースで受信したTCPパケットのうち、終点IPアドレスが1.2.3.4で終点ポートが80のものを、アドレス変換してホスト192.168.10.2の80番ポートに転送する」の意味になります。また、内部サーバーからの戻りパケットは、逆向きのアドレス変換(プライベート→グローバル)を施した上で送信元に送り返されます。

    Note - グローバルIPアドレスが動的に割り当てられる場合は、GBLIPに0.0.0.0を指定します。

  3. ルーターの25番ポートに届いたパケットを、LAN側のメールサーバー(192.168.10.3)に転送するためのルールを設定します。


    このコマンドは、「ppp0インターフェースで受信したTCPパケットのうち、終点IPアドレスが1.2.3.4で終点ポートが25のものを、アドレス変換してホスト192.168.10.3の25番ポートに転送する」の意味になります。


■ 同じWell-knownポートを使うサーバーを複数公開したい場合、外部からのアクセスはいくらか変則的になりますが、GBLPORTをサーバーごとに変えることで可能となります。ここでは、内部に192.168.10.5、192.168.10.10の2つのWebサーバーがあるものとします。次の例では、外部から1.2.3.4のTCPポート80番へのアクセスは192.168.10.5に、同じくポート8080番へのアクセスは192.168.10.10のWebサービスに転送します。


この場合、外部から192.168.10.10のWebサーバーにアクセスするには、URLの中でポート番号8080を指定する必要があります。ブラウザーのURL欄に次のように入力します。


192.168.10.5のWebサーバーは標準のWebサービスポートである80番を使っているので、URLでポート番号を指定する必要はありません。



■ 少し特殊なケースですが、TCP/UDPポート番号ではなく、IPヘッダーのプロトコル番号をもとに内部への転送を行うこともできます。次の例では、PRIVATE側にあるIPv6ルーター(192.168.10.2)が、IPv4インターネット上のIPv6トンネルサーバー(12.34.56.78)との間にトンネルを張り、LANをIPv6ネットワークにトンネル接続しています。


インターネット上にトンネルを張るには、トンネルの両エンドに互いに到達可能なグローバルアドレスが必要ですが、この環境ではLAN側のIPv6ルーターにグローバルアドレスがありません。そこで、スタティックENATのプロトコル転送機能を利用して、本製品のWAN側インターフェース(1.2.3.4)宛てに届いたIPv6 over IPv4トンネリングパケット(IPプロトコル41)を、LAN側のIPv6ルーターに転送する設定を行います。これにより、トンネルサーバーからは本製品のPPPインターフェースが、LAN側に存在するIPv6ルーターのインターフェースに見えます。


このコマンドは、「ppp0インターフェースで受信したプロトコル番号41(IPv6)のIPパケットのうち、始点IPアドレスが12.34.56.78で終点IPアドレスが1.2.3.4のものを、アドレス変換してLAN側の192.168.10.2に転送する」の意味になります。また、内部からの戻りパケットは、逆向きのアドレス変換(プライベート→グローバル)を施した上で送信元に送り返されます。


■ スタティックENATの設定におけるパラメーターの指定方法をまとめます(ダイナミックENATの併用が必須です)

表 8
パラメーター
指定する内容
ACTION 外部から内部への転送を許可するので常にALLOWとなります
INTERFACE 外部(PUBLIC)インターフェースを指定します
PROTOCOL 転送するプロトコルを指定します。通常はTCPかUDPです。その場合、GBLPORTとPORTの指定も必要です。また、プロトコル番号による指定も可能です。ただし、スタティックENATでは外部から内部にICMPを転送することはできません
GBLIP 転送前の終点IPアドレス。外部インターフェースに割り当てられたグローバルIPアドレスを指定します。IPCP(PPP)やDHCPなどで動的にアドレスを取得している場合は0.0.0.0を指定します
GBLPORT 転送前の終点ポート番号。PROTOCOLにTCPかUDPを指定した場合にのみ必要です
IP 転送後の終点IPアドレス。転送先ホストのプライベートIPアドレスです
PORT 転送後の終点ポート番号。転送先のポート番号です。PROTOCOLにTCPかUDPを指定した場合にのみ必要です
REMOTEIP 始点IPアドレス。外部の送信者のIPアドレスです(範囲指定可)。省略時はすべての始点IPアドレスが対象になります
SOURCEPORT 始点ポート番号。外部の送信者のポート番号です(範囲指定可)。PROTOCOLにTCPかUDPを指定した場合のみ有効。省略時はすべての始点ポートが対象となります



 

ENAPT(Port Restricted Cone NAT)

ENAPT(Enhanced Network Address and Port Translation)は、RFC3489でPort Restricted Cone NATと呼ばれているNATの種類です。ENAPTは、複数のプライベートIPアドレスとポートを、グローバルIPアドレスとポートに変換します。プライベート-グローバル間の関連付けは記憶され、同じプライベートIPアドレスと送信/受信ポートの通信だけが転送されます。

設定を行うには、ADD FIREWALL POLICY NATコマンドにNAT=ENAPTオプションを指定します。



 

ルールNAT

ルールNATは、アドレスベースのNAT機能です。ADD FIREWALL POLICY RULEコマンドのACTIONにNATを指定することによって設定を行います。

ルールNATでは、インターフェースNATより細かい制御が可能ですが、その分設定も複雑になります。通常は従来からあるインターフェースNATをご使用ください。ルールNATは、インターフェースNATで対応できない特殊な設定を行いたい場合にのみ使用してください。

Note - ルールNATは、ADD FIREWALL POLICY NATコマンドで設定するインターフェースNATよりも優先的に適用されます。

ルールNATには、次のようなアドレス変換パターンがあります。また、下記の各パターンと組み合わせて、IPアドレスのサブネット部だけを変換する「サブネットNAT」も可能です。


ルールNATは原則として一方向にのみ作用します。すなわち、PUBLICインターフェースに設定したNATルールは、PUBLIC → PRIVATEのパケットとその戻りパケットにのみ作用します。また、PRIVATEインターフェースに設定したNATルールは、PRIVATE → PUBLICのパケットとその戻りパケットにのみ作用します。

Note - ルールのアクションにNAT、NONATを指定することは、ALLOW同様パケットを許可することになるので注意してください。

以下、各タイプのNAT設定について例を挙げながら解説します。

 

スタンダードNAT

スタンダードNAT(NATTYPE=STANDARD)は、IPアドレスを一対一で静的に変換します。インターフェースNATにおける「スタティックNAT」「スタティックENAT」に相当します。

PRIVATE側のホストがPUBLIC側にあるように見せかけたい場合、PUBLICインターフェースに次のようなスタンダードNATルールを適用します。


■ PRIVATE側のホスト192.168.10.100を、PUBLIC側では1.1.1.100のように見せかけたい場合は、PUBLIC側インターフェースに次のようなスタンダードNATルールを適用します。


■ 同じ構成で、ホスト192.168.10.100のTelnetサービスだけを外部に公開するには次のようにします。


Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。

ルールNATは原則一方向です。したがって、ルールをどのインターフェースに適用するかによって設定や動作が異なります。


上記の設定例は、PUBLIC側から通信が開始されることを前提とし、外→内のパケットとその戻りについてのみ上記ルールを適用します。PRIVATE側のホストが単独で通信を開始した場合は上記ルールは適用されません。

■ 完全に双方向の変換を行いときは、PRIVATEインターフェースにもNATルールを追加してください。


■ サブネット単位でスタンダードNATの変換を行うには、NATMASKパラメーターでネットマスクを指定します。「サブネット単位でNATを行う」とは、IPアドレスのサブネット部だけを変換し、ホスト部はそのままにすることを示します。

192.168.10.17〜192.168.10.30(192.168.10.16/28)と1.1.1.17〜1.1.1.30(1.1.1.16/28)を一対一で変換するには、次のようにします。


 

エンハンストNAT

エンハンストNAT(NATTYPE=ENHANCED)は、指定したインターフェースで受信したパケットの始点IPアドレスを別の1個のIPアドレスに変換するNATです。送信元の識別は、変換後に異なる始点ポート番号を使うことによって実現します。

■ vlan1で受信したパケットの始点アドレスを1.1.1.10に書き換えるには次のようにします。始点ポート番号はセッションごとに自動的に割り当てられます。


■ ppp0で受信したパケット(外→内)の始点アドレスを192.168.10.200に書き換えます。


 
IPsecパススルー
IPsecパススルー機能とは、NAT機器配下にあるIPsec端末が、NAT機器の先にあるIPsec端末とIPsec通信ができるようにするための機能です。
通常、エンハンストNATでは、送信元アドレスに加えて、送信元ポート番号の変換も行いますが、IPsec通信で使用されるESPパケットにはポート番号の概念がないため、NAT機器配下に複数のIPsec端末が接続されている場合、最初に接続してきたIPsec端末だけしか接続できません。
しかし、エンハンストNATを使用する際に、PROTOCOL パラメーターで ESP を指定することによって、NAT機器配下の複数のIPsec 端末がNAT機器の先にある IPsec端末とIPsec通信ができます。

■ 基本動作
  1. PrivateインターフェースでESPパケットを受信時に送信元IPアドレス、宛先IPアドレス、SPIを"Initiateセッション"として作成します。

  2. Publicインターフェースで受信したESPパケットの送信元アドレスと保持しているInitiateセッションの宛先アドレスを比較しマッチするセッションが存在する場合、そのセッションを"Establishセッション"として記録されている送信元アドレスにパケットを転送し、そのSPIを記録します。

    Note - マッチするInitiateセッションが複数存在する場合、もっとも古いセッションを選択します。(区別できないセッションが存在すると以下の様なFirewall Notify Eventが発生します。)
    Note - マッチするInitiateセッションが存在しない場合(Public側から通信が開始された場合)、ESPパケットは破棄されます。

■ IPsecとの併用
本機能とIPsecとの併用は可能です。

■ NAT-Traversalとの併用
本機能とNAT-Traversalとの併用は可能です。また、Private側にNAT-Traversalを使用する端末とIPsecパススルーを使用する端末が混在した環境でも動作可能です。

■ Private 側にある IPsec 端末からの IPsec 通信をパススルーするには次のようにします。


■ 動的にグローバルIPアドレスが割り当てられる構成で本機能を使用する場合、IPsecパススルー向けのエンハンストNATルールに加え、インターフェースエンハンストNATを設定する必要があります。


■ ESPファイアウォールセッションの管理方法について
ルーターはESPパケットの送信元/宛先IPアドレスをもとに組み合わせを推測しています。よって、登録したSPIの上り/下りのペアが必ず正しいという保障ができません。これは、2点間のIPsec通信では外向きと内向きの2つのSAが確立し、互いに独立して存在しているため、IPsec終端機器以外がペアとなるSPIを知ることができないためです。
このため、以下のような場合はただしく動作しない場合があります。


■ セッション保持時間について
NAT対象となっているSAのLifetimeとESPのファイアウォールセッション保持時間は同期していません。そのため、これらの時間の組み合わせにより以下のような事象が発生します。

  1. SAのLifetimeがESPファイアウォールセッション保持時間よりも短い場合、SAのRekey後に新しいSPIで通信を開始されると新しいファイアウォールセッションが生成されますが、不要になった古いファイアウォールセッションもタイムアウトするまで保持されたままになります。SAのRekeyが頻繁に行われる環境では余分なセッションが数多く存在する場合があります。

  2. SAのLifetimeがESPファイアウォールセッション保持時間よりも長い場合、SAが存在していても無通信状態がSession Timer以上続くとESPのファイアウォールセッションは削除されます。このとき、Private側からのESPパケットを受信しない限りPublic側からのESPパケットは破棄し続けます。

    Note - ESPのファイアウォールセッション保持時間は、SET FIREWALL POLICYコマンドのESPTIMEOUTパラメーターで変更可能です。

■ 未サポートプロトコルについて
IPsecプロトコル "AH"はサポートしません。


 

リバースNAT

リバースNAT(NATTYPE=REVERSE)は終点アドレスを書き換えます。一般的に認知されているNATではなく、パケットを特定のホストにリダイレクトする機能です。

■ vlan1で受信したパケットの終点が1.1.1.126の場合、これを1.1.1.10に強制的に書き換えます。


 

ダブルNAT

ダブルNAT(NATTYPE=DOUBLE)は始点・終点の両方を書き換えます。

■ 始点192.168.10.100を1.1.1.100に書き換え、終点を1.1.1.10に書き換えます。


 

ルールNATのまとめ

ルールNATの変換パターンについてまとめます。

次表の「プライベート側」「グローバル側」欄に書かれているのは、IPパケットの始点・終点アドレスです。「A → B」と書いた場合、「A」が始点、「B」が終点アドレスを示します。また、「IP」「GBLIP」「REMOTEIP」「GBLREMOTEIP」は、ADD FIREWALL POLICY RULEコマンドのパラメーターです。スクエアブラケット([ ])で囲まれているパラメーターは省略が可能なことを示しています。

たとえば、PRIVATEインターフェースに適用したスタンダードNATルールでは、同インターフェースで受信したパケットの始点アドレスが「IP」で終点アドレスが「REMOTEIP」なら、始点アドレスを「GBLIP」に書き換えます。

表 9
NAT種別
向き(I/F種別)
プライベート側
グローバル側
備考
スタンダード 内 → 外(PRIVATE) IP → [REMOTEIP] GBLIP → [REMOTEIP] 始点アドレスをIPからGBLIPに変換
内 ← 外(PUBLIC) IP ← [REMOTEIP] GBLIP ← [REMOTEIP] 終点アドレスをGBLIPからIPに変換
エンハンスト 内 → 外(PRIVATE) [IP] → [REMOTEIP] GBLIP → [REMOTEIP] 始点アドレスをIPからGBLIPに変換(ポートも変換)
内 ← 外(PUBLIC) [IP] ← REMOTEIP [IP] ← [GBLREMOTEIP] 始点アドレスをGBLREMOTEIPからREMOTEIPに変換(ポートも変換)
リバース 内 → 外(PRIVATE) [IP] → [REMOTEIP] [IP] → GBLREMOTEIP 終点アドレスをREMOTEIPからGBLREMOTEIPに変換
内 ← 外(PUBLIC) [IP] ← REMOTEIP [IP] ← [GBLREMOTEIP] 始点アドレスをGBLREMOTEIPからREMOTEIPに変換
ダブル 内 → 外(PRIVATE) IP → REMOTEIP GBLIP → GBLREMOTEIP 始点アドレスをIPからGBLIPに、終点アドレスをREMOTEIPからGBLREMOTEIPに変換
内 ← 外(PUBLIC) IP ← REMOTEIP GBLIP ← GBLREMOTEIP 始点アドレスをGBLREMOTEIPからREMOTEIPに、終点アドレスをGBLIPからIPに変換


 

アクセスリストによるルール

ADD FIREWALL POLICY RULEコマンドでルールを追加するとき、ファイルに記述した一連のアドレスに対してルールを設定することもできます。この機能(アクセスリスト)は、対象アドレスが多い場合に便利です。ここでは例として、内部ネットワークからアクセスリストに記載したアドレスへのアクセスを禁止するルールを設定します。

  1. 最初に、アクセスさせたくないアドレスの一覧を作成します。EDITコマンド等を用いて次のようなテキストファイルを作成してください。ここではファイル名を「denylist.txt」とします。


    リストファイルには、一行に一個アドレスを書きます。アドレスには次の2 つの形式があります。


    また例のように、アドレスの後に簡単な説明を入れることもできます。説明文字列はSHOW FIREWALL POLICYコマンドでアクセスリストの内容を見るときに表示されます。#(シャープ)以降はコメントです。

  2. 次にアクセスリストをポリシーに登録します。これ以降、アクセスリストを参照するときはファイル名でなくLISTパラメーターで指定した名前(ここでは「denyto」)を使います。


  3. 最後にアクセスリストを用いて拒否ルールを追加します。この例では、LAN側(vlan1)からアクセスリスト「denyto」に記載されているアドレスへのIP通信をすべて拒否しています。


    アクセスリスト内のIPアドレスは通信の向きによって次のように解釈されます。


よって、手順3のコマンドは、意味的には次のコマンドと同じになります。



また、アクセスリストにはMACアドレスを列挙することもできます。この場合、ADD FIREWALL POLICY LISTコマンドのTYPEパラメーターにはADDRESSと指定してください。リスト中のMACアドレスは送信元MACアドレスとして扱われます。


 

RADIUSサーバーを利用したルール

RADIUS認証サーバーを利用してファイアウォールのアクセス制御を行うこともできます。これは、RADIUSサーバー側で個々のIPアドレスごとに通信の許可・拒否を登録しておくもので、「望ましくない」Webサイトのリストを中央で管理するような場合に便利です。

最初にRADIUSサーバー側の設定を行います。以下は架空のRADIUSサーバーの設定例です。実際の設定方法については、ご使用のRADIUSサーバーのマニュアルをご覧ください。

  1. RADIUSサーバーのクライアントリストに本製品を追加します。また、サーバー・クライアント間の通信で使用する共有パスワードも設定します。

    ここでは、本製品のIPアドレスを192.168.10.1、共有パスワードをhimitsuとします。


  2. 次にRADIUSサーバーのユーザーデータベースにアクセス制御対象のアドレスと許可・拒否の設定を登録します。

    RADIUSを使用するよう設定した場合、本製品は受信したパケットごとに次のような認証リクエスト(Access-Requestパケット)をRADIUSサーバーに送ります。


    すなわち、ユーザー名としてIPアドレスを角かっこ([])で囲んだものを、パスワードとして「allowdeny」を送り、認証を要求します。

    ipaddには、外向き通信(PRIVATE→PUBLIC)の場合は終点アドレスが、内向き通信(PUBLIC→PRIVATE)の場合は始点アドレスが入ります。

    RADIUSサーバーの設定ファイルを編集して、アクセス制御対象のIPアドレスごとに次のような内容のユーザーエントリーを作成してください。実際の設定ファイルの記述方法については、RADIUSサーバーのドキュメントを参照してください。

    表 10
    属性名
    属性値
    User-Name [ipadd]
    User-Password allowdeny
    Framed-IP-Address 拒否なら0.0.0.0、許可ならipadd


    ここでは、例として次のようなエントリーを登録したものとします。Framed-IP-Addressが0.0.0.0なので、どちらも拒否エントリーです。


  3. エントリーの追加が完了したら、RADIUS サーバーを再起動してください。

  4. 次に、本製品がRADIUSサーバーを使うように設定します。ここでは、RADIUSサーバーのIPアドレスを192.168.10.5とします。


  5. 次に、ファイアウォールルールを作成して、RADIUSサーバーを使うよう設定します。

    この例では、LAN側(vlan1)から外部へ送られるHTTPのトラフィックについて、終点アドレスをユーザー名としてRADIUSサーバーに通信の可否を問い合わせます。ACTIONにDENYを指定した場合はデフォルト許可のルールとなり、RADIUSデータベースにFramed-IP-Address「0.0.0.0」として登録されているアドレスだけが拒否されます。一方、ACTIONにALLOWを指定した場合はデフォルト拒否のルールとなり、Framed-IP-Addressが自分自身のアドレスと一致するものだけが許可されます。


    Note - ALLOWが「デフォルト拒否」で、DENYが「デフォルト許可」というのは逆のようにも思えますが、ALLOWは「RADIUSサーバー上で許可するよう登録されているものだけ」を許可、DENYは「RADIUSサーバー上で拒否するよう登録されているものだけ」を拒否、という意味合いになります。

    ■ RADIUSサーバーからの応答は次のように解釈されます。


 

ルールの時間制限

特定の曜日や時間帯だけルールを有効にすることもできます。この機能を利用すれば、平日の営業時間内に限って外部からのWebアクセスを許可するといった設定が可能です。時間制限の設定は、ADD FIREWALL POLICY RULEコマンドのAFTER、BEFORE、DAYSパラメーターで行います。

■ 次の例では、平日(月〜金)の9:00〜20:00に限り、外部から内部のWebサーバー(1.2.3.2へのアクセスを許可します。それ以外の時間帯は、ファイアウォールの基本ルールによりすべてのアクセスが拒否されます。


このコマンドは、「ppp0インターフェースで受信したTCPパケットのうち、終点IPアドレスが1.2.3.2で終点ポートが80のものを、平日(月〜金)の9:00〜20:00の間に限って通過させる」の意味になります。

■ ファイアウォールルールでは、TTLパラメーターでルールの有効期間を指定することができます。TTL指定のルールは、動的なものであり設定ファイルには保存されません。コマンド入力後TTLで指定した時間が経過すると削除されます。


 

ルールの確認・修正・削除

■ ファイアウォールポリシーに設定されたルールの内容を確認するには、SHOW FIREWALL POLICYコマンドを使います。

■ ルールを修正するにはSET FIREWALL POLICY RULEコマンドを使います。

■ ルールを削除するにはDELETE FIREWALL POLICY RULEコマンドを使います。


 

ルールの処理順序

  1. 新しく開始されたセッションまたはフロー(以下、フローとします)の向きによって、マッチするルールがなかったときのデフォルトの動作が決定されます。PRIVATEインターフェース側から開始されたフローはデフォルト許可、PUBLIC側から開始されたフローはデフォルト拒否となります。以後、番号の小さいものから順にルールがチェックされていきます。ひとつもマッチするルールがなかった場合は、最初に決めたデフォルトの動作を行います。

  2. 新規フローのプロトコルタイプ(PROTOCOL)と一致するルールがないかチェックします。プロトコルが一致するルールがなかった場合、デフォルトの動作を実行します。

  3. プロトコルがTCPかUDPの場合、終点ポート(PORT)をチェックします。一致するルールがなかった場合はデフォルトの動作を実行します。

  4. プロトコルがTCPかUDPの場合、始点ポート(SOURCEPORT)をチェックします。一致するルールがなかった場合はデフォルトの動作を実行します。

  5. リモートIPアドレス(REMOTEIP)をチェックします。PRIVATE側からのフローでは終点IPアドレス、PUBLIC側からのフローでは始点IPアドレスです。一致するルールがなかった場合はデフォルトの動作を実行します。

  6. ローカルIPアドレス(IPまたはGBLIP)をチェックします。PRIVATE側からのフローでは始点IPアドレス、PUBLIC側からのフローでは終点IPアドレスです。終点IPアドレスは、NATを使用している場合はPUBLIC側の送信元ホストから見えるグローバルIPアドレス(GBLIP)、NATを使用していない場合はPRIVATE側ホストのIPアドレス(IP)になります。

  7. IPアドレスが一致した場合は、時刻をチェックします。現在時刻がルールが有効でない時間帯ならば、該当ルールにはマッチしません。

  8. EthernetまたはVLANインターフェースに適用されたルールでハードウェア(MACアドレス)リストが指定されている場合、新規フローの送信元MACアドレスに一致するアドレスがリストに記載されているかどうかをチェックします。一致するアドレスがなかった場合はデフォルトの動作を実行します。

  9. ルールでIPリストが指定されている場合、PRIVATE側からのフローでは終点IPアドレスが、PUBLIC側からのフローでは始点IPアドレスをチェックします。IPリストもRADIUSサーバーも設定されていない場合、ルールのアクションがALLOWならば、この時点で新規フローは通過を許可されます。アクションがDENYならば破棄されます。同様に、IPリストにマッチするアドレスが掲載されていた場合も、アクションがALLOWなら許可、DENYなら破棄します。

  10. IPリストにマッチするアドレスがなく、RADIUSサーバーも設定されていない場合は、アクションがALLOWなら新規フローは破棄されます。アクションがDENYならば、PRIVATE側から開始されたフローは許可され、それ以外の場合はデフォルトの動作を実行します。

  11. IPリストにマッチするアドレスがなく、RADIUSサーバーが設定されている場合、新規フローの終点IPアドレス(PRIVATE側からのフロー)あるいは始点IPアドレス(PUBLIC側からのフロー)について、RADIUSサーバーに問い合わせを行います。RADIUSサーバーの応答は、次のように解釈します。



 

ファイアウォールの動作監視

ファイアウォールの運用にあたっては、ルールを適切かつ正しく設定することはもちろんですが、ファイアウォールの周辺でどのような活動が行われているかを調べることも重要です。本製品のログ機能や自動通知機能、トリガー機能などを利用すれば、このような監視作業を効果的に行うことができます。

 

ログ

ファイアウォールの動作を監視する場合、ログはもっとも基本的な資料になります。デフォルトでは、攻撃などの重大イベントしか記録されませんので、以下のコマンドを実行して必要なログオプションを有効にしてください。

■ ファイアウォールで拒否されたパケットのログをとるには、ENABLE FIREWALL POLICYコマンドのLOGパラメーターに記録するパケットの種類を指定します。たとえば、ファイアウォールで拒否されたすべてのパケットを記録するには、次のようにします。


LOGパラメーターにはほかにもさまざまなオプションを指定できます。LOGパラメーターには複数の項目をカンマ区切りで指定することができます。

表 11:ファイアウォールのログオプション一覧
オプション名
対象パケット
INATCP 外部(PUBLIC側)からのTCPセッション開始を許可
INAUDP 外部からのUDPフロー開始を許可
INAICMP 外部からのICMP要求を許可
INAOTHER 外部からのIPフロー開始(TCP、UDP、ICMP以外)を許可
INALLOW 外部からのセッション/フロー開始を許可。INATCP、INAUDP、INAICMP、INAOTHERをすべて指定したのに等しい
OUTATCP 内部(PRIVATE側)からのTCPセッション開始を許可
OUTAUDP 内部からのUDPフロー開始を許可
OUTAICMP 内部からのICMP要求を許可
OUTAOTHER 内部からのIPフロー開始(TCP、UDP、ICMP以外)を許可
OUTALLOW 内部からのセッション/フロー開始を許可。OUTATCP、OUTAUDP、OUTAICMP、OUTAOTHERをすべて指定したのと等しい
ALLOW 内外からのセッション/フロー開始を許可
INDTCP 外部からのTCPセッション開始を遮断
INDUDP 外部からのUDPフロー開始を遮断
INDICMP 外部からのICMP要求を遮断
INDOTHER 外部からのIPフロー開始(TCP、UDP、ICMP以外)を遮断
INDENY 外部からのセッション/フロー開始を遮断。INDTCP、INDUDP、INDICMP、INDOTHERをすべて指定したのに等しい
OUTDTCP 内部からのTCPセッション開始を遮断
OUTDUDP 内部からのUDPフロー開始を遮断
OUTDICMP 内部からのICMP要求を遮断
OUTDOTHER 内部からのIPフロー開始(TCP、UDP、ICMP以外)を遮断
OUTDENY 内部からのセッション/フロー開始を遮断。OUTDTCP、OUTDUDP、OUTDICMP、OUTDOTHERをすべて指定したのに等しい
DENY 内外からのセッション/フロー開始を遮断
INDDTCP 外部からのTCPセッション開始を遮断し、IPパケットの先頭最大192バイトを記録
INDDUDP 外部からのUDPフロー開始を遮断し、IPパケットの先頭最大192バイトを記録
INDDICMP 外部からのICMP要求を遮断し、IPパケットの先頭最大192バイトを記録
INDDOTHER 外部からのIPフロー開始(TCP、UDP、ICMP以外)を遮断し、IPパケットの先頭最大192バイトを記録
INDDUMP 外部からのセッション/フロー開始を遮断し、IPパケットの先頭最大192バイトを記録
OUTDDTCP 内部からのTCPセッション開始を遮断し、IPパケットの先頭最大192バイトを記録
OUTDDUDP 内部からのUDPフロー開始を遮断し、IPパケットの先頭最大192バイトを記録
OUTDDICMP 内部からのICMP要求を遮断し、IPパケットの先頭最大192バイトを記録
OUTDDOTHER 内部からのIPフロー開始(TCP、UDP、ICMP以外)を遮断し、IPパケットの先頭最大192バイトを記録
OUTDDUMP 内部からのセッション/フロー開始を遮断し、IPパケットの先頭最大192バイトを記録
DENYDUMP 内外からのセッション/フロー開始を遮断し、IPパケットの先頭最大192バイトを記録


■ ファイアウォールに関するログは次のコマンドで見ることができます。

または


■ 大量のログメッセージが記録されている場合などに、最新のメッセージだけを見たい場合は、TAILオプションを付けます。



■ ファイアウォールのログオプションのうち、INATCP、INAUDP、INAICMP、INAOTHER、INALLOWに対応するメッセージのログレベル(Severity)は2です。ログ機能のデフォルト設定では、ログレベル3以上のメッセージだけを保存するようになっているため、SHOW LOGコマンドを実行しても前記のメッセージは表示されません。これらのメッセージが記録されるようにするには、ログメッセージフィルターの設定を変更する必要があります。

たとえば、次のコマンドを実行すれば、ファイアウォール関連のメッセージはすべて、ログレベルに関係なく「TEMPORARY」ログ(RAM上に記録されるログ)に保存されるようになります。


 

イベント通知

重大なイベント(攻撃開始など)を自動的に通知するよう設定するには、ENABLE FIREWALL NOTIFYコマンドを使います。イベントの通知先としては、次のものがあります。


各通知先は個別にオン・オフできます。デフォルトでは、通知イベント発生時にManagerレベルでログインしているコンソールにメッセージが表示されるようになっています。


■ イベント発生時に管理者にメールを送るには次のようにします。

1. メール送信のための設定を行います。詳細は「運用・管理」/「メール送信」をご覧ください。


2. メールアドレスを指定し、メールによる通知を有効にします。



Synアタックを受けたときに送られてきたメールの例

Note - メール通知を有効にするには、あらかじめメール送信のための基本設定(自ホスト名、DNSサーバーの設定)が必要です。詳細は「運用・管理」/「メール送信」をご覧ください。


■ イベント発生時にSNMPトラップを上げるには次のようにします。ここでは、トラップ送信先として、SNMPマネージャー192.168.10.5を設定します。

1. SNMPの設定を行います。詳細は「運用・管理」/「SNMP」をご覧ください。


2. SNMPトラップによるイベント通知を有効にします。



ポートスキャンを受けたときに送られてきたトラップの例

Note - SNMPトラップによる通知を有効にするには、あらかじめSNMPの基本設定(SNMPモジュールの有効化、コミュニティーの作成、マネージャー/トラップホストの指定、トラップの有効化)が必要です。詳細は「運用・管理」/「SNMP」をご覧ください。


■ 現在有効になっている通知先を確認するには、SHOW FIREWALLコマンドを実行します。「Enabled Notify Options」に有効な通知先が表示されます。

■ イベント通知をオフにするにはDISABLE FIREWALL NOTIFYコマンドを使います。


■ ファイアウォールイベントの履歴を見るには、SHOW FIREWALL EVENTコマンドを使います。


大きく分けて、イベントには次の3種類があります。上記コマンドを実行すると、すべてのイベントが表示されます。


特定イベントの履歴だけを見るには次のようにします。



通知イベントには次のような攻撃が含まれます。

表 12:攻撃一覧
攻撃名称
説明
DoS Flood 不要なトラフィックで帯域を占有し、ネットワークサービスを妨害する
Fragment Attack 巨大なフラグメントや再構成できないフラグメントを送りつける
Host Scan 内部ネットワークで稼動中のホストを調べる
IP Spoofing 送信元IPアドレスを詐称する
Land Attack 始点と終点に同じアドレスを設定したIPパケットによるDOS攻撃。システムのバグを狙う
Ping of Death システムのバグをつくもので、特定サイズのPingパケットを送りつけることによりシステムをクラッシュさせる
Port Scan ホスト上で稼動中のサービスを調べる
SMTP Third-party Relay メールの不正中継。宛先とは関係のないドメインのメールサーバーを利用してメールを送信する。spamメールの送信者が送信元を隠すために使用することが多い
Smurf Attack 始点アドレスを詐称(標的のアドレスを設定する)したPingパケットを中継サイトのディレクディドブロードキャストアドレスに送り、中継サイトから標的サイトに大量のリプライを送りつけさせる
Spam spamメール。不要なメールを送りつける。何をspamと見なすかは受信者次第。本製品では、spamリストで指定されたドメイン、メールアドレスからのメールをspamメールと見なす
Syn Attack TCPのSynパケットを断続的に送りつけ、ハーフオープンのコネクションを大量に生成し(始点アドレスを詐称するためSyn/Ackへの応答はない)、標的システムのコネクションキューを枯渇させる
Tiny Fragment Attack 微小なフラグメントを用いてTCPフラグを2個目のフラグメントに入れ、Synパケットのフィルタリングをくぐりぬけようとする
UDP Port Scan UDPによるポートスキャン



 

トリガー

ファイアウォールトリガーを使えば、各種攻撃の開始時・終了時にスクリプトを実行させることができます。ファイアウォールトリガーは、CREATE TRIGGER FIREWALLコマンドで作成します。

■ 次の例では、ポートスキャンの開始を検出したときに管理者にメールを送るよう設定します。メールはサブジェクトのみとし、ファイアウォールトリガーの引数を利用してサブジェクトに攻撃者のIPアドレスとポリシー名が入るようにします。


スクリプト「pscans.scp」の内容

上記トリガーによって送られてきたメールの例

Note - メール機能を使用するためには、あらかじめメール送信のための基本設定(自ホスト名、DNSサーバーの設定)が必要です。詳細は「運用・管理」/「メール送信」をご覧ください。

■ 攻撃検出のしきい値はSET FIREWALL POLICY ATTACKコマンドで変更できます。

■ 攻撃検出のしきい値はSHOW FIREWALL POLICY ATTACKコマンドで確認できます。


 

アカウンティング

アカウンティング機能を利用すれば、ポリシーごとにトラフィックの記録を取ることができます。


■ アカウンティングはENABLE FIREWALL POLICYコマンドのACCOUNTINGオプションで有効にします。


■ アカウンティング情報を見るには、SHOW FIREWALL ACCOUNTINGコマンドを使います。


■ アカウンティング情報はログにも記録されます。ログレベルは3です。アカウンティング情報だけを見るには次のようにします。




 

デバッグオプション

ファイアウォールポリシーのデバッグオプションをオンにするには、ENABLE FIREWALL POLICYコマンドのDEBUGパラメーターを使います。オプションには、パケットダンプの表示(PKT)と処理プロセスの表示(PROCESS)があります。

Note - DEBUGパラメーターは、トラブルシューティング時など、内部情報の確認が必要な場合を想定したものですので、ご使用に際しては弊社技術担当にご相談ください。

■ デバッグオプションPKTをオンにすると、コンソールにIPパケットの先頭56バイトが16進ダンプされるようになります。




■ デバッグオプションPROCESSをオンにすると、コンソールにIPパケットの処理過程が逐次表示されるようになります。




■ デバッグオプションを無効にするには、DISABLE FIREWALL POLICYコマンドのDEBUGパラメーターを使います。


■ 現在有効なデバッグオプションはSHOW FIREWALL POLICYコマンドで確認します。「Enabled Debug Options」に有効なオプションが表示されます。


 

セッションの確認

■ 現在ファイアウォールを介して行われている通信セッションを確認するにはSHOW FIREWALL SESSIONコマンドを使います。



■ 各セッションの統計情報を確認するには、SHOW FIREWALL SESSIONコマンドにCOUNTERオプションを付けます。



■ 特定のセッションを強制的に終了させるには、SHOW FIREWALL SESSIONコマンドで該当セッションのIDを確認してから、次のコマンドを実行します。



 

ダイナミックインターフェース

ファイアウォールを使用するためには、ADD FIREWALL POLICY INTERFACEコマンドで監視対象インターフェースを指定する必要があります。また、ファイアウォールルールを作成するときや、NATルールを設定するときにもインターフェース名の指定が必要です。

eth0、ppp0のように固定的に設定されているインターフェースの場合は、単にインターフェース名を指定するだけですが、外部からダイヤルアップを受け付けているような場合、動的に作成されるインターフェース(PPPテンプレートなどによって作成されるインターフェース)をどのようにして指定するかが問題となります。

動的に作成されるPPPインターフェースをファイアウォール関連コマンドで使用するときは、「ダイナミックインターフェーステンプレート」という仕組みを使います。この仕組みを使うと、特定ユーザーが接続してきたときに作成される動的インターフェースに任意の名前(テンプレート名)を付けることができます。たとえば、ユーザー「pon」が接続してきたときに作成されるPPPインターフェースに「pon-if」という名前を付けられます。ADD FIREWALL POLICY INTERFACEコマンドなど、ファイアウォールの設定コマンドでインターフェース名を指定するときは、「DYN-」+テンプレート名で指定することができます。

Note - ダイナミックインターフェースとHTTPプロキシー機能は併用できません。


 

テンプレートの作成


■ ファイアウォールで動的なPPPインターフェースを扱うときは、最初にCREATE FIREWALL POLICY DYNAMICコマンドでテンプレートを作成します。テンプレート名は自由です。



■ 次に、このテンプレートで参照するインターフェースの対象ユーザーをADD FIREWALL POLICY DYNAMICコマンドで追加します。たとえば、ユーザーwhiteがダイヤルアップしてきたときに作成されるインターフェースを、テンプレート「dialup_if」として参照したい場合は、次のようにします。


Note - 同じユーザー名を複数のテンプレートに割り当てることはできません。


■ PPPの認証なしで作成されたインターフェースを参照する場合は、USERパラメーターにNONEを指定します。これは、認証を必要としないすべてのPPPインターフェースを対象とすることを示します。



■ PPPの認証を受けたユーザーすべてを対象とする場合は、USERパラメーターにANYを指定します。



■ 1つのテンプレートで複数のユーザーを対象にすることもできます。その場合は、ADD FIREWALL POLICY DYNAMICコマンドを複数回実行してください。たとえば、営業部員がダイヤルアップしてきたときに作成されるインターフェースを「sales_if」という名前で総称するとします。営業部には、hayashi、kobayashi、oobayyashiという3ユーザーがいるとした場合は、次のように設定します。



■ リストファイルを使ってユーザーをまとめて指定することもできます。最初にEDITコマンド等で次のようなテキストファイルを作成してください。1行に1つユーザーを記述します。拡張子は.txtです。

ファイルnewusers.txt

ファイルを作成したら、ADD FIREWALL POLICY DYNAMICコマンドのFILEパラメーターでファイル名を指定します。


ファイル(FILE)で指定したユーザーと、USERパラメーターで指定したユーザーは共存できます。


■ ダイナミックインターフェーステンプレートから対象ユーザーを削除するには、DELETE FIREWALL POLICY DYNAMICコマンドを使います。



■ ダイナミックインターフェーステンプレートからユーザーリストを削除するには、DELETE FIREWALL POLICY DYNAMICコマンドのFILEパラメーターを使います。



■ ダイナミックインターフェーステンプレートは、DESTROY FIREWALL POLICY DYNAMICコマンドで削除します。テンプレートにユーザーが設定されている場合でも削除は可能です。



 

テンプレートの使用

作成したダイナミックインターフェーステンプレートは、ファイアウォール関連コマンドでインターフェース名を指定する箇所ならどこでも使用できます。そのとき、「DYN-」+テンプレート名の形式で指定します。以下、例を示します。

■ ファイアウォールポリシーに動的インターフェースを追加する。



■ 動的インターフェースからWebサーバー宛てのパケットを通さない。



Note - ダイナミックインターフェーステンプレートをNATルールのグローバルインターフェースとして指定することはできません。


 

アプリケーション検出・遮断機能(Application Detection System:ADS)

ファイル共有ソフトによるP2P通信は、特定のホストが大量のTCPセッションを使用するため、帯域を占有してしまうことになります。また、ファイル共有ソフトの使用により、意図せず有害なファイルや企業の極秘情報等を拡散させてしまう恐れがあります。
ADS(Application Detection System)機能は、このようなP2P通信を検知し、必要に応じてブロックすることができる機能です。

■ ファイアウォールポリシーにおいてWINNYを検出した際、パケットを破棄するように設定するには、ENABLE FIREWALL POLICY P2PFILTERコマンドを使います。
ENABLE FIREWALL POLICY=policy P2PFILTER=WINNY ACTION=DENY

■ ファイアウォールポリシーにおいてWINNYの検出を無効にするには、DISABLE FIREWALL POLICY P2PFILTERコマンドを使います。
DISABLE FIREWALL POLICY=policy P2PFILTER=WINNY

 

サポートする Winny バージョン


本バージョンでは、Winny Ver.2.0b7.1の検知をサポートしています。

 

Winny関連のログ


Winny関連のログは 5 種類あり、それぞれの意味は下記のとおりです。
なお、1〜3 はログレベル6(URGENT)以下、4〜5 はログレベル0(DEBUG)で表示が可能です。

表 13:Winny関連のログ
1 Winny communication from [source-ipaddr] to [destination-ipaddr] found ACTION=NOTIFY指定時、Winnyを検知したときに出力されます。なお、このログが出力されても、該当 TCP セッションは削除されません。
2 Winny communication from [source-ipaddr] to [destination-ipaddr] discarded ACTION=DENY指定時、Winny を検知したときに出力されます。なお、このログが出力された時点で該当 TCP セッションは削除済みとなります。
3 Failed to allocate required memory of Winny handler [firewall-session-id]ADS の処理に必要なメモリーの割り当てに失敗した場合に出力されます。
4 Winny P2P filter handler added [session id] そのセッションに対する Winny の検疫処理が開始された際に出力されます。
5 Winny P2P filter handler removed [session id] そのセッションに対する Winny 検疫処理が終了した時点で出力されます。つまり、ACTION=DENYの場合は、Winny検知後、もしくは THRESHOLDパラメーターで設定した数分のTCP パケット検疫完了後、ACTION=NOTIFYの場合は、THRESHOLDパラメーターで設定した数分の TCPパケットを検疫完了後に出力されます。




 

その他設定

本製品のファイアウォールは、各種コマンドを使って細かい動作の変更が可能です。ここでは主要な設定についてのみ説明します。詳細はコマンドリファレンスをご覧ください。

■ Pingパケット(ICMP echo、echo reply)とICMP Destination Unreachableを通すには、次のようにします。デフォルトではICMPはすべて通しません(ルーター自身へのPingには応答します)。


Note - ICMP Destination Unreachableメッセージ(ICMPタイプ3)は、IPホストが通信経路上の最大パケットサイズ(Path MTU)を知る目的で使用することがあります。そのため、本メッセージを遮断すると、一部のサイトにアクセスできなくなる可能性があります。

ICMP_FORWARDINGにALLを指定すると(Pingだけでなく)すべてのICMPメッセージを通すようになりますが、セキュリティー的にはお勧めできません。

なお、ファイアウォールでは、ICMPについては方向の制御ができません。すなわち、ICMPパケットは双方向とも通すか、まったく通さないかの設定しかできません。

内部からのPing(echo)は通すが、外部からのPing(Echo)は拒否するといった設定をしたい場合は、IPフィルターを併用してください。IPフィルターではICMPパケットに対する細かい制御が可能です。外部(ppp0)からのみPingを拒否するには、次のようなフィルターを設定します。IPフィルターの詳細については、「IP」の章をご覧ください。


■ Pingの転送をオフにするには、次のコマンドを実行します。


■ 本製品自身への外部からのPingに応答しないようにするには、次のようにします。デフォルトでは応答します。また、内部からのPingには常に応答します。


■ 外部からのident(TCP 113番ポート)要求に対して、RSTを返すようにするには次のようにします。

デフォルトでは、ファイアウォール外部のSMTP(メール)サーバーなどからのident要求に対して本製品が代理応答します(identプロキシー機能)。しかし、外部のSMTP(メール)サーバーなどへの接続に時間がかかりすぎる場合は、DISABLE FIREWALL POLICY IDENTPROXYコマンドを実行してidentプロキシーをオフにしてみてください。これにより、外部からのident要求に対してただちにRSTを返すようになります(こちらの実装のほうが一般的なようです)。


なお、identプロキシー機能がオンのときは、ident要求に対して本製品がproxyuserというユーザー名を返答します。

■ ファイアウォールのデフォルト設定では、PUBLIC・PRIVATEインターフェース間のTCPセッション確立時にTCP Synパケットの代理応答を行いますが、一部のアプリケーションではこの動作(代理応答)によって矛盾が生じることがあります。

その場合は、DISABLE FIREWALL POLICY TCPSETUPPROXYコマンドで代理応答を無効にしてください。


いったん無効にした代理応答を再度イネーブルにするには、ENABLE FIREWALL POLICY TCPSETUPPROXYコマンドを使います。








(C) 2005-2014 アライドテレシスホールディングス株式会社

PN: J613-M0710-03 Rev.K