Назад | Перейти на главную страницу

Запретить глобальную анонимную привязку с помощью cn = config

С помощью slapd.conf вы можете глобально отключить анонимную привязку и потребовать аутентификацию с помощью следующих статических директив:

disallow bind_anon
require authc

Как добиться тех же глобальных настроек, но с помощью нового метода настройки cn = config live?

Вариант на эту же тему, попробовал, работает: Советы по безопасности LDAP на SysadminTalk

Резюме:

1) Создайте файл, назовем его disable_anon_frontend.ldif со следующим содержанием:

dn: olcDatabase={-1}frontend,cn=config
add: olcRequires
olcRequires: authc

2) Создайте еще один файл с именем disable_anon_backend.ldif со следующим содержанием:

dn: olcDatabase={1}hdb,cn=config
add: olcRequires
olcRequires: authc

3) Затем на сервере измените LDAP, введя следующие команды:

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_frontend.ldif
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_backend.ldif

4) Проверьте, выполнив следующий анонимный запрос: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn (используйте ваш dc=... настройки, если применимо).

Если вы видите сообщение об ошибке ниже, значит анонимный доступ был успешно отключен:

Server is unwilling to perform (53)
Additional information: authentication required

Удачи!

Не то чтобы списки ACL Quanta - это плохо, но отвечу на ваш вопрос:

ldapmodify
dn: cn = config
changetype: изменить
добавить: olcDisallows
olcDisallows: bind_anon
-

dn: olcDatabase = {- 1} интерфейс, cn = config
changetype: изменить
добавить: olcRequires
olcRequires: authc

Имейте в виду, что ldapmodify чувствителен к (завершающим) пробелам, поэтому прямая копипаста не будет работать (и может не аутентифицировать вас должным образом). Кроме того, для используемого dn потребуется доступ для записи в файл cn = config db.

Я не тестировал, но попробуйте что-то вроде этого:

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword 
    by dn="cn=admin,dc=example,dc=com" write 
    by self write 
    by * none
olcAccess: to dn.base="" 
    by users read 
    by * none
olcAccess: to * 
    by dn="cn=admin,dc=example,dc=com" write 
    by * none