外部からapache2にアクセスできない

外部からapache2にアクセスできない

Elastic IP を使用して AWS EC2 (Ubuntu) 上の apache2 サーバーのデフォルト サイトをホストしています。

セキュリティ グループがすべての受信を開くように設定されています (テスト目的)。

パブリック IP を使用して SSH 経由でサーバーにアクセスすることができますが、HTTP 経由ではアクセスできません。

ローカルホストからサイトを閲覧できます( を使用lynx 127.0.0.1)。

同じサブネット上の別の EC2 からサイトを閲覧することもできます。

私の iptables は次のとおりです:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

開いているポート:

tcp               LISTEN             0                  128                                   0.0.0.0:22                                 0.0.0.0:*                                  
tcp               LISTEN             0                  511                                         *:80                                       *:*                                  
tcp               LISTEN             0                  128                                      [::]:22                                    [::]:*                                  
tcp               LISTEN             0                  511                                         *:443                                      *:*  

ファイアウォールは非アクティブです。

また、同じサブネット上でスピンした 2 番目の VM に nginx をインストールしようとしましたが、不思議なことに、ポート 80 の Web サーバーにもアクセスできません。

そこで、別のサブネット上に新しいインスタンスも作成しましたが、HTTP 経由ではまだアクセスできません。ただし、SSH 経由ではアクセスできます。

何が足りないのか分かりません。

アップデート1:

それは非常に奇妙です。そのマシンでは MySQL も実行されており、これもアクセス可能です。ルーティングとセキュリティ グループはすべて正しいようですが、何らかの理由で HTTP および HTTPS トラフィックが何かによってブロックされています。

アップデート2:

VPC でフロー ログをオンにしたところ、ポート 80 のすべてのリクエストが拒否され、22 と 3306 は問題なくアクセスできました。

my.ip.goes.here. 10.1.1.68 64087 80 6 1 64 1694528397 1694528415 REJECT OK

ネットワーク ACLすべての受信と送信を許可するように設定されています:

100 All traffic All All 0.0.0.0/0   Allow
*       All traffic All All 0.0.0.0/0   Deny

セキュリティグループすべてのトラフィックの入出力を許可します:

All Traffic 0.0.0.0/0

ますます奇妙になってきています。

答え1

tspdump を使用してパケットを追跡してみてください。パケットがホストに到着するかどうかは関係ありません。パケットが到着した場合、明らかにサーバー上の何かがパケットをブロックまたは破棄しています。すべてのファイアウォール ルールを完全にリセットするか、または完全にオフにしてください (テスト用)。まず、Web サーバーの設定を確認してください。何かが正しく構成されていない可能性があります。単純な静的ページを挿入し、これらの対策を組み合わせてみてください。間違いなく問題がわかります。

答え2

解決策を見つけました。

ポート 81 で nginx を開きましたが、問題なく動作したので、Web ポートのみがブロックされているに違いないと思いました。

少し調べてみたところ、これは私の EC2 が「EC2 不正使用レポート」で報告されていたためであることがわかりました。

何百万通ものメールの中に、1通のメールがありました。

お客様の AWS アカウントのリソースが不正使用されたとの報告を受けました。その結果、アクティビティを軽減するために、関係するリソースに対して以下の手順を実行しました。

** リージョン内の受信 HTTP ポート 80、8080、443 がブロックされました**

以前、そのリージョンには特定のソフトウェアがインストールされた別の EC2 インスタンスがありましたが、ハッキングされてシャットダウンされました。

それがコンソールの EC2 インスタンスに何らかの形で表示されれば素晴らしいと思います。

関連情報