cangoxina

生産性向上見習いのブログ的な何かです

パスワードポリシーを変更したらsuが全く使えなくなったお話し

suコマンドが使えなくなりました!!!

su -も使えなければ、su user-nameも使えなくなりました。色々やった結果の妥協策解決策を載せます。


目次


ことの顛末

パスワードポリシーを更新した

研究室サーバに対してセキュリティチェックがあり、

パスワードポリシーをまともにしろ!

と怒られました。

研究室サーバは、UNIX系OSを使っており、新しい学生が配属されると、その都度ユーザを作成していました。もちろんその後passwdでパスワード設定をするのですが、これまではパスワードポリシーが大学の規定に則っていませんでした。

そこで、大学の規定に則ったパスワードポリシーに更新することになり、ご丁寧に設定方法もいただきました。

設定方法通りにパスワードポリシーを設定し、パスワードポリシーを更新しました。

suが使えない!?

パスワードポリシー更新後に、確認するため、新しいユーザを作成し、パスワードを設定しました。

一応ログインしようと試みたところ...

$ su test-user
su: パスワードが違います

!?

su test-userを実行して、パスワードを問われずに「パスワードは違います」と怒られてしまいました。パスワードを入力してはじかれた訳ではありません。

これはヤバいと思ったのですが、sudoは普通に使えました。

やったこと

パスワードポリシーは/etc/pam.d/system-authを弄って、更新しました。

これが全てではありませんが、だいたい以下のように設定しました。

password    requisite     pam_cracklib.so try_first_pass retry=3 type= \
                              minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
password    sufficient    pam_unix.so sha512 shadow nullok 
                              try_first_pass use_authtok

この設定をしたら、suが使えなくなりました。

セキュリティポリシーを更新前に戻したら、ちゃんとsuが正常に動くので、こいつが悪さしていることは間違いありません。

ログを見る

とりあえず/var/log/secureを見ると、

Feb  7 15:47:32 hoge su: pam_unix(su:auth): auth could not identify password for [root]

みたいなメッセージが残っていました。

pam_unixが怪しいことがわかります。

pam_unixの何が悪さをしているのか探す

/etc/pam.d/system-authを再度見てみます。

password    sufficient    pam_unix.so sha512 shadow nullok 
                              try_first_pass use_authtok

今回、

  • sha512
  • shadow
  • use_authtok

を追加したので、それを1つずつ消してみると...

use_authtokを消したらsuが正常に動きました。

犯人を見つけました。

use_authtokとは?

原因を探るため、use_authtokについて調べました。

この行の最後の引数 use_authtok は、PAM モジュールのスタック化の際における順序の重要性の例を提供します。この引数は、ユーザーに新規パスワードを要求しないようモジュールに指示します。代わりに、以前のパスワードモジュールが記録したパスワードを受け入れます。これにより、新規パスワードはすべて、受け入れ前にパスワードの安全テスト pam_pwquality.so をパスする必要があります。

10.2. PAM 設定ファイルについて - Red Hat Customer Portal

?????

すみません、さっぱりわかりません。なぜこれがsuに影響を与えるのでしょうか...

結局、/etc/pam.d/system-authから、use_authtokを消しました。果たしてこれで良かったのか。

まとめ

  1. /etc/pam.d/system-authを書き換えた。
  2. suが正常に動かなくなった。
  3. use_authtokを消すと、うまくいった。
  4. なんでそうなるのか、消さずになんとかする方法はあるのか、わからなかった。

もう少しサーバの知識を深めて、理由を特定したいと思います...

もし、ご存じの方がいれば、教えてください。



スポンサーリンク