以前に 検証用 Amazon Linux2 初期設定メモ(2019/10/10 版) というメモを書きました。 今回は検証用に Amazon Linux 2023 を作る際の初期設定をメモしておきます。 必ずしもセキュリティには十分な配慮をしておらず、あくまで「検証用途」の設定です。
OS バージョンの確認
(これは作業ではありませんが) /etc/os-release
で OS バージョンを確認すると以下のように定義されていました。
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
SUPPORT_END="2028-03-01"
パッケージをアップデートする
パッケージをアップデートします。 カーネルがバージョンアップされている場合、新しいカーネルで起動しなおしたいので、OS を再起動します。 reboot
は systemctl
へのシンボリックリンクになっていますが、実際に OS を再起動する前に sync
する処理が入っている為、明示的に sync
コマンドを実行する必要はありません (勿論、sync
コマンドを実行しても害はありません)。
dnf update
reboot
古いバージョンのカーネルが存在する場合はディスク容量を節約する為に削除しておきます。
dnf -y autoremove
root ユーザでの SSH ログインを許可する
一般的には極めてお勧めされませんが、あくまで検証用途なので root ユーザで SSH ログイン出来るように設定します。 初期自体で /root/.ssh/authorized_keys
は下記のようになっています。
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10;exit 142" ssh-rsa AAA………
これを以下のように変更します。 これで root ユーザで SSH ログイン出来るようになりました。
ssh-rsa AAA………
ec2-user ユーザを削除する
デフォルトで存在する ec2-user
は「デフォルトで存在する = ユーザ名を推測される」為、削除しておきます。
userdel -r ec2-user
ホスト名を変更する
ホスト名を変更しておきます。 現在のホスト名は hostname
コマンドで確認できます。
# hostname
ip-192-168-224-23.ap-northeast-1.compute.internal
ホスト名を変更するには以下のように実行します。
hostnamectl set-hostname [HOSTNAME]
タイムゾーンを Asia/Tokyo へ変更する
現在のタイムゾーン設定は timedatectl
で確認できます。 デフォルトでは未設定であり、UTC 扱いになっていました。
# timedatectl status
Local time: Sat 2023-05-20 22:48:32 UTC
Universal time: Sat 2023-05-20 22:48:32 UTC
RTC time: Sat 2023-05-20 22:48:33
Time zone: n/a (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
タイムゾーンを設定するには timedatectl set-timezone [TIMEZONE]
を実行します。 Asia/Tokyo へ設定するには以下のように実行します。
timedatectl set-timezone Asia/Tokyo
実行後にタイムゾーンを確認すると以下のように、Time zone: Asia/Tokyo
と表示されるはずです。
# timedatectl status
Local time: Sun 2023-05-21 07:49:12 JST
Universal time: Sat 2023-05-20 22:49:12 UTC
RTC time: Sat 2023-05-20 22:49:13
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
プロンプトの色を変更する
一般ユーザのプロンプトは水色 (36) に、root ユーザのプロンプトは赤色 (31) に変更します。
echo "export PS1='\[\033[01;36m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> /etc/profile
echo "export PS1='\[\033[01;31m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\\$ '" >> /root/.bashrc
対話的な alias を無効化する
好みによると思いますが、検証用のインスタンスであればコマンドを実行する度に対話的な確認は不必要なので、alias を無効化しておきます。
sed -i -e "s/alias rm='rm -i'/#alias rm='rm -i'/g" /root/.bashrc
sed -i -e "s/alias cp='cp -i'/#alias cp='cp -i'/g" /root/.bashrc
sed -i -e "s/alias mv='mv -i'/#alias mv='mv -i'/g" /root/.bashrc
SELinux を無効化する
Amazon Linux 2023 ではデフォルトで SELinux が (disabled ではなく) permissive に設定されています。
パラメータ | 意味 |
---|---|
enforcing |
ポリシーに違反する動作を拒否します |
permissive |
ポリシーに違反する動作を許可はしますが、記録します |
disabled |
SELinux を無効化します |
permissive
であれば「ポリシーに違反していても動作はする」ので検証には問題無いのですが、検証環境であればポリシー違反動作も記録する必要は無いので SELinux を無効化します。
sed -i -e "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
SELinux の設定変更を反映する為に OS を再起動します。
reboot
コメント