【セキュリティ2026 #8】ファイアウォールを全開放してみよう

演習準備

IAMロールを作成する

演習で使う、IAMReadOnlyAccessを付与するIAMロールを作成します。

検索からIAMのダッシュボードに入り、左側の「ロール」を選択し、「ロールを作成」をクリックします。

Image in a image block

「AWSのサービス」から「EC2」を選び、次へ進みます。

Image in a image block

「IAMReadOnlyAccess」を検索し、チェックを入れて次に進みます。

Image in a image block

ロール名をemtg-security(例)にして、他は変更せずに次へ進みます。

Image in a image block

以上でIAMロールが作成できました。

VPCを作成する

検索からVPCのダッシュボードに入り、「VPCを作成」をクリックします。

Image in a image block

VPCの作成のコンソールが表示されたら、作成するリソースにVPCなどを選択し、以下の表に従って設定してください。

記載の無いものはデフォルト値です。

作成するリソース VPCなど
名前タグの自動生成 emtg-security
アベイラビティゾーンの数 1
Image in a image block

EC2を立ててSSHする

EC2のダッシュボードに入り、東京リージョンであることを確認して、「インスタンスを起動」をクリックします。

Image in a image block

名前 emtg-security
Amazon マシンイメージ (AMI) Amazon Linux 2023 kernel-6.18 AMI
インスタンスタイプ t3.micro 無料枠の対象
Image in a image block

新規にキーペアを作成します。鍵ファイルがダウンロードされると思いますので、残しておいてください。

キーペア 新しいキーペアの作成
キーペア名 emtg-security
キーペアのタイプ RSA
プライベートキーファイル形式 .pem
Image in a image block

ネットワーク設定で「編集」をクリックして以下の通りにしてください。

※ネットワーク的に隔離されているVPCで試しましょう。ここでは、他にリソースの無いVPCemtg-security-vpcを用います。

VPC emtg-security-vpc
サブネット emtg-security-subnet-public1-ap-northeast-1a
パブリック IP の自動割り当て 有効化
ファイアウォール (セキュリティグループ) セキュリティグループを作成
セキュリティグループ名 emtg-security
インバウンドセキュリティグループのルール 後述
Image in a image block

ここまで入力したら、その状態で左下の「CloudShell」をクリックしてください。

しばらくするとシェルが立ち上がるので、curl http://checkip.amazonaws.com/ と入力し、出てきたipアドレスをセキュリティグループのルールに追加します。(画像を参考に変更してください)

タイプ カスタムTCP
ポート範囲 12322
ソースタイプ カスタム
ソース [調べたIPアドレス]/32
説明 cloudshell
Image in a image block

「高度な詳細」を選択し、一番下の「ユーザーデータ - オプション」に以下を入力します。

#!/bin/bash
echo "Port 12322" >> /etc/ssh/sshd_config
systemctl restart sshd
Image in a image block

今までの設定が合っているかもう一度確認し、右にあるオレンジの「インスタンスを起動」をクリックします。

すぐに成功するはずです。真ん中の「インスタンスに接続」をクリックします。

Image in a image block

別のタブに飛びますが、CloudShellも同時に見えるはずです。(なければ左下から出してください)

Cloud shellの「アクション」から「ファイルのアップロード」をクリックし、以下のpemファイルをアップロードして下さい。

Image in a image block

アップロード成功後、シェルでchmod 400 emtg-security.pem を叩いてください。

その後、画面に表示されているコマンド例をコピーして、後ろに -p 12322 をつけて実行します。

Image in a image block

繋がらない場合は少し待ったり、一旦Ctrl-Cで抜けてもう一度叩きなおしたりしてください。

fingerprintについてきかれたらyesを叩いてください。

これで、今作ったEC2にSSHできます。

パッケージのアップデート(脆弱性対策)

コマンドで以下を実行してください。

sudo dnf upgrade -y

実行後の画面を運営に見せてください。

演習:IAMロールの付け外しをしてみる

まずは権限が無い状態でIAMロールの一覧を取得するコマンドを叩いてみましょう。

aws iam list-roles

恐らく、aws configureコマンドを使って資格情報を設定せよというエラーがでます。

これは、使っているEC2にiamの参照権限がないためです。

※実際に書いてある通りにaws configureコマンドで資格情報を設定することも可能ですが、資格情報がサーバ内に残ることなります。

次に、準備で作成したIAMロールをEC2インスタンスに付与します。

検索からEC2ダッシュボードに入り、東京リージョンであることを確認して、「インスタンス(実行中)」にはいります

自分のインスタンスのインスタンスIDをクリックしてください。

セキュリティタブの「IAMロール」を見て、現状IAMロールが何も設定されていないことを確認してください。

Image in a image block

上の「アクション」「セキュリティ」「IAMロールを変更」をクリックします。

Image in a image block

自分が作ったIAMロールemtg-securityを選択し、「IAMロールの更新」をクリックします。

Image in a image block

これでEC2にIAMロールを設定できました。

もう一度IAMロールの一覧を取得するコマンドを叩いてみましょう。

aws iam list-roles

たくさん出てくると思います。grepで絞り込んで、今回作ったものを探してみてください。

また、aws iam list-users とするとIAMユーザの一覧を見る事もできます。
※他にも見る事ができるので、コマンドオプションを調べて他にもやってみて良いです。

終わったら、上の手順でiamロールを外してください。

演習:ポート全開放してみる

アクセスログを見る

まずは通常設定でのアクセスログを見てみます。

ip lコマンドで、ネットワークインターフェースがensN(Nは数字)であることを確認します。

何も変えてなければ、似たような表示になるはずです。

[ec2-user@ip-10-0-6-113 ~]$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 06:f3:50:47:5a:21 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname eni-0c9b24b8cc2b04305
    altname device-number-0.0

ens5を自身のインタフェース名に変えて、以下のコマンドを叩いてください。(sshで使っている12322ポート以外のパケットを見る)

sudo tcpdump -i ens5 -n not port 12322

しばらく眺めてください。NTPやARPのパケットが流れているのがわかります。

通常設定でどのようなパケットが飛んでいるのかを覚えておいてください。

ポート全開放する

IAMの時と同様の手順で、インスタンスの管理画面に入ります

「セキュリティ」タブのセキュリティグループから、作成したセキュリティグループの設定画面に移動します。

Image in a image block

「インバウンドのルールを編集」をクリックします。

Image in a image block

この状態で、cloudshellでサーバ操作ができる事を確認してください。

⚠️
インバウンドルール(ファイアウォール)を全開放します
指示をするまでは実行しないでください
・実行前に、EC2削除手順を理解しておいてください。
・通常は(特にサービス環境では)絶対にやってはいけません。
・解放中は目を離さず、用事が済んだらすぐにEC2を削除してください。

「ルールを追加」を押し、「すべてのトラフィック」「Anywhere-IPv4」を選択します。

Image in a image block

シェルでsudo tcpdump -i ens5 -n not port 12322 を叩いて、準備ができたら「ルールを保存」をクリックします。

観察をする前に、「インバウンドのルールを編集」をクリックして再度ルールの設定画面に行き、削除ボタンを押して、「ルールを保存」を押すだけでポートが閉じられるようにしてください。

その状態で、シェルに流れてくるパケットの一覧をしばらく眺めてみてください。

気が済むまで眺めたら、「ルールを保存」を押して、ポートを閉じてください。

アクセスしてきたIPを見てみよう

https://www.abuseipdb.com/

このサイトでは、IPアドレスへの通報数や信頼性を見ることができます。

下の情報では、DigitalOceanというクラウド事業者のサーバからブルートフォース攻撃を中心とした通報を多数受けていることが分かります。

ポートを叩いてきたIPアドレスについて、AbuseIPDBで調べてみてください。

Image in a image block

お片付け(なるべく早く)

作成した以下について削除をお願いします。

  • EC2 (優先)
  • セキュリティグループ
  • VPC
  • IAMユーザ