Nachtrag: Ich würde 389ds nicht mehr als erste Wahl für Unternehmen wählen, lass die Dokumentation aber online. OpenLDAP kann ACI mit einem Plugin und ist um etwa Faktor 100 schmaler. Zudem ist das Tooling in Cockpit nicht so wirklich ausgereift.
root@server:~# apt install 389-ds
Installiert Cockpit direkt mit
root@server:~# dscreate interactive
Install Directory Server (interactive mode)
===========================================
SELinux is disabled, will not relabel ports or files.
SELinux labels will not be applied, continue? [yes]:
Enter system's hostname [md.domain.tld]: ldap.domain.tld
Enter the instance name [ldap]: ldap
Enter port number [389]:
Create self-signed certificate database [yes]: no
Enter Directory Manager DN [cn=Directory Manager]:
Enter the Directory Manager password:
Confirm the Directory Manager Password:
Choose whether mdb or bdb is used. [mdb]:
Enter the lmdb database size [20Gb]: 2Gb
Enter the database suffix (or enter "none" to skip) [dc=ldap,dc=domain,dc=tld]: dc=domain,dc=tld
Create sample entries in the suffix [no]: yes
Do you want to start the instance after the installation? [yes]:
Are you ready to install? [no]: yes
./easyrsa --subject-alt-name="DNS:ldap.domain.tld,DNS:..." build-server-full ldap.domain.tld nopass
private/ldap. issued/ldap. ca.crt nach /etc/dirsrv/slapd-ldap/certs
root@md:/etc/dirsrv/slapd-ldap# chown -R dirsrv:dirsrv /etc/dirsrv/slapd-ldap/certs
root@md:/etc/dirsrv/slapd-ldap# chmod 600 dirsrv:dirsrv /etc/dirsrv/slapd-ldap/certs
# sollte leer sein
root@md:/etc/dirsrv/slapd-ldap# certutil -L -d sql:$PWD
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Wie immer dran denken hier muss evtl. die komplette chained CA genutzt werden wenn man intermediate CAs nutzt.
Diese Frage:
Enter Password or Pin for "NSS Certificate DB":
ist immer mit dem Pin in /etc/dir-srv/slapd-ldap/pwdfile.txt zu lösen.
root@md:/etc/dirsrv/slapd-ldap# dsconf ldap security ca-certificate add --file certs/ca.crt --name 'SuperCorp-ED25519-CA'
Successfully added CA certificate (SuperCorp-ED25519-CA)
# alternativ: certutil -d /etc/dirsrv/slapd-ldap -A -n "SuperCorp-CA" -t CT,, -a -i certs/ca.crt
root@md:/etc/dirsrv/slapd-ldap# certutil -L -d sql:.
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Self-Signed-CA CT,,
Server-Cert u,u,u
SuperCorp-CA CT,,
https://github.com/OpenVPN/easy-rsa/blob/master/doc/EasyRSA-Renew-and-Revoke.md
https://github.com/OpenVPN/easy-rsa/blob/master/doc/EasyRSA-Readme.md
Ein ServerClient Cert bauen ist nicht schwer (gut für replikation):
./easyrsa --subject-alt-name="IP:127.0.0.1,IP:127.0.1.1,IP:192.168.1.2,DNS:localhost,DNS:ldap.domain.tld" gen-req ldap.domain.tld nopass
# serverClient
./easyrsa sign-req serverClient ldap.domain.tld
müssen zwingend in PKCS#12 vorliegen und Server-Cert heissen
https://doc.opensuse.org/documentation/leap/archive/15.3/security/single-html/book-security/index.html#sec-security-ldap-server-ca
openssl pkcs12 -export -in issued/ldap.domain.tld.crt -inkey private/ldap.domain.tld.key -out /root/domain.tld.p12 -name Server-Cert
Die Frage nach Export Password einfach abnicken, der Schlüssel hat in der Regel keins. Nicht verunsichern lassen, das ist NICHT das dirsrv import passwort.
Altes Server Cert löschen
certutil -D -d . -n "Server-Cert"
Neues rein
pk12util -d . -i /root/ldap.domain.tld.p12
pk12util: PKCS12 IMPORT SUCCESSFUL
Herzlichen Glückwunsch.
ldapsearch -H ldap://ldap.domain.tld -D "cn=Directory Manager" -W \ -b "uid=user,ou=people,dc=domain,dc=tld" \ -s base "(objectclass=*)" \ "aclRights"
kadmin.local -q "addprinc -x dn=uid=domainUserN,ou=people,dc=it-domain,dc=tld domainUserN"
change password
kadmin.local -q "cpw domainUserN"
dsconf ldap config get nsslapd-errorlog-level nsslapd-errorlog-level: 16384
in Cockpit gibts Logging --> Errors log da stehen auch alle Level