[これはServerFaultへの私の投稿へのフォローアップです。https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]
以前のシステムでは、rootアカウントが空でない限り、すべてのパスワードを許可していました。すべてのパスワードが正しいパスワードとして認識されるため、誰でもログインできます。
過去(10年前)には、システムが自己認証を備えたダイヤルアップモデムの背後にあったため、これは問題ではありませんでした。しかし、数年後、パブリックIPアドレスを介してシステムにアクセスできるようになりました。
奇跡的に先週まで、SSHポートに興味を持った人は誰もいませんでした。
誰か(中国のIPアドレス)がrootとしてログインし、いくつかのシステム設定を変更してログアウトしました。
バックアップからシステムを復元し、問題を解決するのに時間を費やすために、ADSLモデムを介してアクセスできなくなるようにSSHポートを変更しました。
問題は次のとおり/etc/pam.d/system-auth
です。
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_unix.so nullok use_authtok md5
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
私が変わったとき
auth sufficient /lib/security/pam_unix.so likeauth nullok
到着
auth sufficient /lib/security/pam_unix.so likeauth
その後、rootアカウントはもはや任意のパスワードを受け入れませんが、私が設定したパスワードも許可しません。
私は以下を試しました:
- まず、コマンドでルートパスワードを変更します
passwd
。結果:任意のパスワードでログインできます。 - その後、削除してください
nullok
。設定したパスワードでも、新しいSSHセッションからどのパスワードでもログインできません。 - その後、ルートパスワードをもう一度変更しました。結果:新しいSSHセッションでどのパスワードでもログインできません。
- その後、システム認証をリセットします
nullok
。どのパスワードでも再度ログインできます。
編集とパスワードを設定するために、SSHセッションを開いたままにして新しいSSHセッションを開いて結果をテストしました。
再接続できなくなるかと思ってメインSSHセッションを閉じるのが怖いです。また、信号機システムが稼働していたため、システムを再起動しませんでした。
以前のパスワードは入力せずに新しいパスワードのみ(2回)入力できることに驚きました。
パスワードを変更した後に回答を受けましたが、Password changed
新しいパスワードを使用してSSH経由でログインすることはできません。
ルートパスワードを他の場所で設定する必要がありますか?または、削除するとnullok
SSHを介してrootアカウントが完全にブロックされますか?
root
特定のパスワードは1つだけでログインし、他のパスワードではアクセスを拒否したいと思います。