🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

2057閲覧

不正アクセスを排除する方法について

k.t.est

総合スコア49

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/11/23 02:22

公開しているwebアプリに特定のipから不正なアクセスを受けていると思われるlogがありました。
これらのipアドレスからのアクセスを拒否するために、VPCのネットワークACLの設定で、IPアドレス「3.114.205.48」と「52.193.114.46」をアクセス拒否するように設定したのですが、設定後も変わらず下記のようなエラーが表示されております。
どのように対策すればよろしいでしょうか?
ご教示いただけましたら幸甚です。

error

1*134907 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: xxxxxxx, server: example-example.com, request: "GET /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "3.114.205.48", referrer: "http://3.114.205.48:80/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php" 2 3*135234 open() "/path/to/wp-content/plugins/wp-file-manager/readme.txt" failed (2: No such file or directory), client: xxxxxxx, server: example-example.com, request: "GET /wp-content/plugins/wp-file-manager/readme.txt HTTP/1.1", host: "52.193.114.46", referrer: "http://52.193.114.46:80/wp-content/plugins/wp-file-manager/readme.txt"

##実行した対策
VPCのネットワークACLでこの2つのIPアドレスのアクセスを禁止しました。

ルール #  タイプ         プロトコル  ポート範囲  送信元       許可 / 拒否 97     すべての トラフィック   すべて   すべて   52.193.114.46/32 DENY 98     すべての トラフィック   すべて   すべて   3.114.205.48/32  DENY

##環境

  • 構成 : ALB + EC2運用
  • webサーバー : nginx

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ログに残ったhost:は、HTTP通信のときに指定されたHost:ヘッダの値だと思われます。アクセス元のIPアドレスと一致するものではありません。

nginxの設定で、正しいHost:が来た場合だけ応答するようにするのも一案です。

投稿2020/11/23 08:44

maisumakun

総合スコア145965

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k.t.est

2020/11/23 09:57

ご回答ありがとうございます!
k.t.est

2020/11/23 09:59

今回はとりあえずIP直打ち対策を施して様子見をしたいと思います、これでもダメな場合はALBによるHOSTルールを追加で設定することを試みたいと思います。 直IP対策参考サイト https://4thsight.xyz/1093
k.t.est

2020/11/23 10:13

上記直IPアドレス対策参考サイトの通りに設定すると、unhealthyになってしまうことが分かりました。 下記サイトのようにすれば対策できそうですが、設定が色々と面倒そうなので、別の方法がないか模索したいと思います。 https://hit.hateblo.jp/entry/elb/direct-ip/deny
maisumakun

2020/11/23 10:17

ALBに来る時点で対策してしまえば、それより内側のヘルスチェックには影響せずに済むかと思います。
k.t.est

2020/11/24 01:54

ご回答ありがとうございます! ロードバランサーのリスナーの設定で、デフォルトアクション(最後)の設定を固定レスポンスを返すにして、403を返すようにしました。 また、デフォルトアクションの手前の設定で正しいホスト名の時のみにターゲットグループにトラフィックを振り分けるように設定しました。 これで少し様子を見てみたい思います。
k.t.est

2020/11/25 07:44

無事不正なホスト名でアクセスされた場合の対応はできましたが、今度は正しいホスト名で不正アクセスを受けるようになりました。。。また対応方法を考えたいと思います。
maisumakun

2020/11/25 08:36

> 今度は正しいホスト名で不正アクセスを受けるようになりました インターネットに置いてあるサーバに対して、何かしらの不正アクセスがあるのは宿命と言えるものです。アクセス自体を弾けなくても、それで不適切な情報を返す、サービスを止めるほどのリクエストがあるなどの害が出る状況でなければ、とりあえずは問題ありません。
guest

0

自己解決

maisumakun様のご指摘通り、ALBの設定で正しいホストからだけのアクセスを受けるとするのが最も良い方法と思われます。
nginxの設定で対応しようとすると、ALBの絡みで色々とエラーが発生し得るので、ご注意ください。

投稿2020/11/25 07:42

k.t.est

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問