AWS EC2 Amazon Linux環境の初期設定まとめ

EC2で建てたAmazon Linux環境の初期設定、今後も応用できる内容と思うので記事にまとめます。

インスタンス作成と鍵の設定など完了し、SSHできる状態という前提で整理します。

ユーザの追加とパスワード設定

デフォルトユーザは既知の情報のためセキュリティーホールとなります。なので新規ユーザを作成します。

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

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

ユーザをwheelグループに追加

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

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

公開鍵の設定

作成したユーザでsshできるように公開鍵を設定します。

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

その後一旦ログアウトし、作成したユーザでssh、rootになれることを確認。

ssh -i ~/.ssh/secret_key.pem user_name@fqdn
sudo su -

ec2-userのsshを禁止

デフォルトユーザ(ec2-user)でのsshができないようにします。

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

sshdの待ち受けポート番号変更

sshd_configを開き、Listen Portを修正します。合わせて、ここで変更した番号をセキュリティーグループで解放する必要があります。

sudo vi /etc/ssh/sshd_config

# デフォルトListen Portを修正
# 例: Port 22 → Port 54321

LC_CTYPEのエラー修正

Amazon Linuxへsshした後のようこそ画面で、LC_CTYPE関連のエラーが出る場合は/etc/environmentに下記を追記します。

sudo vi /etc/environment

# 下記を追記
LANG=en_US.utf-8
LC_ALL=en_US.utf-8

パッケージの自動更新設定

セキュリティーパッチは手動での更新が大変なので、自動で更新するように設定します。

https://hodalog.com/yum-cron-in-amazon-linux/

タイムゾーン変更

デフォルトだとUTCになっているので日本時間に修正します。

timedatectl status
sudo timedatectl set-timezone Asia/Tokyo

まとめ

個人でやっていると作り直すことは稀なので初期設定方法は忘れがちですが、このようにまとめておけば安心ですね。