サーバーダウンの通知がくる
あるとき、突然、サーバーダウンのアラートが鳴る。
ping,POP,SMTP,HTTP(S),FTPが、反応しない。
というエラー・・・
外部からチェックすると、たしかに、反応が鈍い。
時々、スムーズ。
時々、反応が悪い。
この「時々」がやっかいである。
サーバーダウンの原因を探る
サーバー外部の原因
・ルーティングがおかしい?
・物理的な故障?
などが発生しているのか?
と思い、サポートページを開いても、障害情報が出ていない。
サーバー内部の原因
・アクセスがすごい(負荷が高い)
・OSが異常な動作をしている。
などか。と思い、アクセスログをチェック。
「htop」コマンドで、チェック。
/var/log/messagesをチェック。
などをチェックしても、問題ないような気がする・・・
DDOS攻撃?
DDOS攻撃なのかな?
と思い、
netstatコマンドで調べる
# netstat -tan tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.242:20912 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.131.33:9439 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.242:36909 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.131.61:25841 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.242:52377 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.131.33:53565 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.131.40:37623 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.242:30023 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.239:19829 SYN_RECV tcp 0 0 127.0.0.1:56412 127.0.0.1:6379 TIME_WAIT tcp 0 0 127.0.0.1:6379 127.0.0.1:56416 TIME_WAIT tcp 0 1 XXX.XXX.XXX.XXX:443 zzz.zzz.zzz.zzz:51704 FIN_WAIT1 tcp 0 0 127.0.0.1:6379 127.0.0.1:56420 TIME_WAIT
上記の、2行目からの
XXX.XXX.XXX.XXX:25
の部分。この部分が、DDOS攻撃のチェックポイント。
25番のSMTPポートにアクセスがある・・・
XXX.XXX.XXX.XXX
は、このサーバーのグローバルIPアドレス。
攻撃元のIPアドレスは、右側の
YYY.YYY.154.242
の部分。
このIPアドレスを
ドメイン/IPアドレス サーチ 【whois情報検索】
で、検索してみます。
海外であること、など、通常、絶対にアクセスがないであろう。
ということをチェックします。
アクセス元を遮断
firewall-cmd --zone=drop --permanent --add-source=YYY.YYY.131.32/27
↑firewallコマンドで、攻撃元のIP帯(/27)をブロックします。
# systemctl restart firewalld.service
↑サービスを再起動
#firewall-cmd --get-active-zones drop sources: YYY.YYY.154.224/27
↑DDOS攻撃元からブロックされているのを確認します。
# netstat -tan tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.243:25743 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.239:33165 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.243:5871 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.243:41952 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:25 YYY.YYY.154.242:48362 SYN_RECV tcp 0 0 XXX.XXX.XXX.XXX:587 zzz.zzz.zzz.zzz:55074 TIME_WAIT tcp 0 0 127.0.0.1:6379 127.0.0.1:56560 TIME_WAIT tcp 0 0 127.0.0.1:6379 127.0.0.1:56564 TIME_WAIT
↑ブロックしたIP帯から、DDOS攻撃が無くなりました。
もう一つのIP帯からも、DDOS攻撃のアクセスをブロックします。
# firewall-cmd --zone=drop --permanent --add-source=YYY.YYY.154.224/27 # systemctl restart firewalld.service # firewall-cmd --get-active-zones drop sources: YYY.YYY.131.32/27 YYY.YYY.154.224/27
これで、DDOS攻撃が無くなったはず・・・
# netstat -tan
で、再チェックします。
そして、ping,pop,smtp,http(s),ftpが、正常に戻りました。
DDOS攻撃を予防・・・
DDOS攻撃を防ぐには、
fail2banというサービスがあります。
これは、またの機会に・・