[AWS] ec2にWebサーバを構築する④ 〜ファイアウォールを設定する〜

2023/1/13

AWS
Apache

AWSで作成したec2インスタンスにApacheをインストールしてWebサーバを構築したのでまとめてみました。
今回はファイアウォールを設けて接続を制限していきます。

前回までの記事はこちらになります。

  1. [AWS] ec2にWebサーバを構築する① 〜VPCを作成する〜
  2. [AWS] ec2にWebサーバを構築する② 〜インターネットに接続する〜
  3. [AWS] ec2にWebサーバを構築する③ 〜インスタンスを構築する〜

インスタンスのセキュリティグループ

実世界でパケットフィルタリングを構成するのは、ルータやサーバ、もしくは専用のファイアウォール機器です。
AWSではインスタンスに対して構成する「セキュリティグループ」がこの機能を担当します。
セキュリティグループの構成は「セキュリティグループ」メニューから確認できます。

001.png

デフォルトの構成では「ポート22に対して全ての通信を(0.0.0.0/0)許可する」と言う設定がありますが、それ以外の設定はありません。
つまり、ポート22を用いているSSHだけが通信でき、それ以外の通信はできません。
それでは、実際にSSH通信だけが通信を許可されているか確認してみましょう。

SSHで接続する

パブリックIPアドレスに対してSSHで接続します。
パブリックIPアドレスは「パブリックIP」の部分で確認できます。

002.png

接続の確認

ターミナルを起動して、次のコマンドを入力します。

ssh -i my-key.pem ec2-user@35.77.33.218

ウェルカムメッセージが表示されていれば、接続に成功しています。

003.png

待ち受けているプログラムとポートの状態の確認

どのポートでどのようなプログラムを待ち受けているかは「lsof」コマンドで確認できます。

ターミナルを起動して、次のコマンドを入力します。

sudo lsof -i -n -P

「LISTEN」と表示されているのが他のコンピュータからの待ち受けをしているポート、「ESTABLISHED」と表示されているのが他のコンピュータと通信中のポートとなります。
ポート25はメールの送信や転送をする通信プロトコル「SMTP」で使用されるポートです。
「127.0.0.1:25」と表示されていることから、ポート25ではIPアドレスが「127.0.0.1」のコンピュータからのみ待ち受けます。
「127.0.0.1」は「ループバックアドレス」と呼ばれ自分自身を示す定義済みのIPアドレスであるため、ポート25では自分自身以外の他のコンピュータからは通信を受け付けないことが分かります。
ネットワークに接続された機器を安全に遠隔操作する通信プロトコル「SSH」では、「*:22」と表示されており、全てのコンピュータから待ち受けていることが分かります。
以上のことから、今回作成したインスタンスでは「SSH通信だけが通信を許可されている」ことが確認できました。

004.png

今回はここまでです。
次回はApacheをインストールしていきます。

Related Posts

[AWS] ec2にWebサーバを構築する① 〜VPCを作成する〜

[AWS] ec2にWebサーバを構築する① 〜VPCを作成する〜

[AWS] ec2にWebサーバを構築する② 〜インターネットに接続する〜

[AWS] ec2にWebサーバを構築する② 〜インターネットに接続する〜

[AWS] ec2にWebサーバを構築する③ 〜インスタンスを構築する〜

[AWS] ec2にWebサーバを構築する③ 〜インスタンスを構築する〜

[AWS] ec2にWebサーバを構築する⑤ 〜Apacheをインストールする〜

[AWS] ec2にWebサーバを構築する⑤ 〜Apacheをインストールする〜