Interdire la liaison anonyme globale avec cn = config

9

Avec slapd.conf, vous pouvez globalement désactiver la liaison anonyme et exiger une authentification avec les directives statiques suivantes:

disallow bind_anon
require authc

Comment puis-je obtenir les mêmes paramètres globaux, mais en utilisant la nouvelle méthode de configuration en direct cn = config?

Michael P
la source

Réponses:

5

Non pas que les ACL de quanta soient une mauvaise chose, mais pour répondre à votre question:

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

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

Veuillez noter que ldapmodify est sensible aux espaces (de fin), donc un copier-coller direct ne fonctionnera pas (et peut ne pas vous authentifier correctement non plus). De plus, le dn que vous utilisez aura besoin d'un accès en écriture à la base de données cn = config.

84104
la source
11

Variation sur le même thème, je l'ai essayé, fonctionne: conseils de sécurité LDAP sur SysadminTalk

Sommaire:

1) Créez un fichier, appelons-le disable_anon_frontend.ldifavec le contenu suivant:

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

2) Créez un autre fichier appelé disable_anon_backend.ldifavec le contenu suivant:

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

3) Puis sur le serveur, modifiez le LDAP en émettant les commandes suivantes:

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) Vérifiez en exécutant la requête anon suivante: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn(utilisez vos dc=...paramètres le cas échéant).

Si vous voyez le message d'erreur ci-dessous, l'accès anonyme a été désactivé avec succès:

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

Bonne chance!

Laryx Decidua
la source
2
Bienvenue dans Server Fault! Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
HopelessN00b
2
Merci, vous avez absolument raison, j'ai modifié ma réponse comme recommandé.
Laryx Decidua
1

Je n'ai pas testé mais essayez quelque chose comme ceci:

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
quanta
la source
Merci, c'est ainsi que je le fais actuellement par base de données. Cependant, ma question était de savoir comment le faire à l'échelle mondiale.
Michael P