検証用 Amazon Linux 2023 初期設定メモ(2023/05/08 版)
以前に 検証用 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 コマンドを実行しても害はありません)。
古いバージョンのカーネルが存在する場合はディスク容量を節約する為に削除しておきます。
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 ログイン出来るようになりました。
ec2-user ユーザを削除する¶
デフォルトで存在する ec2-user は「デフォルトで存在する = ユーザ名を推測される」為、削除しておきます。
ホスト名を変更する¶
ホスト名を変更しておきます。 現在のホスト名は 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 へ設定するには以下のように実行します。
実行後にタイムゾーンを確認すると以下のように、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 を無効化します。
SELinux の設定変更を反映する為に OS を再起動します。