netstatとiptablesを使用して、DOS攻撃を防ぐlinuxコマンド


11

ddos攻撃を防ぐために、IPごとに200以上のリクエストをドロップします。これは、IPごとのリクエストカウントを検出するために使用したコマンドです。

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

今、私は入力と出力を削除するためにIPtablesに200以上のリクエストを行ったすべてのIPアドレスを追加したい。


@dawudが述べたように、サーバーへのDDOS攻撃を完全に防ぐことはできません。
カプタン14年

回答:


12

iptablesを使用して、着信接続のレートを制限することもできます。たとえば、ソースから1分あたり200を超える接続が必要ない場合:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


1
これについても説明しておくといいでしょう。
フレドリング14

18

を作成できますipset。これにより、iptablesルールセットを変更せずに、必要な数だけIPをセットに追加できます。

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

または、あなたの場合、スクリプトの出力を使用し、次のようなものでそれを読んでください:

while read a; do ipset -A myset "$a"; done < <(your script here)

そして、あなたのiptablesルールでそれを参照してください:

iptables -A INPUT -m set --set myset src -j DROP

詳細とオプションについては、マンページ参照してください。

直接使用してDDOS攻撃を軽減する他の方法もありますiptables。およびモジュールiptablesに関するマンページのセクションをお読みください。connlimitrecent


ipsetsはハッシュテーブルなどの代替手段よりもはるかに高速であるため、これは素晴らしいです。
isuldor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.