2011年7月3日日曜日

SL6(scientific linux 6)のLDAP設定(client)

う~ん。どはまりしたので、備忘録。

まずは、インストールするパッケージからして、違っていた。
参考サイト

抜粋すると以下の通り。
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

確認

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 件のコメント:

コメントを投稿