システム認証から「nullok」を削除すると、ルートパスワードが使用できなくなります。

システム認証から「nullok」を削除すると、ルートパスワードが使用できなくなります。

[これは ServerFault の私の投稿の続編です:https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]

古いシステムでは、ルート アカウントは空でない限り、任意のパスワードを受け入れます。任意のパスワードが正しいパスワードとして受け入れられたため、誰でもログインできました。

過去 (10 年以上前) は、システムが独自の認証を備えたダイヤルアップ モデムの背後にあったため、これは問題ではありませんでしたが、数年前から、パブリック IP アドレス経由でシステムにアクセスできるようになりました。

奇跡的に、先週まで誰も SSH ポートを気にしたことがありませんでした。

誰か(中国の IP アドレス)が root としてログインし、システム設定を変更してログアウトしました。

この問題を解決するための時間を確保するために、バックアップからシステムを復元し、SSH ポートを ADSL モデム経由でアクセスできないように変更しました。

問題は次の点にあるようです/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

すると、ルートアカウントはランダムなパスワードを受け入れなくなりますが、設定したパスワードも受け入れなくなります。

次のことを試しました:

  • まずコマンドでルートパスワードを変更しますpasswd。結果: どのパスワードでもログインできます
  • その後削除nullok: 新しいSSHセッションでは、設定したパスワードでもログインできませんでした
  • その後、ルート パスワードを再度変更しました。結果: 新しい SSH セッションでは、どのパスワードでもログインできませんでした。
  • その後、nulloksystem-authを戻しました。どのパスワードでも再度ログインできるようになりました。

編集とパスワード設定は常に開いたままの SSH セッションで実行し、新しい SSH セッションを開いて結果をテストしました。

再びログインできなくなるかもしれないという恐怖から、メインのSSHセッションを閉じる勇気はありませんでした。また、信号機用の稼働中のシステムなので、システムを再起動しませんでした。

古いパスワードを入力する必要がなく、新しいパスワードを(2回)入力するだけで済むことに驚きました。

パスワードを変更した後、回答は得られましたPassword changedが、新しいパスワードで SSH 経由でログインできませんでした。

ルート パスワードを別の場所に設定する必要がありますか? または、削除するとnullokSSH 経由のルート アカウントが完全にブロックされますか?

root特定のパスワード 1 つでのみログインでき、その他のパスワードではアクセスを拒否できるようにしたいと考えています。

関連情報