連載
» 2010年07月14日 00時00分 公開

iptablesテンプレート集 改訂版(7):iptablesでできるDoS/DDoS対策 (3/3)

[鶴長鎮一,@IT]
前のページへ 1|2|3       

iptablesを使わずにLinuxでできるDoS/DDoS対策

 LinuxのカーネルパラメータにはDoS/DDoS対策に有効なものがあります。これを用い、iptablesを使わずにDoS/DDoS対策を行う方法を解説します。最近のディストリビューションならば標準で対策されているため、追加設定は不要です。

SYNクッキーを有効にする(SYN攻撃対策)

 以前テンプレート3で、パケットのステートフル性を確認する方法を紹介しました。ステートフル性を確認することで、3ウェイハンドシェイクを満たさないパケットを破棄できます。

 しかし、SYN→SYN/ACK→ACKを完了していながらデータを送信してこない「コネクション完了型」のアタックに対して、この手法は役に立ちません。そこで、「SYN cookies(SYNクッキー)」を使用します。SYNクッキーを使用することで、ACKの中に含まれる確認応答番号を計算し、正しいセッションであることを確認できます。セッションの正当性を確認してから処理を行うことにより、無駄な処理でコネクションなどのリソースが費やされるのを防ぐことができます。

 LinuxでSYNクッキーが有効になっているか否かは、/proc/sys/net/ipv4/tcp_syncookiesファイルの内容で確認できます。「1」と書き込まれていれば有効になっています。有効になっていない場合は、以下のコマンドで有効にすることができます。

# echo '1' > /proc/sys/net/ipv4/tcp_syncookies
  または、
# sysctl -w net.ipv4.tcp_syncookies=1
SYNクッキーを有効にする

 ただし、上記の方法ではマシンを再起動すると設定が消えてしまいます。再起動後もSYNクッキーを有効にするには、/etc/sysctl.confファイルに以下の行を追記します。

net.ipv4.tcp_syncookies=1 ←追加
/etc/sysctl.confで再起動後も設定を有効にする

 SYNクッキーを有効にするとACKの中に含まれる確認応答番号を計算するため、パケット処理において多少オーバーヘッドが発生します。パケットの流量によっては、CPUの処理能力がネックになる可能性があることを覚えておきましょう。

ブロードキャストpingに答えない(Smurf攻撃対策)

 Smurf攻撃は、ターゲットにしたホストに対して、送信元アドレスを偽造したICMP pingエコーを大量に送り付ける攻撃方法です。pingエコーを特定のホストではなくブロードキャストアドレスに対して送信した場合、そのネットワーク上のすべてのコンピュータから応答パケットが投げ返されます。Smurf攻撃はこれを悪用するため、Linux側でブロードキャストpingに答えないようにします。

# echo '1' > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  または、
# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
ブロードキャストpingに応答しない

 マシン再起動後も設定を有効にするには、/etc/sysctl.confファイルに以下の行を追記します。

net.ipv4.icmp_echo_ignore_broadcasts=1 ←追加
/etc/sysctl.confで再起動後も設定を有効にする

次回予告

 テンプレートを利用したiptablesの解説は今回が最後です。最終回ではitablesを快適に使うためのTipsを紹介します。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。