TCP SYN flood 攻撃対策についてメモ。

SYN flood攻撃とは、TCP接続:3ウェイ・ハンドシェイクの仕組みを悪用し、サーバーのメモリ領域を飽和させダウンさせる仕組みらしい。

3ウェイ・ハンドシェイクの以下の部分。

・サーバーは、クライアントから SYN パケットを受け取った際、クライアントの情報を記憶するメモリを確保する。
・サーバーは、クライアントに ACK パケットを返した後、数十秒間クライアントの ACK 応答を待つ必要がある。

ここを悪用しているみたい。つまるところ。

クライアントが、サーバーからの ACK パケット を無視し、かつ短時間に大量に SYN パケット送信を行うと、
サーバーは、クライアントの情報をメモリに確保し続け、最終的に使用できるメモリがなくなる。

その結果、正常に繋ごうとする人が繋げなくなり、ダウンしたように見える。(システムによってはクラッシュまで)

対策として、SYN cookies といった手法がある。

簡単に把握した感じでは、クライアントからの SYN パケット時にメモリを確保せずにシーケンス番号を送り、
クライアントから帰ってきた ACK パケットを元にシーケンス番号の照合を行い、メモリを確保する。

ただしこの対策は、通常時に行われると弊害が多いので、SYN flood 状態時のみ行われる。

なるほどー。

設定的には、

# sysctl -w net.ipv4.tcp_syncookies=1
net.ipv4.tcp_syncookies = 1

とすれば良いみたい。

 

セキュリティ設定を行ったメモ。

以下の参考サイトを見ながら行って、特につまづくことなく終了した。

ファイル改竄検知システム導入(Tripwire)

rootkit検知ツール導入(chkrootkit)

アンチウィルスソフト導入(Clam AntiVirus)

こういった構築メモは、本当にありがたいっす。

とりあえず今日はここまで。

Linuxはシャットダウンして、YouTube にある内村さま〜ずの続きを見よう。

個人的にバナナマンの回が好き。Podcastを聞いてからけっこうバナナマンのファン。

設楽さんの仕切りは絶品っすねー。

いやー話がそれた。

明日は、iptables の設定をする。