FortiGate の DoS ポリシーを設定する手順(v6.0.9)

ファイアウォール(UTM)

DoS ポリシー概要

DoS ポリシーは、既知または一般的なトラフィックパターンおよび動作に適合しないネットワークトラフィックを識別するトラフィック異常検出機能です。異常なトラフィックの一般的な例は DoS 攻撃です。攻撃システムがターゲットシステムに対して異常な数のセッションを開始すると、多数のセッションによってターゲットシステムの速度が低下または無効になるため、正当なユーザーはサービスを利用できなくなります。

DoS ポリシーはファイアウォールポリシーに似ていますが、トラフィックの流れ方を定義するのではなく、特定のトラフィックパターンと属性を追跡し、その属性に該当するトラフィックを遮断します。また、一つの DoS ポリシーは単一のインターフェイスの着信トラフィックにのみ適用されます。さらに、送信元アドレス、宛先アドレス、およびサービスによって DoS ポリシーの適用対象トラフィックを制限できます。

不適切に設定された DoS ポリシーはネットワークトラフィックに干渉する可能性があるため、工場出荷時のデフォルトの FortiGate では DoS ポリシーの設定はされていません。DoS ポリシーを有効にするためには、明示的に手動で DoS ポリシーを作成する必要があります。新規作成した DoS ポリシーの各チェック項目のしきい値にはデフォルトの推奨値が設定されていますが必要に応じてしきい値を変更することができます。

DoS ポリシーはベースライセンスでも使用することができます。

DoS ポリシー設定手順

作業環境

  • 型番:FortiGate 60E
  • ファームウェアバージョン:v6.0.9

GUI にて DoS ポリシーを表示させる

デフォルトでは GUI にて DoS ポリシーの項目が表示されない設定となっているため表示させるよう設定します。

以下画像のように、[システム]→[表示機能設定] と選択し、[その他フィーチャー] 欄の [DoSポリシー] のラジオボタンをクリックして有効化します。その後画面下部の [適用] ボタンをクリックして確定します。

[ポリシー&オブジェクト] の中に [IPv4 DoSポリシー] が追加されたことを確認します。

DoS ポリシーの新規作成

[IPv4 DoSポリシー] 画面を表示し、画面上部の [新規作成] をクリックします。

以下の DoS ポリシー作成画面となるため、要件に合わせて設定します。ここでは例として以下のように設定しています。

  • 入力インターフェース:wan1
  • 送信元アドレス:all(アドレスオブジェクトから選択)
  • 宛先アドレス:all(アドレスオブジェクトから選択)
  • サービス:ALL(サービスオブジェクトから選択)
  • 各設定項目のパラメータ
    • ステータス:有効
    • ロギング:有効
    • アクション:ブロック
    • しきい値:デフォルト

各項目が設定できたら画面下部の [OK] ボタンをクリックして設定を確定します。

[IPv4 DoSポリシー] 画面で DoS ポリシーが追加されたことを確認します。

以上で DoS ポリシーの作成は完了です。

CLI で設定する場合

コンフィグでは config firewall DoS-policy が IPv4 DoS ポリシーに該当します。

上の GUI での設定例の通り設定した後のコンフィグは以下の通りです。

FGT # show firewall DoS-policy
config firewall DoS-policy
    edit 1
        set interface "wan1"
        set srcaddr "all"
        set dstaddr "all"
        set service "ALL"
        config anomaly
            edit "tcp_syn_flood"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "tcp_port_scan"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "tcp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "tcp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_flood"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "udp_scan"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "udp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "udp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "icmp_flood"
                set status enable
                set log enable
                set action block
                set threshold 250
            next
            edit "icmp_sweep"
                set status enable
                set log enable
                set action block
                set threshold 100
            next
            edit "icmp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 300
            next
            edit "icmp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "ip_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "ip_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_flood"
                set status enable
                set log enable
                set action block
                set threshold 2000
            next
            edit "sctp_scan"
                set status enable
                set log enable
                set action block
                set threshold 1000
            next
            edit "sctp_src_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
            edit "sctp_dst_session"
                set status enable
                set log enable
                set action block
                set threshold 5000
            next
        end
    next
end

DoS ポリシーの各設定項目について

アクションについて

  • 転送:異常なトラフィックが妨げられることなく通過できる
  • ブロック:
    • しきい値が同時セッションの数の場合
      しきい値として設定された同時セッションの数を超えることはできない
    • しきい値パケット/秒で測定されるレートベースの場合
      config ips global の anomaly-mode の設定によって以下のように動作
      • continuous:(デフォルト)
        異常が検出されるとパケットをブロックする。個々のアノマリ設定が上書きされる。(?)
      • periodical:
        しきい値で設定されたレートまで異常トラフィックを通過させる

L3アノマリ

  • ip_src_session
    • 1つの送信元 IP アドレスからの同時 IP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • ip_dst_session
    • 1つの宛先 IP アドレスへの同時 IP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション

L4アノマリ

  • tcp_syn_flood
    • 1つの宛先 IP アドレスへの新しい TCP 接続の SYN パケットレート(再送信を含む)がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:2000パケット/秒
  • tcp_port_scan
    • 1つの送信元 IP アドレスからの新しい TCP 接続の SYN パケットレート(再送信を含む)がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:1000パケット/秒
  • tcp_src_session
    • 1つの送信元 IP アドレスからの同時 TCP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • tcp_dst_session
    • 1つの宛先 IP アドレスへの同時 TCP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • udp_flood
    • 1つの宛先 IP アドレスへの UDP トラフィックがしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:2000パケット/秒
  • udp_scan
    • 1つの送信元 IP アドレスからの UDP トラフィックがしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:2000パケット/秒
  • udp_src_session
    • 1つの送信元 IP アドレスからの同時 UDP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • udp_dst_session
    • 1つの宛先 IP アドレスへの同時 UDP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • icmp_flood
    • 1つの宛先 IP アドレスに送信された ICMP パケットの数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:250パケット/秒
  • icmp_sweep
    • 1つの送信元 IP アドレスから発信された ICMP パケットの数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:100パケット/秒
  • icmp_src_session
    • 1つの送信元 IP アドレスからの同時 ICMP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:300の同時セッション
  • icmp_dst_session
    • 1つの宛先 IP アドレスへの同時 ICMP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:3000同時セッション
  • sctp_flood
    • 1つの宛先 IP アドレスに送信された SCTP パケットの数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:2000パケット/秒
  • sctp_scan
    • 1つの送信元 IP アドレスから発信された SCTP セッションの数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:1000パケット/秒
  • sctp_src_session
    • 1つの送信元 IP アドレスからの同時 SCTP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション
  • sctp_dst_session
    • 1つの宛先 IP アドレスへの同時 SCTP 接続の数がしきい値を超えると、アクションが実行されます。
    • デフォルトしきい値:5000の同時セッション

参考資料

https://docs.fortinet.com/document/fortigate/6.0.0/handbook/486206/dos-protection

―――――――――――――

タイトルとURLをコピーしました