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

9

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

disallow bind_anon
require authc

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

Майкл П
источник

Ответы:

5

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

ldapmodify
dn: cn = config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon
-

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

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

84104
источник
11

Вариация на ту же тему, я попробовал, работает: советы по безопасности 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

Удачи!

Ларикс Децидуа
источник
2
Добро пожаловать в сбой сервера! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
HopelessN00b
2
Спасибо, вы абсолютно правы, я отредактировал свой ответ в соответствии с рекомендациями.
Ларикс Децидуа
1

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

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
кванты
источник
Спасибо, вот как я сейчас делаю это для каждой базы данных. Однако мой вопрос был в том, как это сделать в глобальном масштабе.
Майкл П