
どうも、けんけんです。
ここ最近、サイトのデザインリニューアルを細々と進めているところなのですが、つい先程、サイト運営に使っている「Amazon EC2」で「502 Bad Gateway」が発生しました。
どうにか問題を解決できたので、今後の備忘録も含めまとめておこうと思います。
スポンサードリンク
項目別に読む
突然、「502 Bad Gateway」発生

サイトを巡回中、突然個別ページにて「502 Bad Gateway」が発生しました。
最初は個別ページだけかと思いましたが、トップページでも同じことが発生し、スマートフォンで見た際にも同様だったため、サーバーに何かが起きたな、と思いました。
すぐに「EC2 502 Bad Gateway」で検索をかけ、参考記事を調べました。
原因は海外からのDos攻撃だった
以下の記事を参考にEC2のサーバーを調査。
参考:またもこのブログ(word press)で「bad gateway 502エラー」がでました。
サーバー内のログを確認
EC2のサーバーにコンソールからログインし、
ll /var/log/nginx
でログファイルを確認します。
「error.log」なるファイル名があったので、中身を確認してみました。
特定のIPアドレスからの短時間での大量アクセスを確認

ところどころ省略をしていますが、これでもほんの一部です。
本日20:48〜20:49の間に347回のアクセスがありました。
IPアドレス部分を抜き出したところ、
185.188.204.9 185.188.204.22 185.188.204.12 185.188.204.7 185.188.204.11 185.188.204.6 185.188.204.10 185.188.204.20 185.188.204.16 185.188.204.14 185.188.204.8 185.188.204.15 185.188.204.25 185.188.204.27 185.188.204.18 185.188.204.21
すべて、「185.188.204.○○」というIPアドレスからのアクセス。
そりゃ、サーバーも落ちますよね。
念のため、アクセス元を調べてみた
念のため、以下のようなIPアドレスの逆引きサイトを使ってアクセス元を調べてみました。
参考:IPひろば

海外からのアクセスでした。
iptablesを使って特定IPアドレスからのアクセスをブロック
ここで手に入れたIPアドレスからのアクセスをブロックします。
以下サイトによると、iptablesというものを使えばできるらしい。
参考:Amazon EC2でDoS/DDoS攻撃をブロックする – iptables –
sudo iptables -t filter -I INPUT -p tcp -s 【ブロックしたいIPアドレス】 --dport 80 -j DROP
といったコマンドでブロックできるみたいです。
iptablesの設定確認
設定後の、iptablesの状態は、
sudo /etc/init.d/iptables status
で確認することができます。
Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP tcp -- 185.188.204.27 0.0.0.0/0 tcp dpt:80 2 DROP tcp -- 185.188.204.25 0.0.0.0/0 tcp dpt:80 3 DROP tcp -- 185.188.204.15 0.0.0.0/0 tcp dpt:80 4 DROP tcp -- 185.188.204.8 0.0.0.0/0 tcp dpt:80 5 DROP tcp -- 185.188.204.14 0.0.0.0/0 tcp dpt:80 6 DROP tcp -- 185.188.204.16 0.0.0.0/0 tcp dpt:80 7 DROP tcp -- 185.188.204.20 0.0.0.0/0 tcp dpt:80 8 DROP tcp -- 185.188.204.10 0.0.0.0/0 tcp dpt:80 9 DROP tcp -- 185.188.204.6 0.0.0.0/0 tcp dpt:80 10 DROP tcp -- 185.188.204.11 0.0.0.0/0 tcp dpt:80 11 DROP tcp -- 185.188.204.7 0.0.0.0/0 tcp dpt:80 12 DROP tcp -- 185.188.204.12 0.0.0.0/0 tcp dpt:80 13 DROP tcp -- 185.188.204.22 0.0.0.0/0 tcp dpt:80 14 DROP tcp -- 185.188.204.9 0.0.0.0/0 tcp dpt:80
先程のIPアドレスがブロックの対象に入っていますね。
さいごに
コマンドを実行してから先程お見せしたエラーログは発生しなくなり、サイトにも今まで通りアクセスできるようになりました。
焦りましたが、短時間で復活させることができ、ほっとしています。早く気付けて良かったです。
それにしても大量アクセスでサービスを停止させようとするとは許せませんね。
今後も同様のことがあったら同じ方法で対処しようと思います。
皆様もお気をつけくださいませ。
以上、けんけんでした。