Заборонити глобальне анонімне прив'язування cn = config


9

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

disallow bind_anon
require authc

Як я можу досягти тих самих глобальних налаштувань, але за допомогою нового методу конфігурації живого cn = config?

Відповіді:


5

Мало того, що ACL-адреси квантів - це погана річ, але щоб відповісти на ваше запитання:

ldapmodify
dn: cn = config
Changetype: змінити
add: olcDisallows
olcDisallows: bind_anon
-

dn: olcDatabase = {- 1} frontend, cn = config
Changetype: змінити
add: olcRequires
olcRequires: authc

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


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
Дякую, ви абсолютно праві, я редагував свою відповідь, як рекомендували.
Laryx Decidua

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

Дякую, ось так я зараз це роблю в базі даних. Однак моє питання полягало в тому, як це зробити в усьому світі.
Майкл П
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.