ヌルルートでサービス拒否(DoS)をブロックする方法
この記事では、サーバ上の負荷の高い問題を解決するために、DoS(Denial of Service)IPとhttp://en.wikipedia.org/wiki/Null__route[null route]をどのように見つけ出すかについて説明します。
1.高負荷
最近、サーバが異常に高い負荷を受け、CPU使用率が平均15〜20%低下しました。
#top load average: 15.08, 18.30, 20.63
2.誰が接続されていますか?
これがDOS攻撃か、あるいは単一のIPが接続を乱用するかどうかはわかりませんか?
リンク先のコマンド://linux/list-all-ip-addresses-your-server/[私のサーバに接続されているすべてのIPアドレスを一覧表示する]コマンドを発行します。
#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より上のGoogle、2人はインド出身、1人はパキスタン出身。
3.ヌルルート
私は上記の3つのIPが高負荷の問題の根本原因だと信じていました。それらのIPをヌルにすると、それらの3つのIPからのすべての着信接続が破棄されます。
null routeコマンド
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
参考文献
-
link://linux/list-all-ip-addresses-your-serverに接続されています/[全リスト
サーバーに接続されたIPアドレス]。
https://www.liquidweb.com/kb/basic-dosddosmitmit-with-the-csf-firewall/
[Basic
CSFファイアウォールによるDoS/DDoS軽減]
DoS
ip address
リンク://タグ/ヌルルート/[ヌルルート]