[index] CentreCOM 9600/8600シリーズ コマンドリファレンス 2.2

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

対象機種:8624(AT-FL-02が必要)、9606(AT-FL-02が必要


  - 基本設定
   - インターフェースと基本ルール
    - ICMPパケットの扱い
    - 本体インターフェース宛ての通信
  - ルールの追加
   - トラフィックを制限する
   - アクセスを許可する
   - インターフェースNAT
    - スタティックNAT
    - ダイナミックNAT
    - ダイナミックENAT
    - スタティックENAT
   - アクセスリストによるルール
   - ルールの時間制限
   - ルールの確認・修正・削除
   - ルールの処理順序
  - ファイアウォールの動作監視
   - ログ
   - イベント通知
   - トリガー
   - アカウンティング
   - デバッグオプション
   - セッションの確認
  - その他設定
  - 設定例


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

Note - ファイアウォール機能は、CPUによるソフトウェア処理で実現されています。そのため、通常のハードウェアルーティング使用時に比べてパフォーマンスが低下します。スループットを重視する場合は、ハードウェアIPフィルターのご使用をお勧めします。一方、ファイアウォールの利点としては、最小限の設定で安全性の高いフィルタリングを行えること、ハードウェアIPフィルターよりも柔軟な設定が可能なこと、パケットのログがとれること、重大イベント発生時の自動通知が可能なことなどが挙げられます。

Note - ファイアウォールとハードウェアIPフィルターを同時に使用することはできません。ファイアウォールとソフトウェアIPフィルターの併用は可能です。

 

基本設定

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


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


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


  3. ファイアウォールポリシーの適用対象となるIPインターフェース(VLAN)を指定します。内部側(vlan-in)をPRIVATE、外部側(vlan-out)を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を除く)、予期せぬ発呼や情報の漏洩を防ぐため、不要なトラフィックを遮断することができます。

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


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


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


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

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

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


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


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

表 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を使用していないことを前提に、外部(vlan-out)から内部ホスト172.16.10.10へのアクセスを許可しています。ファイアウォールの基本ルールにより、その他のホストに対するアクセスはこれまでどおり拒否されます。


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

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


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


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


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


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



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


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

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


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


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


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

表 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(Network Address Translation)の機能が統合されています(ファイアウォールNAT)。ファイアウォールNATは、インターフェース単位で設定を行うため「インターフェースNAT」とも呼びます。

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

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


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

 

スタティックNAT

スタティックNATは、ルーターなどの中継ノードでIPパケットのアドレスを付け替える機能です。スタティックNATでは、プライベートアドレスをグローバルアドレスに1対1で固定的に変換します。

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

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



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


■ スタティックNATを使うときは、「外IP」へのARPに対して本製品が代理応答する必要があります。そのためには、「外IP」を所有するマルチホームインターフェースを作成し、そのインターフェースを「外IF」に指定してください。また、「始点IPアドレス」=「内IP」のパケットが「内IF」から「外IF」に転送されるよう、ポリシーフィルターを設定してください。詳細は次項の具体例をご覧ください。

■ ここでは、次のようなネットワーク構成をもとに、本製品におけるスタティックNAT設定の要点について解説します。


ここでは、次のような方針で設定を行います。


以下、スイッチAの設定を示します。

  1. VLANを作成します。


  2. IPモジュールを有効にします。


  3. LAN側インターフェース(vlan-in)にプライベートIPアドレスを設定します。


  4. WAN側インターフェース(vlan-out)にISPから割り当てられたグローバルアドレスのうちの1つを設定します。


    Note - 「vlan-out-0」は「vlan-out」と同じ意味になります。

  5. WAN側インターフェース(vlan-out)をマルチホーミングし、サーバー用のスタティックNATアドレスを32ビットマスクで設定します。これは、WAN側セグメント(vlan-out)における、サーバーへのARP要求(たとえば、ルーターから172.16.10.2に対するARP)に応答するために必要な設定です。ここでは、vlan-out-1インターフェースにNATアドレスを設定します。


  6. デフォルトルートを設定します。


  7. ファイアウォールポリシーを作成し、基本設定を行います。


  8. ファイアウォールポリシーの適用対象となるインターフェースを指定します。NAT用インターフェースも忘れずに追加してください。


  9. 192.168.10.2→172.16.10.2のスタティックNATルールを設定します。この場合、スタティックNAT変換は、INT(vlan-in)で受信したパケットがGBLINT(vlan-out-1)側にルーティングされたときに行われます。このことが手順5に関係してきます。


  10. LAN側(vlan-in)ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスには、スイッチA自身のWAN側(vlan-out-0)インターフェースのIPアドレスを使用します。


  11. 外部からのパケットをすべて拒否するファイアウォールの基本ルールに対し、サーバーへのパケットを通すための設定を行います。ここでは、172.16.10.2(192.168.10.2)宛てのパケットを通過させます。


    なお、172.16.10.2の特定ポートだけに通信を限定させたい場合は、PROTOCOLパラメーターでプロトコルを指定し、GBLPORTパラメーターでグローバル側ポート番号を、PORTパラメーターでプライベート側ポート番号を指定します。次の例ではHTTPだけを許可しています。


    Note - これらのルールを設定しないと、ファイアウォールの基本ルールにより、172.16.10.2宛てのパケットがvlan-out-1インターフェースで破棄されてしまいます。

  12. LAN側サーバー(192.168.10.2)からのパケットが、スタティックNATインターフェース(vlan-out-1)にルーティングされるよう、ポリシーフィルター「100」を設定します。ポリシーフィルターのフィルター番号は100〜199です。


  13. ポリシーフィルター「100」をLAN側(vlan-in)インターフェースに適用します。


  14. ポリシーフィルターによって設定された経路選択ポリシーに基づいてルーティングが行われるよう、デフォルトルートの経路エントリーを追加します。


    Note - ポリシーフィルターの設定を行わないと、サーバー側から通信を開始したときにパケットがvlan-out-0に転送されるため、ダイナミックENATが適用されてしまいます。WAN側からサーバーに対して通信を開始した場合は、スタティックNATルールのとおりに変換されます。ポリシーフィルターは、サーバー側から通信を開始した場合にも、スタティックNATが有効に働くようにするためのものです。サーバー側からの通信にダイナミックENATが適用されても問題ないときは、ポリシーフィルターの設定は不要です。

    設定は以上です。


 

ダイナミックNAT

ダイナミックNATは、ルーターなどの中継ノードでIPパケットのアドレスを付け替える機能です。ダイナミックNATでは、複数のプライベートアドレスを複数のグローバルアドレスに多対多で変換します。アドレス変換時には、あらかじめプールされたグローバルアドレスの中から使用されていないものを動的に選び出します。グローバルアドレスが固定でないため、グローバル側から通信を開始することはできません。

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

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



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

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


Note - この方法(「外IP」へのスタティック経路を登録する方法)は、グローバル側からの通信開始を前提とするスタティックNATのときには使えません。スタティックNATのときは、前節のとおりマルチホーミングとポリシーフィルターを併用してください。


 

ダイナミックENAT

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

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




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


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


 

スタティックENAT

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

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


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



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

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

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


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

  1. ポート転送機能はENATを使用していることが前提となります。ここでは、PRIVATEインターフェース側の全ホストが、PUBLICインターフェースに割り当てられたグローバルアドレスを使って外部と通信できるように設定します。


  2. ポート転送のためのルールを追加します。


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


■ 同じWell-knownポートを使うサーバーを複数公開したい場合、外部からのアクセスはいくらか変則的になりますが、GBLPORTをサーバーごとに変えることで可能となります。ここでは、内部に192.168.10.5、192.168.10.10の2つのWebサーバーがあるものとします。次の例では、外部から172.16.10.1の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ルーターA(192.168.10.5)が、外部のIPv6ルーターB(10.12.34.56)との間にトンネルを張り、内部ネットワークをIPv6ネットワークに接続しています。


インターネット上にトンネルを張るには、トンネルの両エンドに互いに到達可能なグローバルアドレスが必要ですが、この環境ではルーターAにはグローバルアドレスがありません。そこで、プロトコル転送機能を利用して、スイッチの外部インターフェース(172.16.10.1)宛てに届いたIPv6-over-IPv4トンネリングパケット(IPプロトコル41)を、内部ネットワークのIPv6ルーターAに転送する設定を行います。これにより、ルーターBからはスイッチの外部インターフェースが、内部に存在するルーターAのインターフェースに見えます。


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


■ スタティックENATの設定におけるパラメーターの指定方法をまとめます

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



 

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

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

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


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


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

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


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


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


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



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


 

ルールの時間制限

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

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


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



 

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

■ ファイアウォールポリシーに設定されたルールの内容を確認するには、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インターフェースに適用されたルールでハードウェア(MACアドレス)リストが指定されている場合、新規フローの送信元MACアドレスに一致するアドレスがリストに記載されているかどうかをチェックします。一致するアドレスがなかった場合はデフォルトの動作を実行します。

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

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


 

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

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

 

ログ

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

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


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

表 9:ファイアウォールのログオプション一覧
オプション名
対象パケット
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種類があります。上記コマンドを実行すると、すべてのイベントが表示されます。


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



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

表 10:攻撃一覧
攻撃名称
説明
DoS Flood 不要なトラフィックで帯域を占有し、ネットワークサービスを妨害する
Fragment Attack 巨大なフラグメントや再構成できないフラグメントを送りつける
Host Scan 内部ネットワークで稼動中のホストを調べる
IP Spoofing 送信元IPアドレスを詐称する
Land Attack 始点と終点に同じアドレスを設定したIPパケットによるDOS攻撃。システムのバグを狙う
Ping of Death システムのバグをつくもので、特定サイズのPINGパケットを送りつけることによりシステムをクラッシュさせる
Port Scan ホスト上で稼動中のサービスを調べる
Smurf Attack 始点アドレスを詐称(標的のアドレスを設定する)したPINGパケットを中継サイトのディレクディドブロードキャストアドレスに送り、中継サイトから標的サイトに大量のリプライを送りつけさせる
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)があります。

■ デバッグオプション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(上図の太字の部分)を確認してから、次のコマンドを実行します。



 

その他設定

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

■ 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パケットに対する細かい制御が可能です。外部(vlan-out)からのみPINGを拒否するには、次のようなフィルターを設定します。ソフトウェアIPフィルターの詳細については、「IP」の章をご覧ください。



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



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



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


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



 

設定例

次に、独自ルールを追加した、より実際的な設定例を示します。ここでは、次のようなネットワーク構成を例に説明します。


ここでは、次のようなセキュリティーポリシーを持つファイアウォールを設定します。



スイッチAの設定
  1. VLANの設定を行います。


  2. IPモジュールを有効にします。


  3. VLANインターフェースにIPアドレスを設定します。


  4. デフォルトルートを設定します。


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


  6. ファイアウォールポリシーを作成します。


  7. ファイアウォールで拒否したパケットをログに記録するよう設定します。


  8. identプロキシー機能を無効にし、外部からのident要求に対してただちにRSTを返すようにします。


  9. ファイアウォールポリシーの適用対象となるインターフェースを指定します。

  10. 以下、ポリシーの詳細設定を行います。

  11. 不正行為を受けたときは、SNMPトラップで通知するよう設定します。SMTPコミュニティー名は大文字小文字を区別するので注意してください。


設定は以上です。








Copyright (C) 2000-2002 アライドテレシス株式会社

PN: J613-M0522-00 Rev.C