EC2インスタンス起動後に必要なセキュリティ設定

2021/03/30に公開

EC2 に SSH でログインした後、最低限必要な設定をまとめます。

ユーザ設定

ユーザ追加、パスワード設定

# ユーザ追加とパスワード設定
sudo useradd hogehoge
sudo passwd hogehoge

wheel グループに追加

作成したユーザのディレクトリを確認

# wheelグループに追加
sudo usermod -aG wheel hogehoge

# wheelに所属しているユーザーの確認
less /etc/group | grep wheel

公開鍵設定

# 公開鍵のコピーとパーミッション設定
sudo cp -R ~/.ssh/ /home/hogehoge/.ssh
sudo chown -R hogehoge:hogehoge /home/hogehoge/.ssh
sudo chmod -R go-rwx /home/hogehoge/.ssh

SSH 設定

ec2-user へ直接 ssh を禁止

sudo echo "DenyUsers ec2-user" >> /etc/ssh/sshd_config
sudo systemctl restart sshd

SSH ポート変更

sudo vi /etc/ssh/sshd_config

# デフォルトListen Portを修正
# Port 22
Port 12345

sshd を再起動しておきます

sudo systemctl restart sshd

※指定したポートは AWS の Security Group で開けておいてください

セキュリティパッチの自動実行設定

賛否両論ありますが yum update を定期的に実行してくれる設定をします。

sudo yum install yum-cron

# 設定ファイルのバックアップ
sudo cp /etc/yum/yum-cron.conf /etc/yum/yum-cron.conf.backup

# sed コマンドで書き換え
sudo sed -i "s/^update_cmd.*$/update_cmd = security/g" /etc/yum/yum-cron.conf
sudo sed -i "s/^apply_updates.*$/apply_updates = yes/g" /etc/yum/yum-cron.conf

# yum-cronの起動と自動起動の設定
# 起動
sudo systemctl start yum-cron

# 自動起動の設定
sudo systemctl enable yum-cron

# ステータスの確認
systemctl status yum-cron

タイムゾーンの変更

timedatectl status
sudo timedatectl set-timezone Asia/Tokyo

Discussion