CentOS 6.0をアップデートしたらLDAPで認証が通らなくなった

CentOS 6.0をアップデートしたらLDAPで認証されるユーザが存在しないことになってた。

ただ今回のアップデートはyum updateで一括してアップデートしてしまったのでOpenLDAPのアップデートでそうなったのかOS本体のアップデートでそうなったのかちょっと区別が付かなかった。

CentOSの場合、以下のファイルがLDAP認証に関わってくる

  • /etc/nscl.conf
  • /etc/nsswitch.conf
  • /etc/pam_ldap.conf
  • /etc/openldap/ldap.conf
  • /etc/sysconfig/authconfig
  • /etc/pam.d/*

これらのファイルの内、アップデートによりデフォルトのものに書き換えられたものがある様子。


shell> id hogetan
id: hogetan: No such user

shell> grep LDAP /etc/sysconfig/authconfig
USELDAPAUTH=no  # この行をyesに変更しなければならない。アップデートでnoになってしまった様子。
USELDAP=yes

shell> tail /var/log/messages

Dec 19 11:39:37 clinton nslcd[1861]: [7b23c6] failed to bind to LDAP server <a href="ldaps://192.168.1.1/">ldaps://192.168.1.1/</a>: Can't contact LDAP server: Operation now in progress
Dec 19 11:39:37 clinton nslcd[1861]: [7b23c6] failed to bind to LDAP server <a href="ldaps://192.168.1.1/">ldaps://192.168.1.1/</a>: Can't contact LDAP server: Operation now in progress
Dec 19 11:39:37 clinton nslcd[1861]: [7b23c6] no available LDAP server found
Dec 19 11:39:37 clinton nslcd[1861]: [7b23c6] no available LDAP server found

この段階、authconfigでUSELDAPAUTHをyesにするだけでは通らず。調べるとどうやらred hat系はauthconfig-tuiというツールを利用する、とどこぞで言われてみた。autuconfig-tuiは対話式のコンフィグツールらしい。起動してそのままのオプションで次へ、OKと押していく。でもダメだ。

調べると /etc/nslcd.conf も書き換わっていた。いらない行をコメントアウト。最後にnslcdを再起動してうまく行けた!


shell> more /etc/nslcd.conf
ldap_version 3
TLS_REQCERT never
uri ldaps://192.168.84.67/ ldaps://192.168.84.68/
base dc=l3tp,dc=org
#ssl no   # この行が勝手に追加されてたのでコメントアウト
#tls_cacertdir /etc/openldap/cacerts # この行が勝手に追加されてたのでコメントアウト

shell> service nslcd restart

shell> id hogetan

uid=1001(hogetan) gid=1001(hogetan)

完璧。

コメントを残す