UTM / ファイアウォール


基本設定
ルールの処理順序
ICMPエラーメッセージの送信設定
攻撃検出機能
検出可能な攻撃と検出条件
セッション数の制限
設定と状態の確認
ログ


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

ファイアウォールを有効化すると、デフォルトでは本製品のルーティング用インターフェースを通過するすべてのトラフィックが遮断されるようになります。このデフォルト動作をベースとして、必要なトラフィックを通過させるためのルールを登録していくのがファイアウォールの基本的な設定方法となります。

Note
AMFとファイアウォールを併用する場合、AMF仮想リンクを使用している環境では、仮想リンクのパケットを許可する必要があります(AMF応用編を参照)。

Note
本製品のファイアウォールは厳密なセッション管理を行っているため、許可ルールに該当するトラフィックであっても、セッション情報が存在しないパケット(*)は転送せずに破棄します。(* TCP SYNパケットを受信していない状態でのTCP ACKパケットやTCP SYN/ACKパケット、ICMP Requestパケットを受信していない状態でのICMP Replyパケット等がこれに該当します)


ファイアウォール機能の具体的な使用例については、「設定例集」をご覧ください。

基本設定

ファイアウォールの設定は、ファイアウォールモード(firewallコマンド)で行います。
ルールの設定はruleコマンドで、機能の有効化はprotectコマンドで行います。

以下、ファイアウォール機能の基本的な設定手順を示します。
  1. ファイアウォール機能の設定を行うため、ファイアウォールモードに移行します。これにはfirewallコマンドを使います。
    awplus(config)# firewall
    

  2. ファイアウォール有効時はデフォルトですべてのトラフィックが拒否されるため、許可するトラフィックをpermitルールで明示的に指定する必要があります。ルールの作成は、ruleコマンドで行います。
    アクションには次の4つがあります。また、ルールの順序にも意味があります。これについては後述する「ルールの処理順序」をご覧ください。

    次のルールでは、内部を表すゾーン「private」から外部を表すゾーン「public」に宛てた通信をすべて許可するよう設定しています。ステートフルインスペクションにより、ファイアウォール経由の通信が開始されたときにはその状態が記憶されるため、戻りのパケットを許可するためのルールは不要です。
    awplus(config-firewall)# rule permit any from private to public
    
    この例において、
    を表します。

    「アプリケーション」と「エンティティー」の詳細は、「UTM」/「アプリケーション定義」「UTM」/「エンティティー定義」をご覧ください。
    Note
    アプリケーションコントロール(DPI)機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要がありますが、ファイアウォールはその仕様として初期設定ですべてのパケットを破棄するため、ファイアウォールとアプリケーションコントロール(DPI)を併用する場合は注意が必要です。詳しくは「UTM」/「アプリケーションコントロール(DPI)」をご覧ください。

    同様にして必要なルールを作成していきます。以下にいくつかの例を示します。


  3. ファイアウォール機能を有効化します。これにはprotectコマンドを使います。
    awplus(config-firewall)# protect
    
設定は以上です。

ルールの処理順序

ファイアウォールルール(rule)は次の順序で新しく開始されたセッションを処理します。
Note
すでに確立済みのセッションはセッションテーブルに登録された情報を元にパケットを転送します。

ICMPエラーメッセージの送信設定

ファイアウォール使用時に、本製品・LAN側端末間の通信を許可する次のようなルールが設定されている場合は、LAN側端末から受信したIPパケットのTTL値が「0」になった、宛先への経路が存在しないなどの例外状況をICMPのエラーメッセージ(Time Exceeded、Destination Unreachableなど)で送信元に通知することができます。

■ ルールA(送信元エンティティーが「ゾーン」または「ネットワーク」)
awplus(config-firewall)# rule permit any from private to private
または
awplus(config-firewall)# rule permit any from private.lan to private.lan
(ゾーン「private」やネットワーク「private.lan」がLAN側ネットワークを定義していると仮定)
Note
本設定が行われていれば、該当IPパケットに対するファイアウォールセッションが登録されていない場合でも本製品はICMPエラーメッセージを送信することができます。

ただし、前記ルールAの代わりに、送信元を本製品のLAN側IPアドレス(ホストエンティティー)に限定し、本製品からLAN側端末への一方向のみ通信を許可する次のようなルールを使用している場合は、別途 ICMPメッセージ全般を表すカスタムアプリケーションを定義し、同アプリケーションを明示的に指定したファイアウォールルールを追加設定してください。

■ ルールB(送信元エンティティーが「ホスト」)
awplus(config-firewall)# rule permit any from private.lan.myself to private.lan
(ネットワーク「private.lan」がLAN側ネットワークを、ホスト「private.lan.myself」が本製品のLAN側IPアドレスを定義していると仮定)

たとえば、ルールB使用時に、LAN側ネットワーク上のホストから受信したIPパケットに対して、本製品のLAN側IPアドレスを始点アドレスとするICMPエラーメッセージを返送できるようにするには、次のようにICMPメッセージ全般を表すカスタムアプリケーションを定義し、同アプリケーションを明示的に指定したファイアウォールルールを追加してください。
awplus(config)# application icmp
awplus(config-application)# protocol icmp
awplus(config-application)# exit
awplus(config)# firewall
awplus(config-firewall)# rule permit icmp from private.lan.myself to private.lan
ここではカスタムアプリケーション「icmp」でICMPメッセージ全般を定義しており、ホスト「private.lan.myself」が本製品のLAN側IPアドレスを、ネットワーク「private.lan」がLAN側ネットワークを定義していると仮定しています。
また、LAN側ネットワーク上のホストから該当IPパケットの受信を許可するルールは別途設定済みであるとします。
Note
送信元をホストエンティティー(本製品のアドレス)に限定したファイアウォールルールにおいて、ICMPエラーメッセージの送信を許可する場合は、同メッセージに該当するアプリケーションを明示的に指定してください。前記ルールBのようにアプリケーションとして「any」を指定したルールでは、セッション未登録のIPパケットに対してICMPエラーメッセージを送信できませんのでご注意ください。

攻撃検出機能

攻撃検出機能(IDS)は、サービス妨害攻撃(DoS)や不正アクセスと思われるトラフィックを検出してログに記録するとともに、該当トラフィックを遮断することで、本製品と配下のネットワークを保護する機能です。

IDSはファイアウォール機能の一部として実装されており、ファイアウォール機能を有効にすると自動的に有効化されます。

Note
IPスプーフィング検出はファイアウォール機能が無効でも動作します。

Note
検出後のパケットはすべて破棄されます。この動作を変更することはできません。

検出可能な攻撃と検出条件


セッション数の制限

特定の端末によって大量のファイアウォールセッションが生成され、帯域幅やリソースが専有されることを防ぐには、ファイアウォールセッションリミット機能を使います。

同機能では、送信元IPアドレスごとにファイアウォールセッションの上限数を設定できます。

Note
本機能はTCPのみを監視しており、他のプロトコルは監視しません。また、本機能有効時は1秒間あたりのTCPセッション登録数に制限がかかります(50セッション/秒)。

■ 特定端末からのファイアウォールセッション数を制限するには、connection-limitコマンドでファイアウォールセッションリミットルールを追加します。

たとえば、外部ゾーン「public」ネットワーク「internet」上のホスト「hostA」からのセッションを20までに制限するには、次のように設定します。
awplus(config-firewall)# connection-limit from public.wan.hostA with limit 20

connection-limitコマンドのfromパラメーターに複数アドレスに対応したエンティティーを指定することにより、特定のアドレス範囲にあるホストからのセッションをそれぞれ指定値に制限することもできます。

たとえば、外部ゾーン「public」ネットワーク「netA」内の各ホストからのセッションをそれぞれ10までに制限するには、次のようにします。
awplus(config-firewall)# connection-limit from public.netA with limit 10

設定と状態の確認

■ ファイアウォール機能の有効・無効と現在のセッション数はshow firewallコマンドで確認できます。
awplus# show firewall
Firewall protection is enabled
Active connections: 21

■ ファイアウォールを介して行われている通信セッションの一覧を表示するにはshow firewall connectionsコマンドを使います。
awplus# show firewall connections
tcp ESTABLISHED src=192.168.1.2 dst=172.16.1.2 sport=58616 dport=23 packets=16 
bytes=867 src=172.16.1.2 dst=172.16.1.1 sport=23 dport=58616 packets=11 bytes=636 
[ASSURED]
icmpv6 src=2001:db8::2 dst=2001:db8::1 type=128 code=0 id=1416 packets=34 
bytes=3536 src=2001:db8::1 dst=2001:db8::2 type=129 code=0 id=1416 packets=34 
bytes=3536 
tcp TIME_WAIT src=2001:db8:1::2 dst=2001:db8:2::2 sport=42532 dport=80 packets=7 
bytes=597 src=2001:db8:2::2 dst=2001:db8:1::2 sport=80 dport=42532 packets=5 
bytes=651 [ASSURED] 
tcp TIME_WAIT src=2001:db8:1::2 dst=2001:db8:2::2 sport=48740 dport=80 packets=5 
bytes=564 src=2001:db8:2::2 dst=2001:db8:1::2 sport=80 dport=48740 packets=5 
bytes=594 [ASSURED]

■ ファイアウォールを介して行われている通信セッションをクリアするにはclear firewall connectionsコマンドを使います。
awplus# clear firewall connections
Note
本コマンドを実行すると、ファイアウォール経由のTCP通信が切断されるため注意してください。UDPやICMPの通信は継続されます。

■ ファイアウォールルールの情報はshow firewall ruleコマンドで確認できます。
awplus# show firewall rule

[* = Rule is not valid - see "show firewall rule config-check"]
  ID     Action  App        From                 To                   Hits
--------------------------------------------------------------------------------
  10     permit  openvpn    public               private              0
  20     deny    samba-tcp  private              public               0
  30     deny    samba-udp  private              public               0
  40     permit  ssh        branch               private              0

■ ファイアウォールルールが有効かどうかをチェックするには、show firewall rule config-checkコマンドを使います。

ファイアウォールルールの作成時にはエンティティーとアプリケーションの両定義を使用しますが、これらの定義が不完全な場合(指定したアプリケーションやエンティティーが未定義である、アプリケーション定義でIPプロトコルが未指定、など)、該当ルールは有効にならず無視されてしまいます。

このような事態を避けるには、ルール作成後にshow firewall rule config-checkコマンドを実行してルールが有効かどうかをチェックしてください。
awplus# show firewall rule config-check
Rule 10:
  Application does not have a protocol configured
同コマンドでは、無効なルールがある場合、それが理由とともに示されます。

この例では、次の理由によりルール「10」が無効であることが示されています。

また、次の例では、すべてのルールが有効であることが示されています。
awplus# show firewall rule config-check
All rules are valid

■ ファイアウォールセッションリミットルールの情報はshow firewall connections limitsコマンドで確認できます。

■ ファイアウォールセッションリミットルールが有効かどうかをチェックするには、show firewall connections limits config-checkコマンドを使います。

ログ

■ ファイアウォールの動作を監視する場合、ログは基本的な資料になりますが、デフォルトではこれらのログは記録されませんので、以下のコマンド(log(filter))を実行して必要なログオプションを有効にしてください。
awplus(config)# log buffered level informational facility kern msgtext Firewall

■ セッションの開始と終了もログに記録したい場合は、別途connection-log eventsコマンドで有効化してください。
また、セッション開始と終了のログは、通常のファイアウォールログとは違い local5ファシリティーで出力されるため、log(filter)で同ファシリティーのメッセージを出力する設定も追加してください。
awplus(config)# connection-log events all
awplus(config)# log buffered level informational facility local5


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

PN: 613-002107 Rev.AA