突然サイトが502 Bad Gatewayに!Amazon EC2で特定のIPアドレスからのアクセスをブロックする方法

最終更新日:

どうも、けんけんです。

ここ最近、サイトのデザインリニューアルを細々と進めているところなのですが、つい先程、サイト運営に使っている「Amazon EC2」で「502 Bad Gateway」が発生しました。

どうにか問題を解決できたので、今後の備忘録も含めまとめておこうと思います。

SPONSORED LINK

突然、「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アドレスがブロックの対象に入っていますね。

さいごに

コマンドを実行してから先程お見せしたエラーログは発生しなくなり、サイトにも今まで通りアクセスできるようになりました。
焦りましたが、短時間で復活させることができ、ほっとしています。早く気付けて良かったです。

それにしても大量アクセスでサービスを停止させようとするとは許せませんね。
今後も同様のことがあったら同じ方法で対処しようと思います。

皆様もお気をつけくださいませ。
以上、けんけんでした。

Categories:
Tags:
記事が気に入ったらシェアお願いします!