Fortigate では、インタフェースに到着する異常なトラフィックを検知、遮断することができます。特に、DoS(サービス拒否)攻撃により異常の多い通信量を検知した場合は、そのトラフィックを検知、遮断することで、提供するネットワークを保護します。
これを実現するには、DoSポリシーを設定します。
この記事では、DoSポリシーにより、異常なトラフィックを検知、遮断する動作を確認します。

DoSポリシーの設定
ポリシー&オブジェクト >> IPv4DoSポリシーより、新規作成をクリックします。

以下のような新規ポリシー画面が表示されます。 この画面で、DoSポリシー名、検知対象の着信インタフェース、異常トラフィックの種別を設定します。

DoS検知対象通信の設定

- 名前:任意の名前。ここでは、DoS-Policyとします。
- 着信インタフェース:検知対象のトラフィックが着信するインタフェースを指定します。ここでは、インターネットに接続されているport1を指定します。
- 送信元アドレス:不特定の送信元を検知対象とするため、allを設定します。
- 宛先アドレス:攻撃対象を特定しないよう、allを設定します。
- サービス:プロトコルを特定せず、ALL を設定します。
L3アノマリ
L3レベルの異常(アノマリ)検知を設定します。各アノマリ単位に対して、ロギング、およびアクション(無効、ブロック、モニタ)を設定できます。
今回は、すべてのアノマリに対して、ロギングを有効に、アクションをブロックにします。この場合は、最上部の設定(以下、赤枠)を設定することで、すべてのアノマリに適用されます。

- ip_src_session:1つの送信元IPアドレスからの同時IP接続数
- ip_dst_session:1つの宛先IPアドレスへの同時IP接続数
L4アノマリ
L4レベルの異常(アノマリ)検知を設定します。L3レベルの異常(アノマリ)検知と同様に、すべてのアノマリに対して、ロギングを有効に、アクションをブロックにします。

- tcp_syn_flood : 1つの宛先IPアドレスへのTCP SYNパケットのレート(パケット数/秒)
- tcp_port_scan : 1つの送信元IPアドレスからTCP SYNパケットのレート(パケット数/秒)
- tcp_src_session : 1つの送信元IPアドレスからTCP同時接続セッション数
- tcp_dst_session : 1つの宛先IPアドレスへのTCP同時接続セッション数
- udp_flood : 1つの宛先IPアドレスへのUDPパケットのレート(パケット数/秒)
- udp_scan : 1つの送信元IPアドレスからUDPパケットのレート(パケット数/秒)
- udp_src_session : 1つの送信元IPアドレスからUDP同時接続数
- udp_dst_session : 1つの宛先IPアドレスへのUDP同時接続数
- icmp_flood : 1つの宛先IPアドレスへのICMPパケットのレート(パケット数/秒)
- icmp_sweep : 1つの送信元IPアドレスからICMPパケットのレート(パケット数/秒)
- icmp_src_session : 1つの送信元IPアドレスからICMP同時接続数
- icmp_dst_session : 1つの宛先IPアドレスへのICMP同時接続数
- sctp_flood : 1つの宛先IPアドレスへのSCTPパケットのレート(パケット数/秒)
- sctp_scan : 1つの送信元IPアドレスからSCTPパケットのレート(パケット数/秒)
- sctp_src_session : 1つの送信元IPアドレスからSCTP同時接続セッション数
- sctp_dst_session : 1つの宛先IPアドレスへのSCTP同時接続セッション数
OKをクリックすると、以下の通り登録されます。

動作確認
MAC端末からping のオプション -f で、Fortigateのインターネット接続(port1)で公開しているIPアドレスへ大量にICMP(ping)を送信します。(管理内デバイスへのテスト目的以外には絶対に使用しないようにしてください)
$ sudo ping -f 10.0.0.100 Password: PING 10.0.0.100 (10.0.0.100): 56 data bytes ..Request timeout for icmp_seq 0 ..Request timeout for icmp_seq 32 ..Request timeout for icmp_seq 58 ..Request timeout for icmp_seq 94 ..Request timeout for icmp_seq 137 ..Request timeout for icmp_seq 161 ..Request timeout for icmp_seq 168 ..Request timeout for icmp_seq 257
ログ&レポート >> アノマリ を確認すると、icmp_floodを検知しており、アクションがclear_sessionであることが確認できます。

ログをダブルクリックすると、詳細が確認できます。

コメント