Azure VMのroot初期パスワードやsudo権限設定手順(Rocky Linux)

2020-07-05Azure,RockyLinux/CentOS,Virtual Machine

Rocky Linuxの仮想マシン(Azure VM)デプロイ後のrootユーザーに関する設定手順について纏めてみました。

    • 主な内容
      • rootユーザーのパスワード設定
      • rootユーザーのSSHログイン拒否
      • 管理者ユーザーのsudo権限はく奪

※Rocky Linux release 8.8 (Green Obsidian)を利用しています。2023年7月現在の情報です。
※本記事では仮想マシン(Azure VM)デプロイ時に指定するユーザーを管理者ユーザーと記載しています。

スポンサーリンク

rootユーザのパスワード設定

初期状態のrootユーザーパスワード

デプロイ直後の仮想マシン(Azure VM)のrootユーザのパスワードは非公開です。

rootユーザーのパスワード設定

仮想マシン(Azure VM)デプロイ時に作成した管理者ユーザーはsudo権限を保持しています。
管理者ユーザーのsudoはパスワード無しで可能です。

#sudo使ってrootユーザになる。
[azureuser@sv-cacti-01 ~]# sudo su –

#Passwdコマンドでパスワードを設定する
[root@sv-cacti-01 ~]# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

#sudo passwdコマンドでも設定可能
[azureuser@sv-cacti-01 ~]$ sudo passwd root

ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

※身近な単語を使うと、”よくないパスワード: このパスワードは辞書チェックに失敗しました – 辞書の単語に基づいています”と表示されます。

管理者ユーザーでSSHキーを選択した場合

管理者ユーザーでSSHキーを選択した場合もパスワード認証と同じ手順で設定出来ます。

SSH周りの設定

rootユーザーのSSHログイン拒否

Rocky Linux 8の仮想マシン(Azure VM)の場合rootユーザーのSSHログインは許可されています。
特段の理由が無い場合はセキュリティ的に好ましくないのでSSHログインを拒否します。
設定は/etc/ssh/sshd_configで行います。43行目あたりに設定があります。
PermitRootLogin noに変更します。

#初期設定確認
[root@sv-cacti-01 ~]# grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes
# the setting of “PermitRootLogin without-password".

#Passwdコマンドでパスワードを設定する
[root@sv-cacti-01 ~]# vi /etc/ssh/sshd_config

40 #Authentication:
41
42 #LoginGraceTime 2m
43 PermitRootLogin No #YesからNoに変更する

#sshdを再起動して設定を反映
[root@sv-cacti-01 ~]# systemctl restart sshd

パスワードログイン確認

管理者ユーザーのSSHキーで設定した場合はパスワードでのSSHログインが拒否されます。
sshd_configのPasswordAuthentication設定で確認出来ます。
PasswordAuthenticationがnoとなっている事が確認出来ます。

#初期設定確認
[root@sv-cacti-01 ~]# grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication, then enable this but set PasswordAuthentication

SSHのポート番号変更

SSHポート番号の変更も出来ます。
/etc/ssh/sshd_configの17行目あたりに設定があります。
仮想マシン(Azure VM)のSSHポート番号を変更した場合、NSG(ネットワークセキュリティグループ)の許可ポート変更も併せて実施する必要があります。

#初期設定確認
[root@sv-cacti-01 ~]# grep Port 
#Port 22
#GatewayPorts no

#Passwdコマンドでパスワードを設定する
[root@sv-cacti-01 ~]# vi /etc/ssh/sshd_config

17 #Port 22
18 Port 10022 #Portのコメントアウトを外し受信するポートを指定する

#sshdを再起動して設定を反映
[root@sv-cacti-01 ~]# systemctl restart sshd

管理者ユーザーのsudo権限を剥奪する

仮想マシン(Azure VM)デプロイ時の管理者ユーザーの場合

仮想マシン(Azure VM)作成時の管理者ユーザーにはsudo権限が付与されています。
すべてのコマンドが実行できるsudo権限(パスワード必要なし)が付与されています。

仮想マシン(Azure VM)デプロイ時に作成した管理者ユーザーのsudo設定は/etc/sudoers.d/90-cloud-init-usersにあります。

#初期設定確認
[root@sv-cacti-01 ~]# cat /etc/sudoers.d/90-cloud-init-users

# Created by cloud-init v. 22.1-5.el8.0.1 on Sat, 22 Jul 2023 03:36:52 +0000
# User rules for azureuser
azureuser ALL=(ALL) NOPASSWD:ALL

#sudo権限はく奪
[root@sv-cacti-01 ~]# vi /etc/ssh/sshd_config

# Created by cloud-init v. 22.1-5.el8.0.1 on Sat, 22 Jul 2023 03:36:52 +0000

# User rules for azureuser
#azureuser ALL=(ALL) NOPASSWD:ALL #コメントアウトする

#設定変更後の確認(管理者アカウントでsudo実行)
[azureuser@sv-cacti-01 ~]# sudo su –

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。

[sudo] azureuser のパスワード:

※管理者ユーザーのsudo権限剥奪はrootユーザーのパスワード設定後に実施します。

追加した管理者ユーザーの場合

Azure Portalを使って管理者ユーザーのパスワードリセットや追加が出来ます。
手順はこちらを参照願います。

追加した管理者ユーザーのsudo設定はパスが異なります。
/etc/sudoers.d/waagentにあります。
同様にsudo権限が付与されている事が確認出来ます。

#追加した管理者ユーザーのsudo権限確認
[root@sv-cacti-01 ~]# cat /etc/sudoers.d/waagent
追加した管理者ユーザー名 ALL = (ALL) NOPASSWD: ALL

最後に

Rocky Linux8を例に仮想マシン(Azure VM)のrootユーザー周りや管理者ユーザーのsudo権限回りの初期設定手順を纏めてみました。
デフォルトでは比較的自由に操作できるようになっています。
パブリッククラウドの仮想マシン(Azure VM)は攻撃受けやすいので、必要に応じてセキュリティを意識した設定にすべきかと思います。

今後も色々試してみたいと思います。

Rocky Linuxの仮想マシン(Azure VM)デプロイから初期設定までの手順はこちらに纏めています。

仮想マシン(Azure VM)認証方法にSSHキーを用いる場合の設定はこちらに纏めています。

スポンサーリンク