web-dev-qa-db-ja.com

パスワード変更時の「認証トークン操作エラー」を回避

ユーザーが自分のパスワードを変更するときに、より厳密なパスワードを導入するように強制するセキュリティポリシーを実装しています。

/etc/pam.d/passwd構成ファイルは次のとおりです。

#%PAM-1.0
auth     include    common-auth
account  include    common-account
password include    common-password
session  include    common-session

そこで、このファイル/etc/pam.d/common-passwordに変更を加えました。

デフォルトのcommon-passwordファイルには、次の2行が含まれています。

password    requisite   pam_pwcheck.so  nullok cracklib
password    required    pam_unix2.so    use_authtok nullok

パスワードを強化するために、pam_pwcheckにいくつかのオプションを追加する必要があります(問題ありません)および別のPAMモジュール(pam_cracklib)。次に、これはpasswdからインクルードされた最後の/etc/pam.d/common-passwordファイルです。

password  requisite  pam_cracklib.so minclass=3 retry=3
password  requisite  pam_pwcheck.so  nullok cracklib minlen=10 remember=5
password  required   pam_unix2.so    use_authtok nullok

私の問題は、両方のPAMモジュールを構成しているときに発生します。正しいパスワードを導入すると、問題なく機能します。 pam_cracklibで拒否する必要がある不正なパスワード(たとえば、小文字のみのパスワード)を導入すると、正常に機能します(問題なくパスワードを拒否します)。

しかし、cracklibには有効でpwcheckには無効なパスワード(大文字、小文字、長さが7文字のパスワード)を導入すると、パスワードは拒否されますが、このエラーは示されています:

Bad password: too short    
passwd: Authentication token manipulation error

そのため、pam_pwcheckはエラーメッセージ(Bad password: too short)を出力しますが、PAMチェーンで問題が発生します。

私の構成の何が悪いのか知っていますか?

追伸「セキュリティ」要件はまったく私のものではないので、コメントは避けてください;-)。

4
JoseLSegura

最後に、最初の2つのモジュールの順序を逆にするだけで機能します。

password  requisite  pam_pwcheck.so  nullok cracklib minlen=10 remember=5
password  requisite  pam_cracklib.so minclass=3 retry=3
password  required   pam_unix2.so    use_authtok nullok

今、私は別のエラーに直面していますが、別の質問でそれを尋ねます。

1
JoseLSegura

ファイル/etc/pam.d/common-passwordについて、次のようにPAMチェーンを再構築してみてください:

password required pam_pwcheck.so
password required pam_cracklib.so use_authtok minlen=10 retry=3 minclass=3
password required pam_pwcheck.so remember=5 use_authtok use_first_pass
password required pam_unix2.so nullok use_authtok use_first_pass

私は上記を見つけて、このNovellドキュメントのタイトルを少し変更しました: pam_pwcheckとpam_cracklibを同時に使用

さらに、これらをリソースとして使用しました:

4
slm

私はFedora 25 systemd-nspawnコンテナーを使用していましたが、passwdSudo dnf reinstall passwdで再インストールするまで何もしませんでした。

0
hermancain