Форум проекта Pro-LDAP.ru
Интеграция => Системы электронной почты => Тема начата: marawu от 26 Октябрь 2017, 15:12:16
-
Добрый день, пытаюсь настроить dovecot. Накидал такой файл конфига:
uris = ldap://ldap01.domain.ru
debug_level = -1
auth_bind = yes
auth_bind_userdn = uid=%n,ou=People,dc=domain,dc=ru
ldap_version = 3
base = ou=People,dc=domain,dc=ru
deref = never
scope = base
user_filter = (&(objectClass=posixAccount)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=posixAccount)(mail=%u))
default_pass_scheme = CRYPT
Так же накидал такой ACL:
olcAccess: to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * break
olcAccess: to attrs=userPassword
by self write
by anonymous auth
olcAccess: to dn.subtree="ou=People,dc=domain,dc=ru"
by * search
by self read
olcAccess: to *
by dn.one="ou=sUsers,dc=domain,dc=ru" read
Но при запросе ничего не возвращается. Ни через dovecot, ни запросом ldapsearch, хотя ошибок в логах нет:
Oct 26 19:11:32 ldap01 slapd[28115]: conn=1049 fd=11 ACCEPT from IP=192.168.XXX.XXX:34334 (IP=0.0.0.0:389)
Oct 26 19:11:32 ldap01 slapd[28115]: conn=1049 op=0 BIND dn="" method=128
Oct 26 19:11:32 ldap01 slapd[28115]: conn=1049 op=0 RESULT tag=97 err=0 text=
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=1 BIND dn="uid=user.name,ou=People,dc=domain" method=128
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=1 BIND dn="uid=user.name,ou=People,dc=domain" mech=SIMPLE ssf=0
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=1 RESULT tag=97 err=0 text=
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=2 BIND anonymous mech=implicit ssf=0
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=2 BIND dn="" method=128
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=2 RESULT tag=97 err=0 text=
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=3 SRCH base="ou=People,dc=domain,dc=ru" scope=0 deref=0 filter="(&(objectClass=posixAccount)(mail=user.name@domain.ru))"
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=3 SRCH attr=homeDirectory uidNumber gidNumber
Oct 26 19:11:40 ldap01 slapd[28115]: conn=1049 op=3 SEARCH RESULT tag=101 err=0 nentries=0 text=
Не могу сообразить как правильно ACL написать:(
-
Здравствуйте!
В 3-м ACL поменяйте
olcAccess: to dn.subtree="ou=People,dc=domain,dc=ru"
by * search
by self read
на
olcAccess: to dn.subtree="ou=People,dc=domain,dc=ru"
by self read
by * search
Но меня смущает bind от anonymous (в логе) -- от анонима при таких ACL, сами понимаете, поиск работать не будет.
Егор
-
Но меня смущает bind от anonymous (в логе) -- от анонима при таких ACL, сами понимаете, поиск работать не будет.
Егор
Да, я тоже обратил внимание. Локально поиск сделать получилось, а вот с dovecot не работает. А если выдать права на поиск entry для анонимных пользователей?
-
Хм, недоглядел
# Distinguished Name - the username used to login to the LDAP server.
# Leave it commented out to bind anonymously (useful with auth_bind=yes).
Сделал учётку для dovecot на ldap добавил его в acl:
olcAccess: to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * break
olcAccess: to attrs=userPassword
by self write
by anonymous auth
olcAccess: to dn.subtree="ou=People,dc=domain,dc=ru"
by self read
by dn.one="ou=sUsers,dc= domain,dc=ru" read
by * search
Сейчас работает. А на другие OU мне ACL так же ниже можно писать? И можно ещё пояснить когда добавлять by * none?
-
А на другие OU мне ACL так же ниже можно писать? И можно ещё пояснить когда добавлять by * none?
ALC рассматриваются последовательно один за другим до первого совпадения условия to, оставшиеся ACL не рассматриваются. Поэтому сначала задаются более конкретные ACL, а затем более общие. Если после прохода по всем ACL совпадения с условием to не найдено, то выполняется неявное ACL
access to * by * none
и доступ к каталогу запрещается.
Аналогично с условиями by: после нахождения совпадения с условием to, условия by совпавшего ACL рассматриваются последовательно один за другим до первого совпадения. Если после прохода по всем условиям by совпадения не найдено, то выполняется неявное условие
by * none
и доступ к каталогу запрещается. Остальные ACL не рассматриваются.
Надеюсь, я понятно изложил. В принципе, явно добавлять условия by * none не обязательно.
Егор