Skip to content

検証用 Amazon Linux 2023 初期設定メモ(2023/05/08 版)

以前に 検証用 Amazon Linux2 初期設定メモ(2019/10/10 版) というメモを書きました。 今回は検証用に Amazon Linux 2023 を作る際の初期設定をメモしておきます。 必ずしもセキュリティには十分な配慮をしておらず、あくまで「検証用途」の設定です。

OS バージョンの確認

(これは作業ではありませんが) /etc/os-release で OS バージョンを確認すると以下のように定義されていました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 を再起動します。 rebootsystemctl へのシンボリックリンクになっていますが、実際に OS を再起動する前に sync する処理が入っている為、明示的に sync コマンドを実行する必要はありません (勿論、sync コマンドを実行しても害はありません)。

1
2
dnf update
reboot

古いバージョンのカーネルが存在する場合はディスク容量を節約する為に削除しておきます。

1
dnf -y autoremove

root ユーザでの SSH ログインを許可する

一般的には極めてお勧めされませんが、あくまで検証用途なので root ユーザで SSH ログイン出来るように設定します。 初期自体で /root/.ssh/authorized_keys は下記のようになっています。

1
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 ログイン出来るようになりました。

1
ssh-rsa AAA………

ec2-user ユーザを削除する

デフォルトで存在する ec2-user は「デフォルトで存在する = ユーザ名を推測される」為、削除しておきます。

1
userdel -r ec2-user

ホスト名を変更する

ホスト名を変更しておきます。 現在のホスト名は hostname コマンドで確認できます。

1
2
# hostname
ip-192-168-224-23.ap-northeast-1.compute.internal

ホスト名を変更するには以下のように実行します。

1
hostnamectl set-hostname [HOSTNAME]

タイムゾーンを Asia/Tokyo へ変更する

現在のタイムゾーン設定は timedatectl で確認できます。 デフォルトでは未設定であり、UTC 扱いになっていました。

1
2
3
4
5
6
7
8
# 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 へ設定するには以下のように実行します。

1
timedatectl set-timezone Asia/Tokyo

実行後にタイムゾーンを確認すると以下のように、Time zone: Asia/Tokyo と表示されるはずです。

1
2
3
4
5
6
7
8
# 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) に変更します。

1
2
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 を無効化しておきます。

1
2
3
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 を無効化します。

1
sed -i -e "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config

SELinux の設定変更を反映する為に OS を再起動します。

1
reboot