まずは、インストールするパッケージからして、違っていた。
参考サイト
抜粋すると以下の通り。
nss_ldap has been replaced by two packages
pam_ldap (containing /lib/security/pam_ldap.so and /etc/pam_ldap.conf) and
nss-pam-ldapd (containing /usr/lib/libnss_ldap.so, /usr/sbin/nslcd and /etc/nslcd.conf)
なので、まず、pam_ldapとnss-pam-ldapdをインストールする。
yum install pam_ldap nss-pam-ldapd
次に設定
今まで、使用していた/etc/ldap,conf は存在しない。
代わりに、/etc/pam_ldap.conf が設定するファイルになる。
内容的には、そのまま置き替えて大丈夫でした。
cp -p /etc/ldap.conf /etc/pam_ldap.conf
肝は、/usr/sbin/nslcd と /etc/nslcd.conf
nslcd - local LDAP name service daemon.
今回から新たに出てきたデーモン。
イメージとしては、nssswitch.conf -> nslcd -> pamになるのではないかと思います。
今まで、nscdとか入れていた時にあやふやになっていたところを
ちゃんと管理してくれるのではないかと期待。
設定ファイルは、 /etc/nslcd.conf
内容は、こんな感じ
uid nslcd
gid ldap
uri ldap://192.168.0.1
base dc=example,dc=com
設定したら、サービス起動
chkconfig --level 3 nslcd on
/etc/init.d/nslcd start
/etc/init.d/nslcd start
確認
getent passwd
無事に名前が引けることが確認できました。
/etc/pam.d/配下の設定はいままで通りでOK
なはずだったのですが、名前は引けるのに認証で失敗する現象にはまりました。
まま、思いこみが原因なんですが。。。
/etc/pam.d/sshdがsystem-authを参照しなくなっていました。
エラーの内容は以下のようなもの
unix_chkpwd[3010]: password check failed for user (hogemoge)
sshd[3008]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.xxx.xxx user=hogemoge
/etc/pam.d/sshdにたどり着くのに時間かかりましたw
/etc/pam.d/sshdがpassword-authを参照していたので、
password-authにldapの設定を追加。設定は以下の通り。
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore authinfo_unavail=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session sufficient pam_mkhomedir.so skel=/etc/skel/ umask=0022
これで無事にldapアカウントでsshログインできるようになりました。
0 件のコメント:
コメントを投稿