Azure VMのroot初期パスワードやsudo権限設定手順(Rocky Linux)
仮想マシン(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ユーザーのパスワード設定
- rootユーザーのパスワード設定方法
#sudo使ってrootユーザーになる #rootユーザーでpasswdコマンドを実行しパスワード設定 #sudo passwdコマンドでrootユーザーのパスワード設定 |
※パスワードに身近な単語を使うと、”よくないパスワード: このパスワードは辞書チェックに失敗しました – 辞書の単語に基づいています”と表示されます。
管理者アカウントの認証の種類に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"に設定変更します。
#初期設定確認 #Passwdコマンドでパスワードを設定する 40 #Authentication: #sshdを再起動して設定を反映 |
パスワードでのログイン許可設定(PasswordAuthentication)
管理者アカウントの認証方式にSSHキーで設定した場合は、パスワードでのSSHログインが拒否されています。
sshd_configのPasswordAuthentication設定で確認できます。
PasswordAuthenticationがnoとなっている事が確認出来ます。
#初期設定確認 |
SSHポート番号の変更
セキュリティ対応の1つとして、SSHポート番号を変更があります。
/etc/ssh/sshd_configの17行目あたりに、ポート番号の設定があります。
設定はコメントアウトされており、デフォルト値は22番ポートとなっています。
仮想マシンのSSHポート番号を変更した場合、併せてAzure側のネットワークセキュリティグループの許可ポートを変更する必要があります。
#初期設定確認 #Passwdコマンドでパスワードを設定する 17 #Port 22 #sshdを再起動して設定を反映 |
Azure ロードバランサーのインバウンドNAT規則を利用したポート番号の変更手順についてはこちらで紹介しています。
仮想マシンやネットワークセキュリティグループの設定変更をすることなく、外部からのアクセスポートを変更する方法を紹介しています。
記事自体はリモートデスクトップで確認していますが、SSHでも同様に設定できます。
管理者アカウント(ユーザー)のsudo権限を剥奪
管理者アカウント(ユーザー)のsudo権限設定
仮想マシン作成時の管理者ユーザーにはsudo権限が付与されています。
すべてのコマンドが実行できるsudo権限(パスワード必要なし)が付与されています。
仮想マシンデプロイ時に作成した管理者ユーザーのsudo設定は/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 #sudo権限はく奪 # Created by cloud-init v. 22.1-5.el8.0.1 on Sat, 22 Jul 2023 03:36:52 +0000 # User rules for azureuser #設定変更後の確認(管理者アカウントでsudo実行) あなたはシステム管理者から通常の講習を受けたはずです。 #1) 他人のプライバシーを尊重すること。 [sudo] azureuser のパスワード: |
※管理者ユーザーのsudo権限剥奪はrootユーザーのパスワード設定後に実施します。
追加した管理者アカウント(ユーザー)の場合
Azure Portalを使って管理者アカウント(ユーザー)の追加が出来ます。
追加した管理者アカウント(ユーザー)も同様にsudo権限設定が付与されています。
追加した管理者アカウント(ユーザー)の場合は、設定ファイルの場所が異なります。
/etc/sudoers.d/waagentにあります。
同様にsudo権限が付与されている事が確認出来ます。
sudo権限を剥奪する場合は追加されたユーザーをコメントアウトします。
#追加した管理者ユーザーのsudo権限確認 |
管理者アカウント(ユーザー)の追加手順はこちらで紹介しています。
—広告—
最後に
仮想マシンのrootユーザーや管理者アカウント(ユーザー)の設定変更手順について確認してみました。
初期状態では比較的自由にrootユーザーや管理者アカウント(ユーザー)が操作できるようになっています。
パブリッククラウドの仮想マシンは攻撃受けやすいので、できるだけセキュリティを意識した設定にすべきかと思います。
今後も色々試してみたいと思います。
Rocky Linuxの仮想マシンデプロイから初期設定までの手順はこちらに纏めています。
仮想マシン認証方法にSSHキーを用いる場合の設定はこちらで紹介しています。
パスフレーズ付きの鍵ペアを利用した場合についても確認しています。
Tera TermやPuTTYを利用した鍵ペア生成方法についてはこちらで紹介しています。
ログイン手順についても紹介しています。