Я хочу изменить настройки, мой новый сервер LDAP позволяет только пользователям сервера читать записи, а не анонимно. В настоящее время мой olcAccess выглядит так:
olcAccess: {0} to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=example,dc=com" write by * none
olcAccess: {1} to * by self write by dn="cn=admin,dc=example,dc=com" write by * read
Пытался изменить вот так:
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=example,dc=com" write by * none
olcAccess: {1} to * by self write by dn="cn=admin,dc=exampme,dc=com" write by users read
Но это вообще не дает мне доступа. Может ли кто-нибудь помочь мне в этом?
Спасибо
ОБНОВЛЕНИЕ: это журнал, прочитанный после изменений, упомянутых userxxx
Sep 30 10:47:21 j16354 slapd[11805]: conn=1437 fd=28 ACCEPT from IP=87.149.169.6:64121 (IP=0.0.0.0:389)
Sep 30 10:47:21 j16354 slapd[11805]: conn=1437 op=0 do_bind: invalid dn (pbrechler)
Sep 30 10:47:21 j16354 slapd[11805]: conn=1437 op=0 RESULT tag=97 err=34 text=invalid DN
Sep 30 10:47:21 j16354 slapd[11805]: conn=1437 op=1 UNBIND
Sep 30 10:47:21 j16354 slapd[11805]: conn=1437 fd=28 closed
Sep 30 10:47:21 j16354 slapd[11805]: conn=1438 fd=28 ACCEPT from IP=87.149.169.6:64122 (IP=0.0.0.0:389)
Sep 30 10:47:21 j16354 slapd[11805]: conn=1438 op=0 do_bind: invalid dn (pbrechler)
Sep 30 10:47:21 j16354 slapd[11805]: conn=1438 op=0 RESULT tag=97 err=34 text=invalid DN
Sep 30 10:47:21 j16354 slapd[11805]: conn=1438 op=1 UNBIND
Sep 30 10:47:21 j16354 slapd[11805]: conn=1438 fd=28 closed
pbrechler должен быть действующим пользователем, но не имеет системного пользователя (он нам не нужен) администратор также не работает
olcAccess: {0} to attrs = userPassword, shadowLastChange by self write by anonymous auth by dn = "cn = admin, dc = example, dc = com" записать * none
olcAccess: {1} для attrs = uid, uidNumber, gidNumber от dn = "cn = admin, dc = example, dc = com" запись с помощью * чтения
olcAccess: {2} в * путем самостоятельной записи dn = "cn = admin, dc = example, dc = com" запись пользователями, прочитанными анонимной аутентификацией
olc{1} ... by * read
вместо этого может быть by * auth
зависит от конфигурации pam_ldap
и как / если клиентские машины (а не пользователи) аутентифицируют себя.
Изменить как ответ:
Действительный DNS выглядит как uid=username,ou=users,dc=sub,dc=domain,dc=tld
.
username
не является допустимым синтаксисом dn и никогда не был.
olcAccess
не может этого изменить.
(SASL / olcAuthzRegexp может делать всевозможные интересные вещи, однако не было предоставлено достаточно подробностей, чтобы узнать, использует ли система SASL вообще.)
Если этот компьютер использует ldap только для общения с самим собой, вы можете ограничить его локальным хостом (или сокетами, также известными как ldapi, если ваше клиентское программное обеспечение это поддерживает). правила именования dn по-прежнему применяются.
Кроме того, если dn = "cn = admin, dc = example, dc = com" определен как ваш rootdn для базы данных, нет необходимости указывать его в olcAccess этой базы данных. У DNS всегда есть доступ на запись ко всем attrs в базе данных, для которой он rootdn.
Попробуй это:
access to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by users read
by * none
access to *
by self write
by dn="cn=admin,dc=example,dc=com" write
by * read
Но вы можете рассмотреть 2 угрозы безопасности: первая - это access to attrs=userPassword,shadowLastChange by users read
означает, что пользователи могут читать теневой пароль и использовать инструменты для взлома. Второй access to * by self write
, поэтому пользователи могут изменить uidNumber
и / или gidNumber
to становится root.
Поэтому я предлагаю следующий ACL:
access to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by users none
access to *
by dn="cn=admin,dc=example,dc=com" write
by * read