AWS Amazon Linuxでのユーザーのパスワードはどのようになっているのでしょうか?
- パスワードが設定される?
- 直接rootユーザーでログインできる?
レジュメ
環境・前提条件
- AWS上のAmazon Linux
デフォルト設定について確認しました
結論、rootユーザーにパスワードは無く、アカウントはパスワードロックでされてパスワードではログインできない
上記は、ユーザーパスワード情報が入っている「/etc/shadow」を確認した画面です。
rootユーザーを見ますと、第二フィールドのパスワードハッシュが入っている場所にハッシュが入っていません。
つまり、パスワードは存在しなく、パスワードロックがかかっている事が分かります。
root:*LOCK*:14600::::::
shadowのマニュアルを見てrootの設定を確認すると
以下のコマンドでshadowファイルのマニュアルを開きます
man 5 shadow
すると第二フィールドの「encrypted password(暗号化されたパスワード)」について以下の説明があります。
「パスワードフィールドがcrypt(3)で有効ではないいくつかの文字列が含まれている場合(例えば、!または* )
ユーザーはUNIXのパスワードを使用してログインできなくなります。
(ただし、ユーザーは他の手段によってシステムログインすることができます)」
とあります。
つまり、rootユーザーはパスワードは設定しておらず、パスワードを使ってのシステムログインは出来ない状態です。
rootユーザーでログインするには?他の手段によってシステムログインする方法
AWS amazon linux環境でrootユーザーでログインするには
- sshでデフォルトの「ec2-user」でログイン
- 「sudo su -」コマンドでrootになる
のステップを踏むことでrootユーザーになれます。
パスワードではrootユーザーになれませんが、sudoコマンドではパスワード無しでrootユーザーになれます。
では「ec2-user」のパスワードは?
実は「ec2-user」も「root」ユーザーと同じくパスワード無しでパスワードロックがかかっています。
つまり、ec2-userもパスワードでログイン出来ない状態と言うことですね。
これは、amazon linuxを作成した時に「キーペア」を作成し、プライベートキーファールを入手していると思います。
このプライベートキーファイルを使って、ec2-userでssh経由でログインすることが出来ます。
ではrootユーザーもsshでログインできるの?
rootユーザーはsshでログインできないように、「sshd」の設定に上記のように設定されています。
このファイルは以下のコマンドで編集が可能です
vi /etc/ssh/sshd_config
設定されている内容「PermitRootLogin forced-commands-only」の内容としては
「コマンドとしてはログインは出来るが、対話的なログインは出来ない。」という意味になります。
rootの鍵さえ作れば、リモートから「sshコマンドでrootでシェル実行」なんて事は実現出来るということです。
rootユーザーやec2-userのようにパスワードロックをかける方法
いくつか方法はありますが、「passwd」コマンドを利用した方法を紹介します。
パスワードロック方法
以下のコマンドをrootユーザーで実行することにより「test」ユーザーにパスワードロックをかけることが出来ます。
passwd –l test
「/etc/shadow」ファイルのパスワードフィールドに「!!」文字が入り、パスワードロックがかかりました。
上記「test」ユーザーは一度パスワードを設定しましたが、パスワードロックをかけた例です。
この場合も、設定したパスワードではシステムにログインできなくなります。
パスワードロックの解除方法
以下のコマンドをrootユーザーで実行します
passwd –u test
上記は「test」ユーザーのパスワードロックを解除するコマンドになります
最後にパスワード無しにした場合。パスワードフィード無し
最後に、「/etc/shadow」ファイルを直接修正し、パスワード無し設定にした場合
これは本当にパスワード無しでログイン出来てしまうユーザーが出来ますので、注意しましょう。
※ そもそもAWSのamazon linuxではsshdの設定「/etc/ssh/sshd_config」で
- パスワード認証ログインを許可していません
- パスワード無しログインを許可していません
ので、sshとしては問題無いですが
なるべく、「/etc/shaodw」ファイルを直接編集するのは避けましょう。