====== LDAP einrichten ====== LDAP Server installieren apt-get install slapd ldap-utils Ueber den folgenden Befehl kann dann der User und DN konfiguriert werden. dpkg-reconfigure slapd Einfaches Tool zum Administrieren apt-get install jxplorer ====Loglevel Ändern==== Zum Ändern des Loglevels muss zuerst eine LIDF Datei erstellt werden mit folgendem Inhalt: Häufige LogLevelTypen: stats | any | none dn: cn=config changeType: modify replace: olcLogLevel olcLogLevel: stats Danach wird die Datei per Ldapmodify eingelesen: ldapmodify -Y EXTERNAL -H ldapi:/// -f loglevel.ldif Mit folgendem Befehl kann der aktuelle LogLevel angezeigt werden ldapsearch -Y external -H ldapi:/// -b cn=config "(objectClass=olcGlobal)" olcLogLevel Die Logeinträge werden in die Datei /var/log/syslog geschrieben. ====TLS einrichten==== Zertifikate erstellen sudo apt-get install gnutls-bin sudo mkdir /var/ssl cd /var/ssl Eigenes CA-Zertifikat erstellen ca.cfg neu anlegen cn = meinedomain ca cert_signing_key sudo sh -c "certtool --generate-privkey > cakey.pem" sudo certtool --generate-self-signed --load-privkey cakey.pem --template ca.cfg --outfile cacert.pem Private Key generieren sudo sh -c "certtool --generate-privkey > ldap_slapd_key.pem Server Zertifikat slapd.cfg neu anlegen organization = oesi cn = ldap.oesi.org tls_www_server encryption_key signing_key sudo certtool --generate-certificate --load-privkey ldap_slapd_key.pem --load-ca-certificate cacert.pem --load-ca-privkey cakey.pem --template slapd.cfg --outfile ldap_slapd_cert.pem Zertifikate installieren sudo install -D -o openldap -g openldap -m 600 /var/ssl/ldap_slapd_key.pem /etc/ssl/private/ldap_slapd_key.pem sudo install -D -o openldap -g openldap -m 600 /var/ssl/ldap_slapd_cert.pem /etc/ssl/certs/ldap_slapd_cert.pem sudo install -D -o openldap -g openldap -m 600 /var/ssl/cacert.pem /etc/ssl/certs/ldap_slapd_cacert.pem Zum hinzufügen der Zertifikate zum Server tls.ldif erstellen mit folgendem inhalt dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/ldap_slapd_cacert.pem dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap_slapd_key.pem dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap_slapd_cert.pem und einlesen ldapadd -Y EXTERNAL -H ldapi:/// -f tls.ldif /etc/ldap/ldap.conf anpassen BASE dc=oesi,dc=org URI ldap://localhost ldap_version 3 #ssl start_tls #TLS_CACERT /etc/ssl/certs/ldap_slapd_cacert.pem TLS_REQCERT never Apache neu starten damit die ldap.conf neu eingelesen wird! Bei dem Fehler main: TLS init def ctx failed: -1 Openldap zur Gruppe ssl-cert hinzufügen usermod -a -G ssl-cert openldap Falls der folgende Fehler auftritt liegt es eventuell an den Berechtigungen der Zertifikate. Diese müssen vom User openldap lesbar sein. Und sollten von anderen Usern nicht lesbar sein. modifying entry "cn=config" ldap_modify: Other (e.g., implementation specific) error (80) ===== Sonstiges ====== LDAP Server neu starten /etc/init.d/slapd resart Verschlüsselte suche ldapsearch -x -ZZ ===== PHP CODE ========= switch($type) { case 'starttls': $port=389; $ldap_url='ldap://'.LDAP_SERVER; break; case 'ldaps': $port=636; $ldap_url='ldaps://'.LDAP_SERVER; break; case 'plain': $port=389; $ldap_url='ldap://'.LDAP_SERVER; break; } $ldap_conn = ldap_connect($ldap_url, $port); ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); if($type=='starttls') if(!ldap_start_tls($this->ldap_conn)) die('StartTLS fehlgeschlagen'); ldap_bind($ldap_conn, $binddn,$bindpw);