Configuring TCP Intercept(3回目)

はじめに

今回はTCP Interceptの設定例や練習問題についてお勉強します。

Configuration Example

まず、TCP Interceptを有効にするための最小限の設定からみていきましょう。

Router(config)# ip access-list extended INTERCEPT
Router(config-ext-nacl)# permit tcp any host 192.168.1.1
Router(config-ext-nacl)# exit
Router(config)# ip tcp intercept list INTERCEPT

最低限必要な設定は、Interceptする対象のサーバを決めるACLを設定すること
と、TCP Interceptを有効にする ip tcp interceptコマンドを設定することで
す。

この例では、192.168.1.1というサーバに対するTCPアクセスをInterceptする
設定となっています。通常、何らかの不正アクセスを軽減したい場合は、送信
元アドレスを特定することは不可能なのでACLの送信元アドレスはanyで設定し
ます。

これだけの設定では、TCP Interceptの動作モードはInterceptモードとなりま
す。Interceptモードはルータがクライアントとサーバ間の3way handshakeを
仲介するので、ルータに処理負荷がかかります。
動作モードをWatchモードに変えればルータは3way handshakeを仲介しなくな
りますので、処理負荷は小さくなります。

Router(config)# ip tcp intercept mode watch

Wachモードにすると、ルータはクライアントからのSYN+ACKが返ってくるかを
監視します。デフォルトでは30秒応答が無い場合サーバに対してRSTを送りま
す。例えば、15秒応答が無い場合にRSTを返す設定をするとなると以下のよう
になります。

Router(config)# ip tcp intercept watch-timeout 15

Configuring Exercise

それでは練習問題をやってみましょう。以下の条件に合うようにTCP Intercept
の設定を考えてみてください。

-サーバセグメントの中で、Webサーバ(192.168.1.1)とメールサーバ(192.168.1.2)へのSYN Flood Attackを軽減する
-ルータはTCPコネクションに対して仲介しない
-クライアントからの応答が2分間なければサーバにRSTを送る
-TCP通信が5分アイドル状態になったら、そのコネクションの情報を破棄する
-1分間のTCP SYNアクセスが800を超えたらAggressive Modeにする
-1分間のTCP SYNアクセスが600を下回ると通常の状態の戻る
-Aggressive ModeではTCPのコネクションをランダムに破棄する

前回のメールを参考にしつつ設定してみてください。実機が無い方はメモ帳で
も使って、自分の手でコマンドを書いてみるということが大事です。

それでは解答です。

Router(config)# ip access-list extended INTERCEPT
Router(config-ext-nacl)# permit tcp any host 192.168.1.1 eq 80
Router(config-ext-nacl)# permit tcp any host 192.168.1.2 eq 25
Router(config-ext-nacl)# exit
Router(config)# ip tcp intercept list INTERCEPT
Router(config)# ip tcp intercept mode watch
Router(config)# ip tcp intercept watch-timeout 120
Router(config)# ip tcp intercept connection-timeout 300
Router(config)# ip tcp intercept one-minute high 800
Router(config)# ip tcp intercept one-minute low 600
Router(config)# ip tcp intercept drop-mode random

それでは各設定について解説します。

Router(config)# ip access-list extended INTERCEPT
Router(config-ext-nacl)# permit tcp any host 192.168.1.1 eq 80
Router(config-ext-nacl)# permit tcp any host 192.168.1.2 eq 25
Router(config-ext-nacl)# exit
Router(config)# ip tcp intercept list INTERCEPT

TCP Interceptの対象となるサーバをACLで限定しています。

Router(config)# ip tcp intercept mode watch

ルータがTCPコネクションに対して仲介しないようにするにはWatch Modeで設
定します。

Router(config)# ip tcp intercept watch-timeout 120
Router(config)# ip tcp intercept connection-timeout 300

watch-timeoutはクライアントからSYN+ACKの応答が指定された秒間に返ってこ
なかった場合にサーバにRSTを送ります。
ルータはTCPのセッションが300秒間アイドル状態になると、そのセッションを
破棄します。破棄するのは自分自身の管理テーブルにある情報です。
Webやメールはコネクションがすぐに切れるアプリケーションですので、長時
間アイドルとなってしまった通信を管理し続けてもあまり意味がありません。
デフォルトのアイドルタイムアウトは24時間です。

Router(config)# ip tcp intercept one-minute high 800
Router(config)# ip tcp intercept one-minute low 600

Aggressive Modeに切り替わるための値をチューニングしています。1分間の
コネクション要求がhighの値を上回るとAggressive Modeになります。Lowを下
回ると通常の状態に戻ります。この値はあくまで設定練習のための数値なので、
実環境には適用しないでください。

Router(config)# ip tcp intercept drop-mode random

Aggressive Modeでは、デフォルトで古い順からハーフオープンのセッション
が破棄されますが、ここではランダムで破棄されるように設定しています。

Further Reading

DocumentへのLinkです。

Configuring TCP Intercept (Preventing Denial-of-Service Attacks)

By 『Overseas and Beyond』 Koichi

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA