OpenLDAP Manuelle Einrichtung (OLC)
Manuelle Einrichtung (OLC)
Diese Anleitung beschreibt die Einrichtung von OpenLDAP ohne den interaktiven Dialog von dpkg-reconfigure. Dies ist der "harte Weg" über LDIF-Dateien und das cn=config Backend.
System bereinigen
Um von vorne zu beginnen, müssen alle alten Konfigurationen und Datenbanken restlos entfernt werden.
- systemctl stop slapd
- apt purge slapd ldap-utils
- rm -rf /var/lib/ldap/*
- rm -rf /etc/ldap/slapd.d/*
Installation ohne Automatik
Wir installieren die Pakete, unterdrücken aber die automatische Datenbank-Erstellung durch Debian.
- export DEBIAN_FRONTEND=noninteractive
- apt install slapd ldap-utils
Datenbank-Verzeichnis vorbereiten
Wir erstellen manuell das Verzeichnis für die Datenbank-Files der Domain it213.int.
- mkdir -p /var/lib/ldap/it213
- chown ldap:ldap /var/lib/ldap/it213
On-Line Configuration anpassen
Die Konfiguration erfolgt im laufenden Betrieb über den lokalen Socket (ldapi) und das EXTERNAL-Protokoll.
Domain und Admin-DN festlegen
- cat <<EOF > backend.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=it213,dc=int
-
replace: olcRootDN
olcRootDN: cn=admin,dc=it213,dc=int
-
replace: olcDbDirectory
olcDbDirectory: /var/lib/ldap/it213
EOF
- ldapmodify -Y EXTERNAL -H ldapi:/// -f backend.ldif
Admin-Passwort setzen
Zuerst erzeugen wir einen Hash für das Passwort "123Start$".
- slappasswd -s 123Start$
- Die Ausgabe (z.B. {SSHA}xyz...) kopieren und im nächsten Schritt einsetzen.
- cat <<EOF > password.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}DEIN_HASH_HIER_EINSETZEN
EOF
- ldapmodify -Y EXTERNAL -H ldapi:/// -f password.ldif
Schemata importieren
Ohne Schemata kennt LDAP keine Attribute wie uidNumber oder posixAccount. Wir laden die wichtigsten Standards.
- ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
- ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
- ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
Grundstruktur anlegen
Nun befüllen wir den leeren Verzeichnisbaum mit den Basis-Containern (Organizational Units).
- cat <<EOF > struktur.ldif
dn: dc=it213,dc=int objectClass: top objectClass: dcObject objectClass: organization o: it213 dc: it213 dn: ou=users,dc=it213,dc=int objectClass: organizationalUnit ou: users dn: ou=groups,dc=it213,dc=int objectClass: organizationalUnit ou: groups
EOF
- ldapadd -x -D cn=admin,dc=it213,dc=int -w 123Start$ -f struktur.ldif
Kontrolle
Prüfung, ob der Baum korrekt angelegt wurde:
- ldapsearch -x -b dc=it213,dc=int