fedora23でアクティブディレクトリ(AD)にログインできなくなったので調査してたらPAMの問題だったのでポスト。
fedora24でも同様であった。
PAMとは
ここ見れば一発だわ。
https://www.ibm.com/developerworks/jp/linux/library/l-pam/
tips
- /etc/pam.d/の設定ファイルは変更すればすぐに反映される。(サービスの再起動などは必要ない)
- realm コマンドでドメインに参加した場合に書き変わる。
-
authconfig --test で設定が見れる。(PAM以外の認証方法についても。)
原因調査の仕方
例えば
/var/log/secure に以下のようにログがでた場合。
Dec 2 13:01:37 pc208-fc lightdm: pam_sss(lightdm:auth): received for user murata: 17 (Failure setting user credentials)
/etc/pam.d/lightdm というファイルのauthセクションのどこかに問題がある。
╰─$ cat /etc/pam.d/lightdm 1 ↵
#%PAM-1.0
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth required pam_env.so
auth substack system-auth
-auth optional pam_gnome_keyring.so
-auth optional pam_kwallet5.so
-auth optional pam_kwallet.so
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
-session optional pam_ck_connector.so
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
session required pam_namespace.so
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet5.so
-session optional pam_kwallet.so
session include system-auth
session optional pam_lastlog.so silent
session include postlogin
1個ずつコメントアウトしたりしていって原因を追求する。
もしくは他のサーバと見比べてみる。
今回のドメインにログインできなかった場合の処置
現象
- dnf update後(たぶん) PCのログインでADのユーザーでログインできなくなった。
- ローカルPCのユーザーではログインできる。
- dnf update にsssd-adなどが含まれていた。
- sshでもドメインユーザーでログインできなかった。
-
su - murata@hogehogedomain.local はできる。
試行錯誤
sshでログインしようとした時に、/var/log/secureに以下のようなログが出ていた。
Nov 30 11:55:18 pc208-fc sshd[4510]: pam_sss(sshd:account): Access denied for user murata@hogehogedomain.local: 4 (System error)
/etc/pam.d/sshd のaccountにて、password-auth をincludeしていた。
~snip
account include password-auth
~snip
password-authのaccoutセクションを見てみると。
~snip
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account [default=bad success=ok user_unknown=ignore] pam_krb5.so
account required pam_permit.so
~snip
たぶんこれのどこかがおかしい。
ドメイン認証は、 sssdを使っているので、pam_sss.so かな?
コメントアウトしたところ、認証が通った。
~snip
#account [default=bad success=ok user_unknown=ignore] pam_sss.so
~snip
だがしかし、OSのログイン画面は相変わらず通らなかった。
/var/log/secure に system-auth で同じようなログが出ていた。
system-auth の account [default=bad success=ok user_unknown=ignore] pam_sss.so
をコメントアウトしてログインできました。
結果
pam_sss.so に不具合がありそうな気がするが、根本的な原因はわからず。。。
コレで果たしてセキュアな状態なのかもよくわかりません。ツッコミ歓迎。