[index] CentreCOM 8700SLシリーズ コマンドリファレンス 2.9

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

備考：フィーチャーライセンス AT-FL-02 が必要

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

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

> Note - ファイアウォールを使用するにはフィーチャーライセンスAT-FL-02が必要です。

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

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

基本設定

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

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

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

   `CREATE FIREWALL POLICY=mynet ↓`
3. ファイアウォールポリシーの適用対象となるIPインターフェースを指定します。内部側（vlan-in）をPRIVATE、外部側（vlan-out）をPUBLICに設定します。

   `ADD FIREWALL POLICY=mynet INT=vlan-in TYPE=PRIVATE ↓
   ADD FIREWALL POLICY=mynet INT=vlan-out TYPE=PUBLIC ↓
   `

基本設定は以上です。
これにより、手順3で指定したインターフェース間のトラフィックに基本的なルールが適用され、外部（PUBLIC）から内部（PRIVATE）にはパケットが転送されなくなります。一方、内部から外部への通信は自由に行うことができます。ステートフルインスペクションにより、内部から通信を開始したときにはその状態が記憶されるため、戻りのパケットを通すために特別な設定をする必要はありません。
本製品では、上記の基本設定に独自のルールを追加することで、内部と外部のインターフェース間のやりとりを制御します。
■ 上記の基本設定だけでも十分実用的な運用が可能ですが、下記の設定を追加することにより、さらに快適に使用することができます。ここでは例だけを示します。詳細は他のセクションをご覧ください。

- ICMPパケットがファイアウォールを通過できるようにします。基本ルールでは、ICMPパケットはどちらの方向にもまったく転送されません（内部からのPingも通らないので注意してください）。

  `ENABLE FIREWALL POLICY=mynet ICMP_F=PING,UNREACH ↓`
- Identプロキシー機能をオフにして、外部メールサーバーなどとの通信がすばやく行われるようにします。

  `DISABLE FIREWALL POLICY=mynet IDENTPROXY ↓`
- 拒否したパケットのログをとりたい場合は、次のコマンドを実行します。

  `ENABLE FIREWALL POLICY=mynet LOG=DENY ↓`
- PUBLIC側をグローバルアドレス、PRIVATE側をプライベートアドレスで運用している場合は、ダイナミックENATを使うことによりPRIVATE側からPUBLIC側への通信が可能になります。

  `ADD FIREWALL POLICY=mynet NAT=ENHANCED INT=vlan-in GBLINT=vlan-out ↓`

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

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

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

- PRIVATE（内部）インターフェース：ファイアウォールで保護すべき内部ネットワーク側インターフェース。TYPE=PRIVATEでポリシーに追加されたインターフェースのこと
- PUBLIC（外部）インターフェース：ファイアウォールの外側に位置するインターフェース。TYPE=PUBLICでポリシーに追加されたインターフェースのこと
- その他のインターフェース：ファイアウォールの管理対象でないインターフェース

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

表 1：インターフェース間の通信可否（ICMPを除く）
送信元→宛先 | PRIVATE | PUBLIC | その他
PRIVATE | ○ | ○ | ×
PUBLIC | × | ○ | ○
その他 | × | ○ | ○

PRIVATE側からPUBLIC側へは通信を開始できますが、PRIVATE以外のインターフェース（PUBLIC、その他）からPRIVATE側への通信はすべて遮断します。これが基本ルールです。
ファイアウォールの動作をさらに細かく制御したい場合は、ADD FIREWALL POLICY RULEコマンドでPRIVATEかPUBLICインターフェースに独自ルールを追加します。独自ルールには次の種類があります。

- 拒否ルール：基本ルールでは素通しされるトラフィックを遮断する。通常PRIVATEインターフェースに設定する。
- 許可ルール：基本ルールでは遮断されるトラフィックを通過させる。通常PUBLICインターフェースに設定する。
- NATルール：ルールNATの変換ルールを定義する。
- NONATルール：（本来ならNATされるトラフィックに）NATを適用せず、そのまま転送する。

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

#### ICMPパケットの扱い

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

表 2：ICMPの通信可否（転送オフ時）
送信元→宛先 | PRIVATE | PUBLIC | その他
PRIVATE | ○ | × | ×
PUBLIC | × | ○ | ○
その他 | × | ○ | ○

> Note - ICMP転送オフ時、独自ルールでPROTOCOL=ALLを指定しても、ICMPは対象になりません。

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

表 3：ICMPの通信可否（転送オン時）
送信元→宛先 | PRIVATE | PUBLIC | その他
PRIVATE | ○ | ○ | ×
PUBLIC | ○ | ○ | ○
その他 | × | ○ | ○

> Note - ICMP転送オン時、拒否・許可ルールでPROTOCOL=ALLを指定しても、ICMPは対象になりません。NAT・NONATルールでPROTOCOL=ALLを指定した場合は、ICMPも対象になります。

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

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

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

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

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

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

ルールの追加

前記の基本設定に独自ルールを追加するには、ADD FIREWALL POLICY RULEコマンドを使います。

ルール設定時の注意事項

■ ルールを追加するときは、RULEパラメーターで指定するルール番号が重ならないようにしてください。また、ルールのチェックは番号の小さい順に行われ、最初にマッチしたものが適用されるため、ルールの順序にも留意してください。
■ ルールの設定にあたっては、ルール（ルール番号）が下記の順序になるようにしてください。異なる順序で設定した場合、ルールが正しく機能しないことがあります。

1. 許可・拒否ルール（ACTION=ALLOWとACTION=DENY）
2. アクセスリストを使用したルール
3. NAT・NONATルール（ACTION=NATとACTION=NONAT）

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

トラフィックを制限する

デフォルトでは内部から外部へのパケットをすべて通しますが（ICMPを除く）、予期せぬ発呼や情報の漏洩を防ぐため、不要なトラフィックを遮断することができます。
■ 次の例では、内部（vlan-in）からのMS-Networksパケット（Windowsネットワークなどで使用されるパケット）を遮断しています。ファイアウォールの基本ルールにより、その他のパケットはこれまでどおり通過が許可されます。

`ADD FIREWALL POLICY=mynet RULE=1 AC=DENY INT=vlan-in PROT=TCP PORT=135 ↓
ADD FIREWALL POLICY=mynet RULE=2 AC=DENY INT=vlan-in PROT=UDP PORT=135 ↓
ADD FIREWALL POLICY=mynet RULE=3 AC=DENY INT=vlan-in PROT=TCP PORT=137-139 ↓
ADD FIREWALL POLICY=mynet RULE=4 AC=DENY INT=vlan-in PROT=UDP PORT=137-139 ↓
ADD FIREWALL POLICY=mynet RULE=5 AC=DENY INT=vlan-in PROT=TCP PORT=445 ↓
`

5つのコマンドは、「vlan-inのインターフェースで受信したTCP、UDPパケットのうち、終点ポート番号が135、137〜139のもの、および、TCPパケットのうち終点ポート番号が445番のものを破棄する」の意味になります。
■ 特定アドレスへのアクセスを禁止することもできます。この場合はREMOTEIPパラメーターで終点IPアドレスを指定します。IPアドレスは範囲で指定することも可能です。次の例では、内部から10.1.1.0〜10.1.1.255の範囲へのアクセスを禁止しています。

`ADD FIREWALL POLICY=mynet RULE=1 AC=DENY INT=vlan-in PROT=ALL REMOTEIP=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からのパケットを破棄するよう設定しています。

`ADD FIREWALL POLICY=mynet RULE=1 AC=DENY INT=vlan-in PROT=ALL 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へのアクセスを許可しています。ファイアウォールの基本ルールにより、その他のホストに対するアクセスはこれまでどおり拒否されます。

`ADD FIREWALL POLICY=mynet RULE=1 AC=ALLOW INT=vlan-out PROT=ALL IP=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番）へのアクセスのみを許可しています。ファイアウォールの基本ルールにより、その他のアドレス・ポートへのアクセスはこれまでどおり拒否されます。

`ADD FIREWALL POLICY=mynet RULE=1 AC=ALLOW INT=vlan-out PROT=TCP IP=172.16.10.5 PORT=80 ↓`

このコマンドは、「vlan-outのインターフェースで受信したTCPパケットのうち、終点IPアドレスが172.16.10.5で、終点ポートが80のものを通過させる」の意味になります。
■ 特定ホストからのみアクセスを許可する設定も可能です。これにはREMOTEIPパラメーターを使用します。次の例では、外部のホスト10.10.10.1からのみ内部（PRIVATE側）へのアクセスを許可しています。ファイアウォールの基本ルールにより、その他のホストからのアクセスはこれまでどおり拒否されます。

`ADD FIREWALL POLICY=mynet RULE=1 AC=ALLOW INT=vlan-out PROT=ALL REMOTEIP=10.10.10.1 ↓`

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

`ADD FIREWALL POLICY=mynet RULE=1 AC=ALLOW INT=vlan-out PROT=ALL GBLIP=172.16.10.2 IP=192.168.10.2 ↓
`

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

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

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

`ADD FIREWALL POLICY=mynet RULE=1 AC=ALLOW INT=vlan-out PROT=TCP GBLIP=172.16.10.2 GBLPORT=80 IP=192.168.10.2 PORT=80 ↓
`

このコマンドは、「vlan-outインターフェースで受信した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と、アドレス単位で指定するルールNATの2種類のNAT機能が実装されています。
ルールNATでは、インターフェースNATよりも細かい制御が可能ですが、その分設定も複雑になります。よほど特殊な設定をしたいとき以外はインターフェースNATを使うようにしてください。また、両者は併用可能ですが、設定の見通しが悪くなりがちなので、通常はどちらか一方だけを使うようにしてください。

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

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

- スタティックNAT
- ダイナミックNAT
- ダイナミックENAT
- スタティックENAT

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

#### スタティックNAT

スタティックNATは、ルーターなどの中継ノードでIPパケットのアドレスを付け替える機能です。スタティックNATでは、プライベートアドレスをグローバルアドレスに1対1で固定的に変換します。
アドレスが固定なので、プライベート側、グローバル側のどちらからでも通信を開始できます（ただし、グローバル側から通信を開始できるようにするには、明示的な許可ルールの設定が必要です）。プライベートアドレスで運用しているサーバーを、ファイアウォールの外からはグローバルアドレスを持っているかのように見せかけることができます。
■ スタティックNATの設定に使うパラメーターは次のとおりです。ここで「内IF」はPRIVATEインターフェース、「外IF」はPUBLICインターフェース、「内IP」はNAT前のプライベートアドレス、「外IP」はNAT後のグローバルアドレスを示します。

`ADD FIREWALL POLICY=net NAT=STANDARD INT=内IF GBLINT=外IF IP=内IP GBLIP=外IP ↓
`

- パケットを「内IF」から「外IF」に転送したとき、始点IPアドレスが「内IP」であれば「外IP」に書き換えます。
- パケットを「外IF」で受信したとき、終点IPアドレスが「外IP」であれば「内IP」に書き換えます。

> Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。この例では、「外IP」に対するARP requestを受信すると、「外IF」が自身のMACアドレスで応答します。

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

`ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=外IF PROT=プロトコル IP=内IP GBLIP=外IP ↓
`

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

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

- ISPからアドレスブロック172.16.10.0/29（172.16.10.0〜172.16.10.7）を固定的に割り当てられています。アドレスは8個ですが、172.16.10.0（ネットワークアドレス）と172.16.10.7（ブロードキャストアドレス）は使用できないため、端末に設定できるアドレスは172.16.10.1〜172.16.10.6の6個となります。このうち、172.16.10.6はすでにルーターのLAN側（内側）インターフェースに割り当てられています。

  > Note - これらのアドレスは実際にはプライベートアドレスですが、ここではグローバルアドレスであると仮定しています。

- ISPとはルーターによって接続されています。ルーターではアドレス変換やパケットフィルタリングを行わず、同ルーターのLAN側セグメントに接続したスイッチA（本製品）でファイアウォールを動作させ、ここでアクセス制御を行うものとします。
- スイッチAのWAN側（vlan-out）インターフェースには172.16.10.1を割り当てます。これで残るアドレスは172.16.10.2〜172.16.10.5の4個となります。これらのアドレスはサーバー用に使いますが、直接サーバーに割り当てることはせずに、スタティックNATを介して使用します。
- スイッチAのLAN側（vlan-in）インターフェースにはプライベートアドレス192.168.10.1を割り当て、クライアントはすべてプライベートアドレスで運用します。
- サーバーにもプライベートアドレスを設定し、スイッチAのLAN側セグメントに配置します。サーバーはルーター・スイッチAのあるセグメントに置くこともできますが、ファイアウォールで保護したいため、スイッチAの内側に配置しています。また、外部からアクセスさせるため、スタティックNATを使って外からはグローバルアドレスを持っているように見せかけます。変換ルールは次のとおりとします。
  - サーバー：192.168.10.2 → 172.16.10.2
- スイッチAのファイアウォールを利用して、外部からの不正アクセスを遮断しつつ、内部からは自由にインターネットへのアクセスができるようにします。
- ファイアウォールのダイナミックENAT機能を使用して、LAN側ネットワークのプライベートIPアドレスを、ISPから与えられたグローバルIPアドレスのうちの1つに変換します。これにより、LANに接続された複数のコンピューターからインターネットへの同時アクセスが可能になります。

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

1. VLANを作成します。

   `CREATE VLAN=out VID=10 ↓
   CREATE VLAN=in VID=20 ↓
   ADD VLAN=out PORT=1 ↓
   ADD VLAN=in PORT=2-12 ↓
   `
2. IPモジュールを有効にします。

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

   `ADD IP INT=vlan-in IP=192.168.10.1 MASK=255.255.255.0 ↓`
4. WAN側インターフェース（vlan-out）にISPから割り当てられたグローバルアドレスのうちの1つを設定します。

   `ADD IP INT=vlan-out IP=172.16.10.1 MASK=255.255.255.248 ↓`
5. デフォルトルートを設定します。

   `ADD IP ROUTE=0.0.0.0 INT=vlan-out NEXT=172.16.10.6 ↓`
6. ファイアウォールポリシーを作成し、基本設定を行います。

   `ENABLE FIREWALL ↓
   CREATE FIREWALL POLICY=net ↓
   ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH ↓
   DISABLE FIREWALL POLICY=net IDENTPROXY ↓
   `
7. ファイアウォールポリシーの適用対象となるインターフェースを指定します。
   - LAN側（vlan-in）インターフェースをPRIVATE（内部）に設定します。

     `ADD FIREWALL POLICY=net INT=vlan-in TYPE=PRIVATE ↓`
   - WAN側（vlan-out）インターフェースをPUBLIC（外部）に設定します。

     `ADD FIREWALL POLICY=net INT=vlan-out TYPE=PUBLIC ↓`
8. 192.168.10.2→172.16.10.2のスタティックNATルールを設定します。この場合、スタティックNAT変換は、INT（vlan-in）で受信したパケットがGBLINT（vlan-out）側にルーティングされたときに行われます。

   `ADD FIREWALL POLICY=net NAT=STANDARD INT=vlan-in IP=192.168.10.2 GBLINT=vlan-out GBLIP=172.16.10.2 ↓`

   > Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。この例では、172.16.10.2に対するARP requestを受信すると、vlan-outが自身のMACアドレスで応答します。

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

   `ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan-in GBLINT=vlan-out ↓`
10. 外部からのパケットをすべて拒否するファイアウォールの基本ルールに対し、サーバーへのパケットを通すための設定を行います。ここでは、172.16.10.2（192.168.10.2）宛てのパケットを通過させます。

    `ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=vlan-out PROT=ALL GBLIP=172.16.10.2 IP=192.168.10.2 ↓`
    なお、172.16.10.2の特定ポートだけに通信を限定させたい場合は、PROTOCOLパラメーターでプロトコルを指定し、GBLPORTパラメーターでグローバル側ポート番号を、PORTパラメーターでプライベート側ポート番号を指定します。次の例ではHTTPだけを許可しています。

    `ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=vlan-out PROT=TCP GBLIP=172.16.10.2 GBLPO=HTTP IP=192.168.10.2 PO=HTTP ↓`

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

    設定は以上です。

#### ダイナミックNAT

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

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

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

`ADD FIREWALL POLICY=net NAT=STANDARD INT=内IF GBLINT=外IF GBLIP=外IP範囲
`

- パケットを「内IF」から「外IF」に転送したとき、始点IPアドレスを「外IP範囲」内の空いているアドレスに書き換えます。また、変換前後のアドレスの組み合わせ（内IP・外IP）をテーブルに登録します。
- パケットを「外IF」で受信したとき、終点IPアドレスが「外IP範囲」内であれば、テーブルを検索し、終点IPアドレスを「内IP」に書き換えます。

> Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。この例では、「外IP範囲」に対するARP requestを受信すると、「外IF」が自身のMACアドレスで応答します。

#### ダイナミックENAT

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

`ADD FIREWALL POLICY=net NAT=ENHANCED INT=内IF GBLINT=外IF
`

- パケットを「内IF」から「外IF」に転送したとき、始点IPアドレスを「外IF」のアドレスに、始点ポートを未使用のポート番号に書き換えます。また、変換前後のアドレス・ポートの組み合わせ（内IP・内ポート・外IP・外ポート）をテーブルに登録します。
- パケットを「外IF」で受信したとき、終点IPアドレスが「外IF」のアドレスであれば、終点ポートをキーにテーブルを検索し、終点IPアドレスを「内IP」に、終点ポートを「内ポート」に書き換えます。

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

`ADD FIREWALL POLICY=mynet NAT=ENHANCED INT=vlan-in GBLINT=vlan-out ↓`

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

#### スタティックENAT

1個のグローバルアドレスをENATで共有している場合は、スタティックENAT（ポート/プロトコル転送）機能を用いることにより、外部インターフェースの特定ポート宛てに送られたパケットを、内部ホストの特定ポートに転送することができます。この機能を利用すると、グローバルアドレスが1つしかない環境でも、複数のサーバーを外部に公開することができます。
■ スタティックENATは単独では使用できません。必ず最初にダイナミックENATの設定をする必要があります。前節の説明の繰り返しになりますが、再度ダイナミックENATの設定に必要なパラメーターを挙げます。

`ADD FIREWALL POLICY=net NAT=ENHANCED INT=内IF GBLINT=外IF ↓
`

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

`ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=外IF PROT=プロトコル GBLIP=外IP GBLPORT=外ポート IP=内IP PORT=内ポート ↓
`

- パケットを「外IF」で受信したとき、プロトコルが「プロトコル」で、終点IPアドレスが「外IP」、終点ポートが「外ポート」であれば、それぞれ「内IP」「内ポート」に書き換えます。

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

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

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

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

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

   `ADD FIREWALL POLICY=mynet NAT=ENHANCED INT=vlan-in GBLINT=vlan-out ↓`
2. ポート転送のためのルールを追加します。

   `ADD FIRE POLI=mynet RU=1 AC=ALLOW INT=vlan-out PROT=TCP GBLIP=172.16.10.1 GBLPO=80 IP=192.168.10.5 PORT=80 ↓`
   このコマンドは、「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サービスに転送します。

`ADD FIRE POLI=mynet RU=1 AC=ALLOW INT=vlan-out PROT=TCP GBLIP=172.16.10.1 GBLPO=80 IP=192.168.10.5 PORT=80 ↓
ADD FIRE POLI=mynet RU=2 AC=ALLOW INT=vlan-out PROT=TCP GBLIP=172.16.10.1 GBLPO=8080 IP=192.168.10.10 PORT=80 ↓
`

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

`http://172.16.10.1:8080/ ... （実際は192.168.10.10のWebサーバーにアクセスすることになる）`

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

`http://172.16.10.1/ ... （実際は192.168.10.5のWebサーバーにアクセスすることになる）`

■ 少し特殊なケースですが、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のインターフェースに見えます。

`ADD FIRE POLI=mynet RU=1 AC=ALLOW INT=vlan-out PROTO=41 REMOTEIP=10.12.34.56 GBLIP=172.16.10.1 IP=192.168.10.5 ↓`

このコマンドは、「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を指定した場合のみ有効。省略時はすべての始点ポートが対象となります。

ルールNAT

ルールNATは、アドレスベースのNAT機能です。ADD FIREWALL POLICY RULEコマンドのACTIONにNATを指定することによって設定を行います。
ルールNATでは、インターフェースNATより細かい制御が可能ですが、その分設定も複雑になります。通常は従来からあるインターフェースNATをご使用ください。ルールNATは、インターフェースNATで対応できない特殊な設定を行いたい場合にのみ使用してください。

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

ルールNATには、次のようなアドレス変換パターンがあります。また、「エンハンストNAT」以外は、IPアドレスのサブネット部だけを変換する「サブネットNAT」も可能です。

- スタンダードNAT：PRIVATE → PUBLICの始点アドレス、PUBLIC → PRIVATE の終点アドレスを一対一で変換する。
- エンハンストNAT：複数の始点IPアドレスを1個の共用アドレス＋個別のポート番号に変換する。
- リバースNAT：PUBLIC → PRIVATEのパケットの始点アドレスを変換する。また、PRIVATE → PUBLICのパケットの終点アドレスを変換する。
- ダブルNAT：始点、終点の両方を変換する。

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

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

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

#### スタンダードNAT

スタンダードNAT（NATTYPE=STANDARD）は、IPアドレスを一対一で静的に変換するもっとも一般的なNATです。
PRIVATE側のホストがPUBLIC側にあるように見せかけたい場合、PUBLICインターフェースに次のようなスタンダードNATルールを適用します。

- PROTOCOLはALL
- アドレス変換は GBLIP（グローバル） → IP（プライベート）

> Note - ルールNATの設定では、ICMP転送がオンかオフかによってPROTOCOL=ALLの意味が異なります。ICMP転送がオンのとき、PROTOCOL=ALLはICMPを含みます。ICMP転送がオフのとき、PROTOCOL=ALLはICMPを含みません。これはNONATルールも同様です。許可ルール、拒否ルールの場合は、ICMP転送のオン・オフにかかわらず、PROTOCOL=ALLはICMPを含みません。

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

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=STANDARD INT=vlan-out PROT=ALL GBLIP=1.1.1.100 IP=192.168.10.100 ↓`

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

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=STANDARD INT=vlan-out PROT=TCP GBLIP=1.1.1.100 GBLPO=23 IP=192.168.10.100 PO=23 ↓`

> Note - NAT用のIPアドレスとして、実インターフェースに割り当てられていないIPアドレスを指定した場合、本製品はNAT用IPアドレスへのARP Requestに自動的に応答します。この例では、1.1.1.100に対するARP requestを受信すると、vlan-outが自身のMACアドレスで応答します。

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

- PUBLICインターフェースにルールを適用した場合は、外→内のパケットの終点アドレスがGBLIPと一致する場合に、終点アドレスがIPに書き換えられます。
- PRIVATEインターフェースにルールを適用した場合は、内→外のパケットの始点アドレスがIPと一致する場合に、始点アドレスがGBLIPに書き換えられます。

上記の設定例は、PUBLIC側から通信が開始されることを前提とし、外→内のパケットとその戻りについてのみ上記ルールを適用します。PRIVATE側のホストが単独で通信を開始した場合は上記ルールは適用されません。
■ 完全に双方向の変換を行いときは、PRIVATEインターフェースにもNATルールを追加してください。

`ADD FIREWALL POLICY=net RULE=2 AC=NAT NATTYPE=STANDARD INT=vlan-in PROT=ALL IP=192.168.10.100 GBLIP=1.1.1.100 ↓`

■ サブネット単位でスタンダード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）を一対一で変換するには、次のようにします。

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=STANDARD INT=vlan-in PROT=ALL IP=192.168.10.16 GBLIP=1.1.1.16 NATMASK=255.255.255.240 ↓`

#### エンハンストNAT

エンハンストNAT（NATTYPE=ENHANCED）は、指定したインターフェースで受信したパケットの始点IPアドレスを別の1個のIPアドレスに変換するNATです。送信元の識別は、変換後に異なる始点ポート番号を使うことによって実現します。
■ vlan-inで受信したパケットの始点アドレスを1.1.1.10に書き換えるには次のようにします。始点ポート番号はセッションごとに自動的に割り当てられます。

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=ENHANCED INT=vlan-in PROT=ALL GBLIP=1.1.1.10 ↓`

■ vlan-outで受信したパケット（外→内）の始点アドレスを192.168.10.200に書き換えます。

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=ENHANCED INT=vlan-out PROT=ALL REMOTEIP=192.168.10.200 ↓`

#### リバースNAT

リバースNAT（NATTYPE=REVERSE）は終点アドレスを書き換えます。一般的に認知されているNATではなく、パケットを特定のホストにリダイレクトする機能です。
■ vlan-inで受信したパケットの終点が1.1.1.126の場合、これを1.1.1.10に強制的に書き換えます。

`ADD FIREWALL POLICY=net RULE=1 AC=NAT NATTYPE=REVERSE INT=vlan-in REMOTEIP=1.1.1.126 GBLREMOTEIP=1.1.1.10 PROT=ALL ↓`

#### ダブルNAT

ダブルNAT（NATTYPE=DOUBLE）は始点・終点の両方を書き換えます。
■ 始点192.168.10.100を1.1.1.100に書き換え、終点を1.1.1.10に書き換えます。

`ADD FIRE POLI=net RU=1 AC=NAT NATT=DOUBLE INT=vlan-in IP=192.168.10.100 GBLIP=1.1.1.100 PROT=ALL GBLREM=1.1.1.10 ↓`

#### ルールNATのまとめ

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

- 「向き」欄の「I/F種別」は、ルールを適用するインターフェースがPRIVATE側であるか、PUBLIC側であるかを示しています。
- 「プライベート側」「グローバル側」欄に書かれているのは、IPパケットの始点・終点アドレスです。「A → B」と書いた場合、「A」が始点、「B」が終点アドレスを示します。
- 「IP」「GBLIP」「REMOTEIP」「GBLREMOTEIP」「NATMASK」は、ADD FIREWALL POLICY RULEコマンドのパラメーターです。スクエアブラケット（[ ]）で囲まれているパラメーターは省略可能です。また、パラメーター名の後の「*」は、アドレスの範囲指定が可能なことを示しています。「*」の付いていないパラメーターには、単一アドレスを指定しなくてはなりません。
- 「A/B」という表現は、「A」と「B」をビットごとにAND演算した結果を示します。「A」はIPアドレス、「B」はネットマスクです。
- 「備考」欄の「Src」「Dst」は、それぞれIPパケットの始点アドレス、終点アドレスを示しています。また、「=」は左辺と右辺が等しいことを示します。
- 「備考」欄では、パケットが変換されるための条件と、どのような変換が行われるかを文章で説明しています。なお、（省略可能な）条件パラメーターを省略した場合、そのパラメーターの値はANY（すべてにマッチ）となります。
- 「備考」欄における「X/NATMASK = Y/NATMASK」という表現は、IPアドレス「X」がCIDR表記「Y/NATMASK」で表されるIPアドレス範囲に収まっている、という意味になります。

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

表 9
NAT種別 | 向き（I/F種別） | プライベート側 | グローバル側 | 備考
スタンダード | 内 → 外（PRIVATE） | IP → [REMOTEIP*] | GBLIP → [REMOTEIP*] | Src = IP, Dst = REMOTEIP のとき、Src を IP から GBLIP に変換する。GBLREMOTEIPは使用不可
内 ← 外（PUBLIC） | IP ← [REMOTEIP*] | GBLIP ← [REMOTEIP*] | Src = REMOTEIP, Dst = GBLIP のとき、Dst を GBLIP から IP に変換する。GBLREMOTEIPは使用不可
スタンダード・サブネット | 内 → 外（PRIVATE） | IP/NATMASK → [REMOTEIP*] | GBLIP/NATMASK → [REMOTEIP*] | Src/NATMASK = IP/NATMASK, Dst = REMOTEIP のとき、Src のサブネット部だけを IP/NATMASK から GBLIP/NATMASK に変換する。GBLREMOTEIPは使用不可
内 ← 外（PUBLIC） | IP/NATMASK ← [REMOTEIP*] | GBLIP/NATMASK ← [REMOTEIP*] | Src = REMOTEIP, Dst/NATMASK = GBLIP/NATMASK のとき、Dst のサブネット部だけを GBLIP/NATMASK から IP/NATMASK に変換する。GBLREMOTEIPは使用不可
エンハンスト | 内 → 外（PRIVATE） | [IP*] → [REMOTEIP*] | GBLIP → [REMOTEIP*] | Src = IP, Dst = REMOTEIP のとき、Src を IP から GBLIP に変換（ポートも変換）する。GBLREMOTEIPは使用不可
内 ← 外（PUBLIC） | [IP*] ← REMOTEIP | [IP*] ← [GBLREMOTEIP*] | Src = GBLREMOTEIP, Dst = IP のとき、Src を GBLREMOTEIP から REMOTEIP に変換する（ポートも変換）する。GBLIPは使用不可
リバース | 内 → 外（PRIVATE） | [IP] → [REMOTEIP*] | [IP] → GBLREMOTEIP | Src = IP, Dst = REMOTEIP のとき、Dst を REMOTEIP から GBLREMOTEIP に変換する。GBLIPは使用不可
内 ← 外（PUBLIC） | [IP] ← REMOTEIP | [IP] ← GBLREMOTEIP | Src = GBLREMOTEIP, Dst = IP のとき、Src を GBLREMOTEIP から REMOTEIP に変換する。GBLIPは使用不可
リバース・サブネット | 内 → 外（PRIVATE） | [IP] → REMOTEIP/NATMASK | [IP] → GBLREMOTEIP/NATMASK | Src = IP, Dst/NATMASK = REMOTEIP/NATMASK のとき、Dst のサブネット部だけを REMOTEIP/NATMASK から GBLREMOTEIP/NATMASK に変換する。GBLIPは使用不可
内 ← 外（PUBLIC） | [IP] ← REMOTEIP/NATMASK | [IP] ← GBLREMOTEIP/NATMASK | Src/NATMASK = GBLREMOTEIP/NATMASK, Dst = IP のとき、Src のサブネット部だけを GBLREMOTEIP/NATMASK から REMOTEIP/NATMASK に変換する。GBLIPは使用不可
ダブル | 内 → 外（PRIVATE） | IP → REMOTEIP* | GBLIP → GBLREMOTEIP | Src = IP, Dst = REMOTEIP のとき、Src を IP から GBLIP に、Dst を REMOTEIP から GBLREMOTEIP に変換する
内 ← 外（PUBLIC） | IP ← REMOTEIP | GBLIP ← GBLREMOTEIP | Src = GBLREMOTEIP, Dst = GBLIP のとき、Src を GBLREMOTEIP から REMOTEIP に、Dst を GBLIP から IP に変換する
ダブル・サブネット | 内 → 外（PRIVATE） | IP/NATMASK → REMOTEIP/NATMASK | GBLIP/NATMASK → GBLREMOTEIP/NATMASK | Src/NATMASK = IP/NATMASK, Dst/NATMASK = REMOTEIP/NATMASK のとき、Src のサブネット部だけを IP/NATMASK から GBLIP/NATMASK に、Dst のサブネット部だけを REMOTEIP/NATMASK から GBLREMOTEIP/NATMASK に変換する
内 ← 外（PUBLIC） | IP/NATMASK ← REMOTEIP/NATMASK | GBLIP/NATMASK ← GBLREMOTEIP/NATMASK | Src/NATMASK = GBLREMOTEIP/NATMASK, Dst/NATMASK = GBLIP/NATMASK のとき、Src のサブネット部だけを GBLREMOTEIP/NATMASK から REMOTEIP/NATMASK に、Dst のサブネット部だけを GBLIP/NATMASK から IP/NATMASK に変換する

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

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

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

       # Access-list "denylist.txt"
       # HOST or NETWORK             NICKNAME
       10.30.1.23
       172.25.150.150                henna-server
       172.30.100.0 - 172.30.100.255 henna-network # comment

   リストファイルには、一行に一個アドレスを書きます。アドレスには次の2 つの形式があります。
   - 単一アドレス（例：192.168.1.5）
   - アドレス範囲（例：192.168.1.0 - 192.168.1.255。2つのIPアドレスをハイフンで区切ったもの（ハイフンの前後にスペースが必要なので注意してください）
   また例のように、アドレスの後に簡単な説明を入れることもできます。説明文字列はSHOW FIREWALL POLICYコマンドでアクセスリストの内容を見るときに表示されます。#（シャープ）以降はコメントです。
2. 次にアクセスリストをポリシーに登録します。これ以降、アクセスリストを参照するときはファイル名でなくLISTパラメーターで指定した名前（ここでは「denyto」）を使います。

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

   `ADD FIREWALL POLICY=mynet RULE=1 ACTION=DENY INT=vlan-inside PROTO=ALL LIST=denyto ↓`
   アクセスリスト内のIPアドレスは通信の向きによって次のように解釈されます。
   - 外向き通信（PRIVATE→PUBLIC）の場合：終点アドレス。リスト中のアドレスへのアクセスを禁止または許可する。
   - 内向き通信（PUBLIC→PRIVATE）の場合：始点アドレス。リスト中のアドレスからのアクセスを禁止または許可する。

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

`ADD FIREWALL POLICY=mynet RULE=1 ACTION=DENY INT=vlan-inside PROTO=ALL REMOTEIP=10.30.1.23 ↓
ADD FIREWALL POLICY=mynet RULE=2 ACTION=DENY INT=vlan-inside PROTO=ALL REMOTEIP=172.25.150.150 ↓
ADD FIREWALL POLICY=mynet RULE=3 ACTION=DENY INT=vlan-inside PROTO=ALL REMOTEIP=172.30.100.0-172.30.100.255 ↓
`

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

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

RADIUS認証サーバーを利用してファイアウォールのアクセス制御を行うこともできます。この機能を使うと、許可・拒否するIPアドレスをRADIUSサーバー側で集中管理できます。
以下、RADIUSルールの基本的な設定手順について説明します。RADIUSルールを使用するには、最初にRADIUSサーバーの設定を行い、次に本製品の設定を行います。ここでは、架空のRADIUSサーバーを例に説明しますが、実際の設定方法については、ご使用のRADIUSサーバーのマニュアルをご覧ください。

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

       client 192.168.10.1 {
           secret    = himitsu
           shortname = kkSwitch
       }

2. RADIUSサーバーのユーザーデータベースに、許可・拒否するIPアドレスを登録します。IPアドレスごとに次のような内容のユーザーエントリーを作成してください。実際の設定ファイルの記述方法については、RADIUSサーバーのドキュメントを参照してください。

   表 10
   属性名 | 属性値 | 備考
   User-Name | [ipadd] | IPアドレスを角カッコ（[ ]）で囲んだもの。外向き通信のときは終点アドレス、内向き通信のときは始点アドレスを指定する
   User-Password | allowdeny | 固定値。パスワード不一致のときはAccess-Rejectが返るため、結果的にパケットが拒否されるので注意（ただし、PRIVATE側DENYルールでは許可されます）
   Framed-IP-Address | 0.0.0.0以外の任意のアドレス | 0.0.0.0を指定した場合、あるいは、Framed-IP-Address属性が返ってこない場合、パケットが拒否されるので注意

   ここでは、例として次のようなエントリーを登録したものとします。これは、IPアドレス10.1.1.5と10.1.3.125を許可し、それ以外を拒否するという設定です。

       [10.1.1.5]      Auth-Type := Local, User-Password == "allowdeny"
                       Framed-IP-Address = 1.1.1.1

       [10.1.3.125]    Auth-Type := Local, User-Password == "allowdeny"
                       Framed-IP-Address = 1.1.1.1

3. エントリーの追加が完了したら、RADIUS サーバーを起動または再起動してください。
4. 本製品が使うRADIUSサーバーのIPアドレスとUDPポート、共有パスワードを指定します。ここでは、RADIUSサーバーのIPアドレスを192.168.10.130とします。

   `ADD RADIUS SERVER=192.168.10.130 PORT=1812 ACCPORT=1813 SECRET=himitsu ↓
   `
5. RADIUSルールを作成します。「LIST=RADIUS」がRADIUSサーバーを使うための指定です。PUBLICインターフェースに対して「LIST=RADIUS」を指定した場合、ACTIONパラメーターは意味を持ちません。ALLOWかDENYのどちらを指定しても同じ動作（デフォルト拒否）になります。
   この例では、vlan-outで受信したパケットのうち、始点アドレスがRADIUSサーバーに登録されているものだけを許可し、その他のパケットは拒否します。

   `ADD FIREWALL POLICY=mynet RULE=1 ACTION=DENY INT=vlan-out PROTO=ALL LIST=RADIUS ↓
   `

   > Note - PUBLICインターフェースに設定したRADIUSルールでは、ACTIONパラメーターは意味を持ちません。DENY、ALLOWのどちらを指定しても、「デフォルト拒否」になります。一方、PRIVATEインターフェースに設定したRADIUSルールでは、DENYを指定した場合「デフォルト許可」、ALLOWを指定した場合は「デフォルト拒否」になります。詳しくは次節「許可・拒否の決定基準」をご覧ください。

#### 許可・拒否の決定基準

■ RADIUSルールの処理では、受信したパケットごとに次のような認証リクエスト（Access-Requestパケット）をRADIUSサーバーに送ります。

`User-Name [ipadd], User-Password allowdeny`

すなわち、ユーザー名としてIPアドレスを角かっこ（[]）で囲んだものを、パスワードとして「allowdeny」を送り、認証を要求します。
ipaddには、PRIVATEインターフェースに設定したルールでは終点アドレスが、PUBLICインターフェースに設定したルールでは始点アドレスが入ります。
■ RADIUSサーバーからの応答とパケットの許可・拒否は次のようになります。
「PUBLIC側」、「PRIVATE側」はそれぞれ、「PUBLICインターフェースに設定したルール」、「PRIVATEインターフェースに設定したルール」を示します。「DENY」、「ALLOW」はルールのアクションです。また、○はパケットが許可されることを、×はパケットが拒否されることを示しています。
また、ここでは「!=」を「等しくない」、「==」を「等しい」の意味で使っています。

表 11
RADIUSサーバーの応答 | PUBLIC側 | PRIVATE側
DENY | ALLOW | DENY | ALLOW
Access-Accept（Framed-IP-Address != 0.0.0.0） | ○ | ○ | ○ | ○
Access-Accept（Framed-IP-Address == 0.0.0.0） | × | × | × | ×
Access-Accept（Framed-IP-Address なし） | × | × | × | ×
Access-Reject | × | × | ○ | ×
問い合わせがタイムアウト | × | × | ○ | ×

- PUBLICインターフェースに設定したRADIUSルールでは、ACTIONパラメーターは意味を持ちません。DENY、ALLOWのどちらを指定しても、「デフォルト拒否」になります。すなわち、「Framed-IP-Address != 0.0.0.0」としてRADIUSサーバーに登録されているアドレスだけが許可され、その他のアドレスはすべて拒否されます。
- 一方、PRIVATEインターフェースに設定したRADIUSルールでは、DENYを指定した場合「デフォルト許可」、ALLOWを指定した場合は「デフォルト拒否」になります。
  - PRIVATE側DENYルールでは、「Framed-IP-Address == 0.0.0.0」としてRADIUSサーバーに登録されているアドレスだけが拒否され、その他はすべて許可されます。
  - PRIVATE側ALLOWルールでは、「Framed-IP-Address != 0.0.0.0」としてRADIUSサーバーに登録されているアドレスだけが許可され、その他のアドレスはすべて拒否されます。

ルールの時間制限

特定の曜日や時間帯だけルールを有効にすることもできます。この機能を利用すれば、平日の営業時間内に限って外部からのWebアクセスを許可するといった設定が可能です。時間制限の設定は、ADD FIREWALL POLICY RULEコマンドのAFTER、BEFORE、DAYSパラメーターで行います。
■ 次の例では、平日（月〜金）の9:00〜20:00に限り、外部から内部のWebサーバー（172.16.10.5へのアクセスを許可します。それ以外の時間帯は、ファイアウォールの基本ルールによりすべてのアクセスが拒否されます。

`ADD FIRE POLI=mynet RU=1 AC=ALLOW INT=vlan-out PROT=TCP IP=172.16.10.5 PORT=80 DAYS=WEEKDAY AFT=9:00 BEF=20:00 ↓`

このコマンドは、「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. ハードウェア（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サーバーの応答は、次のように解釈します。
    - RADIUSサーバーがAccess-Acceptを返し、なおかつ、Framed-IP-Addressとして「0.0.0.0」以外のアドレスを返してきた場合は、フローを許可します。また、PRIVATE側からのフローに限っては、RADIUSサーバーがAccess-Rejectを返してきた場合と、RADIUSサーバーへの問い合わせがタイムアウトした場合も該当フローを許可します。
    - それ以外の場合は、フローを拒否します。次に、フローが拒否される場合の例を挙げます。
      - RADIUSサーバーがAccess-Acceptを返し、なおかつ、Framed-IP-Addressとして「0.0.0.0」を返してきた場合は、フローを拒否します。
      - RADIUSサーバーがAccess-Acceptを返し、なおかつ、Framed-IP-Addressを返してこなかった場合は、フローを拒否します。
      - PUBLIC側からのフローに対して、RADIUSサーバーがAccess-Rejectを返してきた場合は、該当フローを拒否します。
      - PUBLIC側からのフローに対して、RADIUSサーバーへの問い合わせがタイムアウトした場合は、該当フローを拒否します。

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

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

ログ

ファイアウォールの動作を監視する場合、ログはもっとも基本的な資料になります。デフォルトでは、攻撃などの重大イベントしか記録されませんので、以下のコマンドを実行して必要なログオプションを有効にしてください。
■ ファイアウォールで拒否されたパケットのログをとるには、ENABLE FIREWALL POLICYコマンドのLOGパラメーターに記録するパケットの種類を指定します。たとえば、ファイアウォールで拒否されたすべてのパケットを記録するには、次のようにします。

`ENABLE FIREWALL POLICY=mynet LOG=DENY ↓`

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

表 12：ファイアウォールのログオプション一覧
オプション名 | 対象パケット
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バイトを記録

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

`SHOW LOG MODULE=FIRE ↓`

または

`SHOW LOG TYPE=FIRE ↓`

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

`SHOW LOG MODULE=FIRE TAIL（最新の20メッセージを表示） ↓
SHOW LOG MODULE=FIRE TAIL=10（同10メッセージを表示） ↓
`

    Manager > show log module=fire

    Date/Time   S Mod  Type  SType Message
    -------------------------------------------------------------------------------
    28 10:39:45 4 FIRE FIRE  INDIC ICMP - Source 172.16.28.32 Dest 172.16.28.255
                                   Type 9 Code 0
    28 10:39:45 4 FIRE FIRE  INDIC bad ICMP message type to pass
    28 10:40:05 4 FIRE FIRE  INDUD UDP - Source 172.16.28.120:137 Dest
                                   172.16.28.255:137
    28 10:40:05 4 FIRE FIRE  INDUD flow rejected by policy rule
    28 10:40:06 4 FIRE FIRE  INDUD UDP - Source 172.16.28.120:137 Dest
                                   172.16.28.255:137
    28 10:40:06 4 FIRE FIRE  INDUD flow rejected by policy rule
    28 10:40:41 3 FIRE FIRE  OUTDT TCP - Source 192.168.10.1:1045 Dest
                                   172.16.28.1:139
    28 10:40:41 3 FIRE FIRE  OUTDT flow rejected by policy rule
    -------------------------------------------------------------------------------

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

`ADD LOG OUTPUT=TEMPORARY MODULE=FIRE ↓
`

イベント通知

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

- MANAGER：Manager権限でログインしているすべての端末画面にメッセージを出力
- SNMP：あらかじめ設定しておいたトラップホストにSNMPトラップを送信
- MAIL：あらかじめ指定しておいたメールアドレスにメールを送信
- ASYN：コンソールポートにメッセージを出力

各通知先は個別にオン・オフできます。デフォルトでは、通知イベント発生時にManagerレベルでログインしているコンソールにメッセージが表示されるようになっています。
■ イベント発生時に管理者にメールを送るには次のようにします。
1. メール送信のための設定を行います。詳細は「運用・管理」/「メール送信」をご覧ください。

`SET MAIL HOSTNAME=kkSwitch.example.com ↓
ADD IP DNS PRIMARY=192.168.10.5 ↓
`

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

`ENABLE FIREWALL NOTIFY=MAIL TO=admin@example.com ↓`

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

    Subject: Firewall message
    From: manager@kkSwitch.example.com
    To: <admin@example.com>
    Date: Sun, 22 Jul 2001 13:33:19 +0900

    22-Jul-2001 13:33:19
      SYN attack from 1xx.xx.12.xxx is underway

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

■ イベント発生時にSNMPトラップを上げるには次のようにします。ここでは、トラップ送信先として、SNMPマネージャー192.168.10.5を設定します。
1. SNMPの設定を行います。詳細は「運用・管理」/「SNMP」をご覧ください。

`ENABLE SNMP ↓
CREATE SNMP COMMUNITY=public MANAGER=192.168.10.5 TRAPHOST=192.168.10.5 ↓
ENABLE SNMP COMMUNITY=public TRAP ↓
`

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

`ENABLE FIREWALL NOTIFY=SNMP ↓`

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

    172.16.10.1: Enterprise Specific Trap (1) Uptime: 2:19:50
    enterprises.207.8.4.4.4.77.1.0 = OCTET STRING: "22-Jul-2001 14:15:47..
      Port scan from 12.xx.xx.xx is underway"

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

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

`DISABLE FIREWALL NOTIFY=MAIL ↓`

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

`SHOW FIREWALL EVENT ↓`

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

- 通知（Notify）イベント：攻撃の開始や終了。攻撃の種類については別表を参照
- 拒否（Deny）イベント：ファイアウォールで拒否されたパケット
- 許可（Allow）イベント：ファイアウォールの通過を許可されたパケット

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

`SHOW FIREWALL EVENT=NOTIFY ↓`

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

表 13：攻撃一覧
攻撃名称 | 説明
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アドレスとポリシー名が入るようにします。

`ENABLE TRIGGER ↓
CREATE TRIGGER=1 FIREWALL=PORTSCAN MODE=START SCRIPT=pscans.scp ↓
`

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

    MAIL TO=admin@example.com SUBJECT="Portscan from %2 started (Policy $1)"

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

    Subject: Portscan from 199.xx.xx.180 started (Policy mynet)
    From: manager@kkSwitch.example.com
    To: <admin@example.com>
    Date: Sun, 22 Jul 2001 14:37:21 +0900

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

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

アカウンティング

アカウンティング機能を利用すれば、ポリシーごとにトラフィックの記録を取ることができます。
■ アカウンティングはENABLE FIREWALL POLICYコマンドのACCOUNTINGオプションで有効にします。

`ENABLE FIREWALL POLICY=mynet ACCOUNTING ↓`

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

    Manager > show firewall accounting

    Policy : mynet
    Date/Time   Event  Dir Prot  IP:Port <-> Dest IP:Port /Traffic statistics
    -------------------------------------------------------------------------------
    22 14:42:17 END    OUT UDP   172.16.28.160:2060 172.16.28.1:53
                                 Traffic out 1:66 in 1:118
    22 14:42:17 END    OUT TCP   172.16.28.160:36399 172.16.48.16:25
                                 Traffic out 13:846 in 12:967
    22 14:44:33 START  OUT UDP   192.168.10.5:65406 172.16.28.1:53
    22 14:44:33 END    OUT ICMP  192.168.10.5 172.16.28.1
                                 Traffic out 1:84 in 1:84
    22 14:44:34 END    OUT ICMP  192.168.10.5 172.16.28.1
                                 Traffic out 1:84 in 1:84
    22 14:44:35 END    OUT ICMP  192.168.10.5 172.16.28.1
                                 Traffic out 1:84 in 1:84
    22 14:44:36 END    OUT ICMP  192.168.10.5 172.16.28.1
                                 Traffic out 1:84 in 1:84
    22 14:47:16 START  OUT TCP   192.168.10.50:1031 172.16.28.5:80
    22 14:47:17 START  OUT TCP   192.168.10.50:1032 172.16.28.5:80
    22 14:47:44 END    IN  ICMP  172.16.28.180 172.16.28.160
                                 Traffic out 1:28 in 1:28
    -------------------------------------------------------------------------------

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

`SHOW LOG TYPE=ACCO ↓`

    Manager > show log type=acco

    Date/Time   S Mod  Type  SType Message
    -------------------------------------------------------------------------------
    22 14:42:18 3 FIRE ACCO  END   UDP 172.16.28.160:2060 172.16.28.1:53 Flow
                                   terminated
    22 14:42:18 3 FIRE ACCO  END   Flow traffic out 1:66 in 1:118
    22 14:42:18 3 FIRE ACCO  END   TCP 172.16.28.160:36399 172.16.48.16:25 Flow
                                   terminated
    22 14:42:18 3 FIRE ACCO  END   Flow traffic out 13:846 in 12:967
    22 14:44:33 3 FIRE ACCO  START UDP 192.168.10.5:65406 172.16.28.1:53 Flow
                                   started
    22 14:44:33 3 FIRE ACCO  END   ICMP 192.168.10.5 172.16.28.1  Flow terminated
    22 14:44:33 3 FIRE ACCO  END   Flow traffic out 1:84 in 1:84
    22 14:44:34 3 FIRE ACCO  END   ICMP 192.168.10.5 172.16.28.1  Flow terminated
    22 14:44:34 3 FIRE ACCO  END   Flow traffic out 1:84 in 1:84
    22 14:44:35 3 FIRE ACCO  END   ICMP 192.168.10.5 172.16.28.1  Flow terminated
    22 14:44:35 3 FIRE ACCO  END   Flow traffic out 1:84 in 1:84
    22 14:44:36 3 FIRE ACCO  END   ICMP 192.168.10.5 172.16.28.1  Flow terminated
    22 14:44:36 3 FIRE ACCO  END   Flow traffic out 1:84 in 1:84
    22 14:47:15 3 FIRE ACCO  START TCP 192.168.10.50:1031 172.16.28.5:80 Flow
                                   started
    22 14:47:16 3 FIRE ACCO  START TCP 192.168.10.50:1032 172.16.28.5:80 Flow
                                   started
    22 14:47:44 3 FIRE ACCO  END   ICMP 172.16.28.180 172.16.28.160  Flow
                                   terminated
    22 14:47:44 3 FIRE ACCO  END   Flow traffic out 1:28 in 1:28
    22 14:49:35 3 FIRE ACCO  END   UDP 192.168.10.5:65406 172.16.28.1:53 Flow
                                   terminated
    22 14:49:35 3 FIRE ACCO  END   Flow traffic out 1:70 in 1:190
    -------------------------------------------------------------------------------

デバッグオプション

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

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

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

`ENABLE FIREWALL POLICY=mynet DEBUG=PKT ↓`

    Manager >
    FIRE ICMP  45000024 c6070000 01018e04 ac101c20 ac101cff 0900421e 01020168
               96571c20 00000000

    Manager >
    FIRE TCP   4500003c c87c4000 40060c3d ac101cb4 ac101ca0 05e70017 3398573f
               00000000 a0027d78 19d20000 020405b4 0402080a 0d82ac62 00000000

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

`ENABLE FIREWALL POLICY=mynet DEBUG=PROCESS ↓`

    FIRE UDP   4500004d 218a0000 4011dc10 c0a80a05 ac101c01 ff780035 00393422
               067f0100 00010000 00000000 076f6374 6f766572 0274770e 616c6c69

    FIREWALL new flow - UDP - session ID 8b2e
    FIREWALL packet sent to UDP handler
    FIREWALL flow 8b2e found for packet
    FIREWALL packet sent to UDP handler
    FIREWALL packet passed - UDP OUT - passed by rule 0

    FIRE UDP   4500004d 218b0000 4011dc0f c0a80a05 ac101c01 ff770035 00394f22
               06800100 00010000 00000000 076f6374 6f766572 0274770e 616c6c69

    FIREWALL new flow - UDP - session ID 9a14
    FIREWALL packet sent to UDP handler
    FIREWALL flow 9a14 found for packet
    FIREWALL packet sent to UDP handler
    FIREWALL packet passed - TCP OUT - passed by rule 0

    FIRE TCP   4500003c 218c0000 4006db77 c0a80a05 ac101cb4 e2360017 d71d5199
               00000000 a0024000 1d930000 020405b4 01030300 0101080a 000064b7

    FIREWALL new flow - TCP - session ID a9c5
    FIREWALL packet sent to TCP handler
    FIREWALL flow a9c5 found for packet
    FIREWALL packet sent to TCP handler direction IN
    FIREWALL flow a9c5 found for packet
    FIREWALL packet sent to TCP handler direction OUT
    FIREWALL flow a9c5 found for packet
    FIREWALL packet sent to TCP handler direction OUT
    FIREWALL flow a9c5 found for packet
    FIREWALL packet sent to TCP handler direction IN
    FIREWALL flow a9c5 found for packet
    FIREWALL packet sent to TCP handler direction IN

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

`DISABLE FIREWALL POLICY=mynet DEBUG=PKT ↓`

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

セッションの確認

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

    Manager > show firewall session

    Policy : net
    Current Sessions
    -------------------------------------------------------------------------------
    3f41 TCP      IP: 192.168.20.200:65534      Remote IP: 192.168.10.100:23
              Gbl IP: 192.168.20.200:65534  Gbl Remote IP: 192.168.10.100:23
         TCP state ............................ established
         Start time ........................... 11:17:15 11-Jun-2002
         Seconds to deletion .................. 3504
    5d1f TCP      IP: 192.168.20.200:65533      Remote IP: 192.168.10.103:22
              Gbl IP: 192.168.20.200:65533  Gbl Remote IP: 192.168.10.103:22
         TCP state ............................ synSent
         Start time ........................... 11:17:58 11-Jun-2002
         Seconds to deletion .................. 510
    b310 UDP      IP: 192.168.20.200:65532      Remote IP: 192.168.10.100:53
              Gbl IP: 192.168.20.200:65532  Gbl Remote IP: 192.168.10.100:53
         Start time ........................... 11:19:25 11-Jun-2002
         Seconds to deletion .................. 300
    -------------------------------------------------------------------------------

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

    Manager > show firewall session counter

    Policy : net
    Current Sessions
    -------------------------------------------------------------------------------
    3f41 TCP      IP: 192.168.20.200:65534      Remote IP: 192.168.10.100:23
              Gbl IP: 192.168.20.200:65534  Gbl Remote IP: 192.168.10.100:23
         Packets from private IP .............. 22
         Octets from private IP ............... 1420
         Packets to private IP ................ 21
         Octets to private IP ................. 1664
         TCP state ............................ established
         Start time ........................... 11:17:15 11-Jun-2002
         Seconds to deletion .................. 3474
    5d1f TCP      IP: 192.168.20.200:65533      Remote IP: 192.168.10.103:22
              Gbl IP: 192.168.20.200:65533  Gbl Remote IP: 192.168.10.103:22
         Packets from private IP .............. 4
         Octets from private IP ............... 240
         Packets to private IP ................ 0
         Octets to private IP ................. 0
         TCP state ............................ synSent
         Start time ........................... 11:17:58 11-Jun-2002
         Seconds to deletion .................. 480
    b310 UDP      IP: 192.168.20.200:65532      Remote IP: 192.168.10.100:53
              Gbl IP: 192.168.20.200:65532  Gbl Remote IP: 192.168.10.100:53
         Packets from private IP .............. 1
         Octets from private IP ............... 73
         Packets to private IP ................ 1
         Octets to private IP ................. 165
         Start time ........................... 11:19:25 11-Jun-2002
         Seconds to deletion .................. 270
    -------------------------------------------------------------------------------

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

`DELETE FIREWALL SESSION=2826 ↓`

その他設定

本製品のファイアウォールは、各種コマンドを使って細かい動作の変更が可能です。ここでは主要な設定についてのみ説明します。詳細はコマンドリファレンスをご覧ください。
■ Pingパケット（ICMP echo、echo reply）とICMP Destination Unreachableを通すには、次のようにします。デフォルトではICMPはすべて通しません（ルーター自身へのPingには応答します）。

`ENABLE FIREWALL POLICY=mynet ICMP_F=PING,UNREACH ↓`

> 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」/「ソフトウェアIPフィルター」をご覧ください。

`ADD IP FILTER=0 SO=0.0.0.0 PROTO=ICMP ICMPTYPE=ECHO ACTION=EXCLUDE ↓
ADD IP FILTER=0 SO=0.0.0.0 ACTION=INCLUDE ↓
SET IP INT=vlan-out FILTER=0 ↓
`

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

`DISABLE FIREWALL POLICY=mynet ICMP_FORWARDING=PING ↓`

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

`DISABLE FIREWALL POLICY=mynet PING ↓`

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

`DISABLE FIREWALL POLICY=mynet IDENTPROXY ↓`

なお、identプロキシー機能がオンのときは、ident要求に対して本製品がproxyuserというユーザー名を返答します。
■ ファイアウォールのデフォルト設定では、PUBLIC・PRIVATEインターフェース間のTCPセッション確立時にTCP Synパケットの代理応答を行いますが、一部のアプリケーションではこの動作（代理応答）によって矛盾が生じることがあります。
その場合は、DISABLE FIREWALL POLICY TCPSETUPPROXYコマンドで代理応答を無効にしてください。

`DISABLE FIREWALL POLICY=mynet TCPSETUPPROXY ↓`

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

`ENABLE FIREWALL POLICY=mynet TCPSETUPPROXY ↓`

設定例

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

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

- ICMPはPing(echo/echo reply)とUnreachableのみ双方向とも許可。
- UDPは双方向とも禁止。ただし、UDPのDNSサービス（53）のみ双方向とも許可する。
- TCPは内部から外部へのみコネクションを張ることができる。ただし、以下は例外とする。
  - 内部のDNSサーバー（192.168.10.5）のDNSサービス（53）には外部からTCPのコネクションを張れる。
  - 内部のメールサーバー（192.168.10.5）のSMTPサービス（25）には外部からTCPのコネクションを張れる 。
  - 内部のWebサーバー（192.168.10.5）のHTTPサービス（80）には外部からTCPのコネクションを張れる。ただし、時間を朝10:00〜夜21:00に限定する。
- vlan-whiteをPRIVATE、vlan-greyをPUBLICインターフェースとして設定する。
- ファイアウォールでブロックしたパケットをログに記録する。
- ポートスキャンなどの不正行為を受けた場合は、SNMPトラップでマネージャーステーション（192.168.10.100）に通知する。

スイッチAの設定

1. VLANの設定を行います。

   `CREATE VLAN=white VID=10 ↓
   CREATE VLAN=grey VID=100 ↓
   ADD VLAN=white PORT=1-23 ↓
   ADD VLAN=grey PORT=24 ↓
   `
2. IPモジュールを有効にします。

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

   `ADD IP INT=vlan-white IP=192.168.10.1 MASK=255.255.255.0 ↓
   ADD IP INT=vlan-grey IP=192.168.100.1 MASK=255.255.255.0 ↓
   `
4. デフォルトルートを設定します。

   `ADD IP ROUTE=0.0.0.0 MASK=0.0.0.0 INT=vlan-grey NEXT=192.168.100.254 ↓`
5. ファイアウォールを有効にします。

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

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

   `ENABLE FIREWALL POLICY=mypol LOG=DENY ↓`
8. identプロキシー機能を無効にし、外部からのident要求に対してただちにRSTを返すようにします。

   `DISABLE FIREWALL POLICY=mypol IDENTPROXY ↓`
9. ファイアウォールポリシーの適用対象となるインターフェースを指定します。
   - vlan-whiteをPRIVATE（内部）インターフェースに設定します。

     `ADD FIREWALL POLICY=mypol INT=vlan-white TYPE=PRIVATE ↓`
   - vlan-greyをPUBLIC（外部）インターフェースに設定します。

     `ADD FIREWALL POLICY=mypol INT=vlan-grey TYPE=PUBLIC ↓`
10. 以下、ポリシーの詳細設定を行います。
    - ICMP echo/echo replyとUnreachableを双方向で許可します。

      `ENABLE FIREWALL POLICY=mypol ICMP_F=PING,UNREACH ↓`
    - UDPは、 DNS サービス（53）のみ双方向で許可します。

      `ADD FIREWALL POLICY=mypol RULE=1 ACTION=ALLOW INT=vlan-white PROT=UDP PORT=DNS ↓
      ADD FIREWALL POLICY=mypol RULE=2 ACTION=ALLOW INT=vlan-grey PROT=UDP PORT=DNS ↓
      `
    - その他のUDPトラフィックは双方向で禁止します（外部からのUDPはデフォルトで禁止されるため設定する必要はありません）。

      `ADD FIREWALL POLICY=mypol RULE=3 ACTION=DENY INT=vlan-white PROT=UDP PORT=ALL ↓`
    - 内部のDNS サーバー（192.168.10.5）のDNSサービス（53）には外部からTCPのコネクションを張れるようにします。

      `ADD FIREWALL POLICY=mypol RULE=4 ACTION=ALLOW INT=vlan-grey IP=192.168.10.5 PROT=TCP PORT=DNS ↓`
    - 内部のメールサーバー（192.168.10.5）のSMTPサービス（25）には外部からTCPのコネクションを張れるようにします。

      `ADD FIREWALL POLICY=mypol RULE=5 ACTION=ALLOW INT=vlan-grey IP=192.168.10.5 PROT=TCP PORT=SMTP ↓`
    - 内部のWebサーバー（192.168.10.5）のHTTPサービス（80）には外部からTCPのコネクションを張れるようにします。ただし、時間を朝10:00〜夜20:59に制限します。

      `ADD FIRE POLI=mypol RU=6 AC=ALLOW INT=vlan-grey IP=192.168.10.5 PROT=TCP PO=WWW AFTER=9:59 BEFORE=21:00 ↓`
11. 不正行為を受けたときは、SNMPトラップで通知するよう設定します。SMTPコミュニティー名は大文字小文字を区別するので注意してください。

    `ENABLE SNMP ↓
    CREATE SNMP COMMUNITY=public ↓
    ENABLE SNMP COMMUNITY=public TRAP ↓
    ADD SNMP COMMUNITY=public MANAGER=192.168.10.100 TRAPHOST=192.168.10.100 ↓
    ENABLE FIREWALL NOTIFY=SNMP ↓
    `

設定は以上です。

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

PN: J613-M0019-01 Rev.P