Confidentiality required

1. LDAPを利用していたらこんなエラーが

LDAPを利用しているホストから、ldapsearchが利用できないエラーが発生した。具体的にはメールサーバでユーザの認証が通らなくなっていた。

試しに手動でldapsearchしてみたら確かに通らない。

clientshell> ldapsearch -x -b "dc=example,dc=com" -H <a href="ldap://192.168.1.1/">ldap://192.168.1.1/</a>
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 13 Confidentiality required
text: confidentiality required

# numResponses: 1

2. SSLを利用するように

実はldapサーバでsslを利用するように変更作業を加えていたので、おそらくはコレが原因と思われた。

でもしかし、サーバ側ではsslが無くても待ち受けが出来るような設定をしていた

servershell> ps auxww | grep slapd
ldap   84881  0.0  1.4 455936 14420  ??  Ss    5:56PM   0:00.08 /usr/local/libexec/slapd -u ldap -h ldap://0.0.0.0/ ldaps://0.0.0.0/ -u ldap -g ldap
servershell> sockstat | grep ldap
ldap     slapd      84881 6  tcp4   *:389                 *:*
ldap     slapd      84881 7  tcp4   *:636                 *:*

上記の通り、ldap、ldapsともに待ち受けをしている。でも繋がらない。ちなみにローカルホストではちゃんとldapsearchできる。

サーバ側のエラーログは下記の通り。

Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 op=0 BIND dn="" method=128
Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 op=0 RESULT tag=97 err=0 text=
Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 op=1 SRCH base="dc=example,dc=com" scope=2 deref=0 filter="(objectClass=*)"
Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 op=1 SEARCH RESULT tag=101 err=13 nentries=0 text=confidentiality required
Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 op=2 UNBIND
Nov  4 18:03:03 cvm3 slapd[84881]: conn=1020 fd=15 closed

エラー番号13番、confidentiality requiredらしい。

ググってみるとそれらしき解答が。

Normally the error message in your subject is as a result of the server
requiring encryption of some kind. For example, you might have set:

security tls=1

Re: Confidentiality required question

どうやらサーバ側でsecurityの項目を設定するとダメらしい。

この項目を設定しなければSSLを利用できないかと思ったんだけど、どうやらそういうわけでもないらしい。

この項目を設定すると、セキュリティ保護がある接続のみを受け付けるらしい。なので今回の場合は待ち受けをしていたけれど応答できなかったみたい。なんかそれだったらそもそも待ち受けを許可するなよ、とか、矛盾してる気がするけど、ローカルホストとかだとイケるよ的な?

servershell> grep security /usr/local/etc/slapd.conf
# security ssf=128
servershell> /usr/local/etc/rc.d/slapd restart

これでクライアントでも利用できるようになった。

コメントを残す