web-dev-qa-db-ja.com

Linux / Apache Webサーバーでの攻撃的なクライアントの自動禁止/スロットルを一定期間行うための最良の方法は?

サーバーの負荷がときどき急上昇し、アクセスログを確認すると、コメント/返信URLに繰り返しアクセスしようとする自動フォーラムポスターのパターンに気づきました。これらを数分/時間抑制/禁止する最良の方法は何でしょうか?たとえばCSFはこのようなsgを行うことができますか?私は本当に迅速で汚い解決策を探しています。

2
giorgio79

そのためにIptablesを使用できます。

並列接続のブロック:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit \
     --connlimit-above 20 -j REJECT --reject-with tcp-reset

フラッドのブロック(1分あたり10を超える接続をブロック):

iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent \
   --update --seconds 60 --hitcount 10 -j DROP