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

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

仮想マシン(Azure VM)作成後の、rootユーザーや管理者アカウント(ユーザー)に関する設定について紹介しています。

初期状態ではrootユーザーや管理者アカウント(ユーザー)が比較的自由に操作できるようになっています。
パブリッククラウドの仮想マシンは攻撃受けやすいので、できるだけセキュリティを意識した設定した方が良いです。
rootユーザーや管理者アカウント(ユーザー)周りに関する設定手順についてRocky Linuxを例に確認してみました。

    • 主な内容
      • rootユーザーのパスワード設定
      • rootユーザーのSSHログイン拒否
      • 管理者アカウント(ユーザー)のsudo権限はく奪
      • SSHポート番号の変更

※Rocky Linux release 8.8 (Green Obsidian)を利用して手順確認しています。
※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンと記載しています。

スポンサーリンク

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

仮想マシン作成直後(初期状態)のrootユーザーパスワード

仮想マシン作成直後のrootユーザのパスワードは非公開です。
管理者アカウントとして作成したユーザーのsudo権限を利用して、rootユーザーへ切り替えます。

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

管理者アカウントのユーザーはsudo権限を保持しています。
このsudo権限はすべてのコマンドをパスワード無しで実行できるように設定されています。
rootユーザーのパスワード設定方法は2つあります。

    • rootユーザーのパスワード設定方法
      • sudoコマンドでrootユーザーに切り替えてからパスワード設定
      • sudoコマンド使ってrootユーザーのパスワード設定

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

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

#sudo passwdコマンドでrootユーザーのパスワード設定
[azureuser@sv-cacti-01 ~]$ sudo passwd root

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

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

管理者アカウントの認証の種類にSSH公開キーを選択した場合

管理者アカウントの認証の種類にSSH公開キーを選択した場合も、管理者アカウントのユーザー設定は同じです。
sudo権限はすべてのコマンドをパスワード無しで実行できるように設定されています。
パスワード認証と同じ手順でrootユーザーのパスワード設定できます。

—広告—

SSH関連の設定変更

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

rootユーザーのSSHでのログイン認証を拒否する手順です。

rootユーザーのSSHログインが、許可されている場合があります。
外部からrootユーザーで直接ログインを許可している状態はセキュリティ的に好ましくありません。
特段の理由が無い場合はSSHログインを拒否します。

rootユーザーのSSHログイン許可設定はPermitRootLoginで行います。
許可する場合は"Yes"、拒否する場合は"No"とします。

/etc/ssh/sshd_configで設定します。
sshd_configの43行目あたりに設定があります。
“PermitRootLogin No"に設定変更します。

#初期設定確認
[root@sv-cacti-01 ~]# grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes

#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

パスワードでのログイン許可設定(PasswordAuthentication)

管理者アカウントの認証方式に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ポート番号の変更

セキュリティ対応の1つとして、SSHポート番号を変更があります。

/etc/ssh/sshd_configの17行目あたりに、ポート番号の設定があります。
設定はコメントアウトされており、デフォルト値は22番ポートとなっています。

仮想マシンのSSHポート番号を変更した場合、併せてAzure側のネットワークセキュリティグループの許可ポートを変更する必要があります。

#初期設定確認
[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

Azure ロードバランサーのインバウンドNAT規則を利用したポート番号の変更手順についてはこちらで紹介しています。
仮想マシンやネットワークセキュリティグループの設定変更をすることなく、外部からのアクセスポートを変更する方法を紹介しています。
記事自体はリモートデスクトップで確認していますが、SSHでも同様に設定できます。

管理者アカウント(ユーザー)のsudo権限を剥奪

管理者アカウント(ユーザー)のsudo権限設定

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

仮想マシンデプロイ時に作成した管理者ユーザーの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権限を剥奪する場合は追加されたユーザーをコメントアウトします。

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

管理者アカウント(ユーザー)の追加手順はこちらで紹介しています。

—広告—

最後に

仮想マシンのrootユーザーや管理者アカウント(ユーザー)の設定変更手順について確認してみました。
初期状態では比較的自由にrootユーザーや管理者アカウント(ユーザー)が操作できるようになっています。
パブリッククラウドの仮想マシンは攻撃受けやすいので、できるだけセキュリティを意識した設定にすべきかと思います。

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

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

仮想マシン認証方法にSSHキーを用いる場合の設定はこちらで紹介しています。
パスフレーズ付きの鍵ペアを利用した場合についても確認しています。

Tera TermやPuTTYを利用した鍵ペア生成方法についてはこちらで紹介しています。
ログイン手順についても紹介しています。

スポンサーリンク