LDAP

Création Docker OPENLDAP image OSIXIA / GITHUB avec réplication

image.png

creation fake Docker sur le serveur : CREATION LDAP TEST SANS REPLICATION POUR TESTER un LDIF.

LDAP_CID=$(docker run --restart always --name ldap-test --hostname "hostname" --env LDAP_BASE_DN="DC" --env LDAP_ORGANISATION="NOM" --env LDAP_DOMAIN="domaine" --env LDAP_ADMIN_PASSWORD=PASSWORD --env LDAP_TLS=false -v /data2/ldap:/var/lib/ldap -v /data2/slapd.d:/etc/ldap/slapd.d -p 1389:389 --detach osixia/openldap:1.5.0)


 

########################################################################################################################################

 
creation Vrai Docker sur srv 1 avec replication et sécurité certificat ect.. = c'est une commande entiere a cp

LDAP_CID=$(docker run --restart always --name ldap --hostname "hostname" --env LDAP_BASE_DN="DC" --env LDAP_ORGANISATION="NOM" --env LDAP_DOMAIN="domaine"  --env LDAP_ADMIN_PASSWORD=PASSWORD  --env LDAP_TLS=true --env LDAP_TLS_VERIFY_CLIENT=never --env LDAP_REPLICATION=true --env LDAP_REPLICATION_HOSTS="#PYTHON2BASH:['ldap://noomduldap','ldap://noomduldap']" --env LDAP_TLS_CRT_FILENAME=cert.crt --env LDAP_TLS_KEY_FILENAME=cert.key --env LDAP_TLS_CA_CRT_FILENAME=ca.crt -v /data/ldap:/var/lib/ldap -v /data/slapd.d:/etc/ldap/slapd.d --volume /etc/pki/openldap/pprod-2:/container/service/slapd/assets/certs -p 389:389 -p 636:636 --detach osixia/openldap:1.5.0)


 
creation Vrai Docker sur srv 2 avec replication sur le 1 et sécurité certificat ect.. = c'est une commande entiere a cp

LDAP_CID=$(docker run --restart always --name ldap --hostname "hostname" --env LDAP_BASE_DN="DC" --env LDAP_ORGANISATION="NOM" --env LDAP_DOMAIN="domaine"  --env LDAP_ADMIN_PASSWORD=PASSWORD --env LDAP_TLS=true --env LDAP_TLS_VERIFY_CLIENT=never --env LDAP_REPLICATION=true --env LDAP_REPLICATION_HOSTS="#PYTHON2BASH:['ldap://noomduldap','ldap://noomduldap']" --env LDAP_TLS_CRT_FILENAME=cert.crt  --env LDAP_TLS_KEY_FILENAME=cert.key --env LDAP_TLS_CA_CRT_FILENAME=ca.crt  -v /data/ldap:/var/lib/ldap -v /data/slapd.d:/etc/ldap/slapd.d --volume /etc/pki/openldap/pprod-2:/container/service/slapd/assets/certs -p 389:389 -p 636:636 --detach osixia/openldap:1.5.0)


Suppresion du docker et des data docker, vite fait et efficace, vous pouvez après recréer le ldap dockeriser avec les commande du dessus : 

image.png


########################################################################################################################################

Outils en interface sur windows qui aide a rentrer des ldif ou troublehsoot des compte ect … 

image.png

commande test ldap et autres voir si il répond. 

ldapsearch -x -H ldap://noomduldap  -b dc=,dc= -D "cn=,dc=,dc=" -W
ldappasswd -D "cn=,dc=,dc=" -W -S "uid=mail@domaine.com,ou=,ou=,dc=,dc="
ldapwhoami -x -D "uid=mail@domaine.com,ou=,ou=,dc=,dc=" -W -v
ldapsearch -x -H ldap://noomduldap -b dc=,dc= -D "cn=,dc=,dc=" -W
ldapwhoami -x -D "uid=mail@domaine.com,ou=,ou=,dc=,dc=" -W -v
ldapwhoami -x -D "uid=,ou=,ou=,dc=,dc=" -W –v

grep  -5ni 'test.test,' LdapExt-Prod-FINAL.ldif   = = pour rechercher les user ou erreur dans un contexte chaine de caractère sur du dn ou uid


commande test ldap et autres voir si il répond. 

image.png


Debug docker logs : 

image.png

Créer un ldif : 

ldapsearch -x -H ldap://localhost -D "cn=admin,dc=example,dc=com" -w admin_password -b "dc=example,dc=com" "(objectClass=*)" > backup.ldif

Création OpenLdap

Install package openldap, on utilise yum pour éviter les problèmes de dépendances

 

yum -y install openldap* migrationtools

image.png

Une fois installé, créé le Password admin du ldap

slappaswd

image.png

Copier le SHA pour l'intégrer plus tard dans le fichier de configuration
Accéder au dossier config du ldap et modifier le fichier olcDatabase={2}hdb.ldif

image.png

Modifier les paramètres "olcSuffix" et  "olcRootDN" selon votre domaine et ajouter "olcRootPW"image.png

Ajout des droits de monitor au compte en modifiant le fichier olcDatabase={1}monitor.ldif :image.png

Modifier les paramètres "olcAccess" de votre domaine et ajouterimage.png

Verifier la configuration avec la commande suivante

slaptest -u

image.png

Nous pouvons ignorer les erreurs checksum

Démarrer le service, l'ajouter au démarrage automatique et vérifier le démarrageimage.png

Copier le sample de la base et attribuer les droits :
image.png

Créé les schéma pour le ldap :

image.png

image.pngimage.png

Passage ldif, changement des information

Passage d'un ldif qui parvient d'une autre entité, il faut passer ce script pour retirer les informations du fichier ldif pour ne pas avoir l'erreur CONSTRAINTE 61

#SCRIPT 
#!/bin/bash
echo "inupt file LdapExt-Prod.ldif "cat $1 | grep --binary-files=text -vi structuralObjectClass > tmp1.ldif
cat tmp1.ldif | grep --binary-files=text -vi entryUUID > tmp2.ldif
cat tmp2.ldif | grep --binary-files=text -vi creatorsName > tmp3.ldif
cat tmp3.ldif | grep --binary-files=text -vi createTimestamp > tmp4.ldif
cat tmp4.ldif | grep --binary-files=text -vi entryCSN > tmp5.ldif
cat tmp5.ldif | grep --binary-files=text -vi modifiersName > tmp6.ldif
cat tmp6.ldif | grep --binary-files=text -vi modifiersName > tmp7.ldif
cat tmp7.ldif | grep --binary-files=text -vi modifyTimestamp > tmp8.ldif
cat tmp8.ldif | grep --binary-files=text -vi contextCSN > $1-final.ldif
echo "conversion en cours ...\n ...\n...."
echo " fin Conversion , OutPUT file : import-v2.ldif  "
# + suppression de l'ou et de l'admin


Il faut aussi ouvrir le ldif et retirer les 2 premieres description ADMIN + OU à la fin du script .image.png

OpenLdap commande

  1. ldapwhoami -x -D "uid=*** -W -v

    • Cette commande permet de s'authentifier avec l'utilisateur spécifié et affiche l'identité LDAP de l'utilisateur actuel (fonction whoami).

  2. ldapsearch -x -LLL -D "cn=admin,dc=***,dc=***" -W -b "ou=extern,ou=users,dc=***,dc=***" "(uid=*)" | grep dn

    • Effectue une recherche dans l'annuaire LDAP en filtrant sur l'attribut uid et extrait les entrées de type dn (distinguished name).

  3. cat comptes_geode_extern.ldif | grep -5ni granet

    • Affiche les 5 lignes avant et après chaque occurrence de "granet" dans le fichier comptes_geode_extern.ldif.

  4. ldapadd -x -D "cn=admin,dc=***,dc=***" -W -f comptes_geode_extern.ldif

    • Ajoute des entrées LDAP à partir du fichier comptes_geode_extern.ldif.
  5. ldapdelete -x -r "ou=users,dc=***,dc=***" -W -D "cn=admin,dc=***,dc=***"

    • Supprime des entrées récursivement dans l'OU users de l'annuaire LDAP.

  6. ldapsearch -x -LLL -D "cn=admin,dc=***,dc=***" -W -b "cn=admin,dc=***,dc=***" "(objectClass=*)"

    • Effectue une recherche LDAP sur l'OU admin et récupère toutes les entrées de ce conteneur.

  7. ldapwhoami -x -D "cn=admin-byzance,dc=***,dc=***" -W -H ldap://***

    • S'authentifie sur un serveur LDAP distant et affiche l'identité LDAP de l'utilisateur.

  8. ldapsearch -x -H ldap://*** -D "cn=admin,dc=***,dc=***" -W -b "dc=***,dc=***" "(objectClass=*)" > backup-jimmy-test.ldif

    • Effectue une recherche sur le serveur LDAP distant et exporte les résultats dans un fichier  backup-jimmy-test.ldif.

  9. ldapsearch -x -H ldap://*** -D "cn=admin,dc=***,dc=***" -W -b "ou=vm,ou=users,dc=***,dc=***" "(objectClass=*)" > ou-vm.ldif

    • Recherche les objets dans l'OU vm de l'annuaire LDAP distant et exporte les résultats dans le fichier OU-VM.ldif.

  10. ldapsearch -x -H ldap://*** -D "cn=admin,dc=***,dc=***" -W -b "ou=byzance,ou=users,dc=***,dc=***" "(objectClass=*)" | grep -c "^dn: "

    • Recherche les objets dans l'OU byzance et compte le nombre d'entrées dans le résultat.

  11. grep -c "^dn: uid=" OU-FULL-BACKUP-PROD/full-backup-prod-09-09-2024.ldif > directement sur un file.ldif

    • Recherche dans un fichier LDIF et compte le nombre d'entrées de type dn pour l'attribut uid.