ヌルルートでサービス拒否(DoS)をブロックする方法
この記事では、サーバーの高負荷の問題を解決するために、サービス拒否(DoS)IPとそのnull routeを見つける方法について説明します。
1. 高負荷
最近、サーバーは異常に高い負荷、CPU使用率のヒット、平均15〜20%に達しました。
#top load average: 15.08, 18.30, 20.63
2. 接続されているのは誰ですか?
これがDOS攻撃なのか、単一のIPだけが接続を悪用するのかわかりませんか? 次のコマンドをlist all the IP addresses connected to my serverに発行します。
#netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head 215 122.163.226.243 189 114.198.236.100 156 120.63.179.245 38 141.0.9.20 37 49.248.0.2 37 153.100.131.12 31 223.62.169.73 30 65.248.100.253 29 203.112.82.128 29 182.19.66.187
以下の3つのIPは150以上の接続を取得していますが、これは本当に異常なことですが、何をしようとしているのですか?
215 122.163.226.243 189 114.198.236.100 156 120.63.179.245
P.S Google above IPs, 2 are from India, 1 from Pakistan.
3. ヌルルート
上記の3つのIPが高負荷の問題の根本原因であると考え、それらのIPをヌルルーティングして、これらの3つのIPからのすべての着信接続がドロップまたは無視されるようにします。
nullルートコマンド
route add 122.163.226.243 gw 127.0.0.1 lo route add 114.198.236.100 gw 127.0.0.1 lo route add 120.63.179.245 gw 127.0.0.1 lo
代替コマンド
次のコマンドを使用してIPをヌルルーティングすることもできます。どちらも同じことを実行します。
route add -host 122.163.226.243 reject route add -host 114.198.236.100 reject route add -host 120.63.179.245 reject
netstat -nr
を使用してすべてのルートを表示し、ルートテーブルに追加されていることを確認します。
# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 114.198.236.100 127.0.0.1 255.255.255.255 UGH 0 0 0 lo 120.63.179.245 127.0.0.1 255.255.255.255 UGH 0 0 0 lo 122.163.226.243 127.0.0.1 255.255.255.255 UGH 0 0 0 lo
完了し、数秒待ってからサーバーの負荷をもう一度確認してください。これで正常に戻りました。
#top load average: 1.08, 5.30, 30.63
接続されているすべてのIPをもう一度確認すると、それらの攻撃者のIPはなくなります。
#netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head 40 141.0.9.20 37 49.248.0.2 36 153.100.131.12 31 223.62.169.73 25 65.248.100.253 29 203.112.82.128 29 182.19.66.187 38 142.0.9.20 28 141.121.9.20 38 141.0.9.201
完了しました。
4. ヌルルートを削除
既存のヌルルートIPを削除するには、route delete
を使用します。
route delete 122.163.226.243 route delete 114.198.236.100 route delete 120.63.179.245
CSF Firewall
サービス拒否(DoS)を防ぐには、CSFをセットアップし、CT_LIMITをlimit the number of connections from IP to access serverに構成してみてください。