[index] CentreCOM AR100 シリーズ コマンドリファレンス 2.3

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

対象機種:AR130、AR160


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


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

 

IPフィルターとの比較

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

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

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

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

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

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

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

また、ファイアウォールにはNAT(Network Address Translation)の機能も統合されており、グローバルアドレスを1つしか割り当てられない端末型インターネット接続の環境においても、複数のホストがインターネットにアクセスできるよう設定できます。

さらに、ファイアウォールには、拒否・許可したパケットのログを記録する機能もあります。

なお、ファイアウォールと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を除く)、予期せぬ発呼や情報の漏洩を防ぐため、不要なトラフィックを遮断することができます。

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


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

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


このコマンドは、「eth0インターフェースで受信した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からのパケットを破棄するよう設定しています。


このコマンドは、「eth0インターフェースで受信した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の転送を有効にするには、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に書き換えた上で通過させる」の意味になります。

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

表 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の種類ごとに例を挙げながら説明します。

 

スタティックNAT

スタティックNAT(Network Address Translation)は、ルーターなどの中継ノードでIPパケットのアドレスを付け替える機能です。スタティックNATでは、プライベートアドレスをグローバルアドレスに1対1で固定的に変換します。プライベートアドレスで運用しているサーバーを、ファイアウォールの外からはグローバルアドレスを持っているかのように見せかけることができます。

スタティックNATの設定は、グローバル側インターフェースがPPPであるかEthernetであるかによって異なります。以下、それぞれのケースについてスタティックNATの設定方法をまとめます。

ここでは、次のようなネットワーク構成を仮定します。


ADD FIREWALL POLICY NATコマンドでスタティックNATルールの設定を行い、ADD FIREWALL POLICY RULEコマンドでサーバーへのパケットを通過させるルールを追加します。
  1. 192.168.10.5→1.1.1.5のスタティックNATルールを設定します。スタティックNAT変換は、INT(eth0)で受信したIPパケットがGBLINT(ppp0)側にルーティングされたときに行われます。


  2. 1.1.1.5(192.168.10.5)宛てのパケットを通過させるルールを追加します。


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


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

 

ダイナミックENAT

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

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


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

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


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

 

スタティックENAT(ポート/プロトコル転送)

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

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


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

  1. スタティックENATは、ダイナミックENATを使用していることが前提となります。ここでは、LAN(eth0)側の全ホストが、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の指定も必要です。ALLを指定した場合はICMPを除くすべてのIPパケットが対象となります。また、プロトコル番号による指定も可能です。
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を指定した場合のみ有効。省略時はすべての始点ポートが対象となります。


 

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

■ ファイアウォールポリシーに設定されたルールの内容を確認するには、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)になります。

 

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

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

 

ログ

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

■ ファイアウォールで拒否されたパケットのログをとるには、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 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パケットに対する細かい制御が可能です。外部(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というユーザー名を返答します。

 

設定例

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


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


ルーターの設定
  1. 専用線接続の設定を行います。


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


  3. 各インターフェースにIPアドレスを設定します。WAN側がUnnumberedであるため、LAN側(eth0)をマルチホーミングして、同一セグメント上にグローバルIPのサブネット(4.4.4.0/29)とプライベートIPのサブネット(192.168.1.0/24)を作成しています。


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


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


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


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


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


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

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

設定は以上です。















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

PN: J613-M2973-02 Rev.D