首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >糟糕的搜索过滤器-后缀,OpenLDAP,Saslauthd

糟糕的搜索过滤器-后缀,OpenLDAP,Saslauthd
EN

Server Fault用户
提问于 2016-04-17 00:42:57
回答 1查看 1K关注 0票数 2

我正试图在Debian上安装一个邮件服务器,但是遇到了一个问题,这让我很头疼。

尝试通过saslauthd命令访问OpenLDAP时

代码语言:javascript
复制
testsaslauthd -u user1 -p user1pw -f /var/spool/postfix/var/run/saslauthd/mux

我在auth.log中得到以下错误

代码语言:javascript
复制
Apr 17 10:36:50 debmailserv saslauthd[1661]: user ldap_search_st() failed: Bad search filter
Apr 17 10:36:50 debmailserv saslauthd[1661]: Retrying authentication
Apr 17 10:36:50 debmailserv saslauthd[1661]: user ldap_search_st() failed: Bad search filter
Apr 17 10:36:50 debmailserv saslauthd[1661]: Authentication failed for user1: Retry condition (ldap server connection reset or broken) (-3)
Apr 17 10:36:50 debmailserv saslauthd[1661]: do_auth         : auth failure: [user=user1] [service=imap] [realm=] [mech=ldap] [reason=Unknown]

但是,如果我使用saslauthd.conf中使用的相同的搜索筛选器,使用下面的ldapsearch,它可以正常工作。

代码语言:javascript
复制
ldapsearch -D "uid=saslauthd,ou=services,dc=example,dc=com" -w saslauthdpw \
  -p 389 -h 127.0.0.1 -b "ou=people,dc=example,dc=com" \
  -s sub "(&(uid=user1)(mailEnabled=TRUE))"

我的saslauthd.conf看起来像这样

代码语言:javascript
复制
# Server
ldap_servers: ldap://127.0.0.1/

# Identity
ldap_bind_dn: uid=saslauthd,ou=services,dc=example,dc=com
ldap_bind_pw: saslauthdpw
ldap_auth_method: bind

# Connection
ldap_version: 3
ldap_timeout: 10
ldap_time_limit: 10
ldap_referrals: yes

# Search
ldap_scope: sub
ldap_search_base: ou=people,dc=example,dc=com
ldap_filter: (&(uid=%u)(mailEnabled=TRUE))

# SSL
ldap_ssl: no
ldap_starttls: no

如果我注释掉了ldap_filter,那么测试就可以正常工作了。

任何指点都会非常感谢!

EN

回答 1

Server Fault用户

发布于 2016-05-06 05:29:43

我今天也犯了同样的错误。通过使用wireshark检查saslauthd和LDAP服务器之间的对话,我能够确定两件可能对您有帮助的事情.

  1. 默认过滤器似乎是(uid=%u)
  2. 来自saslauthd的查询将结果的大小限制为1条记录。

在我的例子中,对uid=fred的搜索是从LDAP服务器返回两个记录。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/770908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档