#概要
AWSでEC2インスタンスを作成後、インスタンスの初回起動時の設定について、ターミナルでインスタンスにSSH接続し、セキュリティ対策を行うまでを簡単にまとめます。この記事はEC2インスタンスが作成してあることが前提となっています。
#手順
##ターミナルでインスタンスに接続
ターミナルからSSH接続します。"my-key.pem"が保存されているディレクトリへ移動し、次のコマンドを実行します。"ec2-user@0.0.0.0"は接続するユーザー名とIPアドレスです。IPアドレス部は自分のインスタンスのパブリックIPに合わせてください。
例
ssh -i "my-key.pem" ec2-user@0.0.0.0
必要に応じて、次のコマンドを実行して、キーが公開されていないことを確認します。400の"4"は自分だけしか読み込めないようにするための属性です。
chmod 400 my-key.pem
セキュリティ警告が出たら"yes"と入力してください。初回の接続時のみに尋ねられます。問題なければメッセージが表示され、接続が完了します。
##セキュリティ対策
セキュリティ対策として、"ec2-user"の変更およびSSH待ち受けポート番号の変更を行います。少し違いはありますが、ほとんどココとココを参考にさせていただき、簡単にまとめた記事となるので、詳細はurl先で確認していただいた方がわかりやすいです。
###ec2-user の変更
デフォルトのユーザーが"ec2-user"となっており、セキュリティ対策する必要があります。新しいユーザーを作成し、"ec2-user"をSSHができなくなるよう制限をかけます。
1. "test"には好きな名前を入力してください。
sudo useradd test
2. 作成したユーザーを/home ディレクトリで確認してください。
ls /home
3. ユーザーのパスワードの設定してください。"test"には好きな名前を入力してください。
sudo passwd test
4. 追加したユーザーでsudoコマンドを実行するには、ユーザーをwheel(root権限をもつグループ)というグループに登録する必要があります。
次のコマンドでユーザーをwheelグループに加えましょう。
sudo usermod -aG wheel test
5. wheelに所属しているユーザーは、次のコマンドで確認できます。
less /etc/group | grep wheel
###公開鍵のコピーとパーミッション設定
新規ユーザーでインスタンスへ接続するために、EC2に登録した公開鍵をユーザーのホームディレクトリ配下に登録する必要があります。
1. ec2-userのディレクトリにある公開鍵を、新規ユーザーディレクトリにコピーしてください。
sudo cp -R ~/.ssh/ /home/test/.ssh
2. コピーした .ssh ディレクトリとその配下にあるキーの所有者をec2-userから新規ユーザーへ変更します。
sudo chmod -R go-rwx ~test/.ssh
3. .ssh ディレクトリとファイルのパーミッションを制限します。
sudo chown -R test:test ~test/.ssh
4. 一度インスタンスからログアウトし、新規ユーザーでSSH接続後、rootになれるか確認してください。
ssh -i "my-key.pem" test@0.0.0.0
sudo su -
5. ec2-userでSSH接続ができなくなるようにするため、SSH設定ファイルに追記してください。
echo "DenyUsers ec2-user" >> /etc/ssh/sshd_config
6. 設定後、sshdを再起動します。
systemctl restart sshd
systemctl status sshd
###待ち受けポート変更
SSH接続のデフォルトの待ち受けポートは22番です。セキュリティ対策として別のポート番号に変更することを行います。
1. sshdのコンフィグファイルを開き、1024~49151の範囲内でポート番号を変更します。
sudo vi /etc/ssh/sshd_config
2. 下記を入力し、ポート番号を変更します。
例
Port 11111
3. 変更後、指定したポートをAWSのセキュリティグループで開けてください。
EC2 > セキュリティグループ > 対象のセキュリティグループ選択 > アクション >
インバウンドルールを編集 > ポート範囲に先ほど変更したポート番号(11111)を入力 > ソースをマイIPに変更 > 保存
4. 次回以降、sshする際は次のようにオプション(-p)をつけ、ポート番号を指定する必要があります。
ssh -i "my-key.pem" -p 11111 test@0.0.0.0
以上、インスタンスの初回起動時の設定として、デフォルトユーザーであるec2-userの変更とSSH接続時のポート番号の変更について簡単にまとめました。わかりづらい箇所については、下記の参考を確認していただければ詳細が載っています。
#参考
[参考] 大澤 文孝; 玉川 憲; 片山 暁雄; 今井 雄太. Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版. 日経BP. Kindle 版.
[参考] https://avinton.com/academy/amazon-ec2-vpc/
[参考] https://avinton.com/academy/amazonec2-initial-setting/