In diesem Tutorial werfen wir einen Blick auf die Installation und Konfiguration des OpenLDAP-Servers unter Ubuntu 16.04 LTS. Wir werden auch den phpLDAPadmin installieren webbasiertes Verwaltungstool.
Was ist OpenLDAP
OpenLDAP ist ein quelloffener und schneller Verzeichnisserver, der Netzwerkclients Verzeichnisdienste bereitstellt. Clientanwendungen stellen über das Lightweight Directory Access Protocol (LDAP) eine Verbindung zum OpenLDAP-Server her um auf auf diesem Server gespeicherte Organisationsinformationen zuzugreifen. Bei entsprechendem Zugriff können Clients das Verzeichnis durchsuchen, Datensätze im Verzeichnis modifizieren und manipulieren. OpenLDAP ist sowohl beim Lesen als auch beim Modifizieren von Daten im Verzeichnis effizient.
OpenLDAP-Server werden am häufigsten verwendet, um eine zentralisierte Verwaltung von Benutzerkonten bereitzustellen. Sie können beispielsweise ein Konto in OpenLDAP erstellen und wenn es mit einem Mailserver, FTP-Server, Samba-Server oder einem anderen Server verbunden ist, können Sie sich mit dem Konto bei diesen Servern anmelden, ohne für jeden Server ein neues Konto zu erstellen.
So installieren Sie OpenLDAP Server auf Ubuntu 16.04
Führen Sie den folgenden Befehl aus, um den OpenLDAP-Server und die Client-Befehlszeilendienstprogramme aus dem Ubuntu 16.04-Paket-Repository zu installieren. slapd
steht für den Stand-Alone LDAP Daemon .
sudo apt install slapd ldap-utils
Sie werden aufgefordert, ein Passwort für den Admin-Eintrag im LDAP-Verzeichnis festzulegen.
Sobald dies erledigt ist, wird slapd automatisch gestartet. Sie können den Status überprüfen mit:
systemctl status slapd
Standardmäßig läuft es als openldap
Benutzer wie in /etc/default/slapd
definiert Datei.
Grundlegende Konfiguration nach der Installation
Der Installationsprozess installiert das Paket ohne Konfigurationen. Damit unser OpenLDAP-Server ordnungsgemäß läuft, müssen wir einige grundlegende Konfigurationen nach der Installation vornehmen. Führen Sie den folgenden Befehl aus, um den Konfigurationsassistenten zu starten.
sudo dpkg-reconfigure slapd
Sie müssen eine Reihe von Fragen beantworten. Beantworten Sie diese Fragen wie folgt:
Konfiguration des LDAP-Servers auslassen:NEIN .
DNS-Domänenname:Geben Sie Ihren Domänennamen wie linuxbabe.com
ein . Sie müssen einen korrekten A-Eintrag für Ihren Domainnamen festlegen. Sie können auch eine Subdomain wie directory.linuxbabe.com
verwenden . Diese Informationen werden verwendet, um den Basis-DN (eindeutiger Name) zu erstellen des LDAP-Verzeichnisses.
Organisationsname:Geben Sie Ihren Organisationsnamen wie LinuxBabe ein.
Administratorpasswort:Geben Sie dasselbe Passwort ein, das Sie während der Installation festgelegt haben.
Datenbank-Backend:MDB .
BDB (Berkeley Database) ist langsam und umständlich. Es ist veraltet und wird in zukünftigen OpenLDAP-Versionen nicht mehr unterstützt. HDB (Hierarchical Database) ist eine Variante des BDB-Backends und wird ebenfalls veraltet sein.
MDB Lesevorgänge sind 5-20x schneller als BDB. Schreibvorgänge sind 2-5x schneller. Und es verbraucht 1/4 so viel RAM wie BDB. Also wählen wir MDB als Datenbank-Backend.
Möchten Sie, dass die Datenbank entfernt wird, wenn slapd gelöscht wird? Nein .
Alte Datenbank verschieben? Ja .
LDAPv2-Protokoll zulassen? Nein . Die neueste Version von LDAP ist LDAP v.3, entwickelt 1997. LDAPv2 ist veraltet.
Jetzt konfiguriert der Prozess den OpenLDAP-Dienst gemäß Ihren Antworten neu. Ihr OpenLDAP-Server ist jetzt einsatzbereit.
Konfigurieren der LDAP-Clients
/etc/ldap/ldap.conf
ist die Konfigurationsdatei für alle OpenLDAP-Clients. Öffnen Sie diese Datei.
sudo nano /etc/ldap/ldap.conf
Wir müssen zwei Parameter angeben:den Basis-DN und die URI unseres OpenLDAP-Servers. Kopieren Sie den folgenden Text und fügen Sie ihn am Ende der Datei ein. Ersetzen Sie your-domain
und com
nach Bedarf.
BASE dc=your-domain,dc=com URI ldap://localhost
Die erste Zeile definiert den Basis-DN. Es teilt den Client-Programmen mit, wo sie ihre Suche im Verzeichnis beginnen sollen. Wenn Sie bei der Konfiguration des OpenLDAP-Servers eine Subdomain verwendet haben, müssen Sie die Subdomain hier wie folgt hinzufügen
BASE dc=subdomain,dc=your-domain,dc=com
Die zweite Zeile definiert die URI unseres OpenLDAP-Servers. Da sich der LDAP-Server und -Client auf demselben Rechner befinden, sollten wir den URI auf ldap://localhost
setzen .
Testen des OpenLDAP-Servers
Nachdem der OpenLDAP-Server ausgeführt wird und die Client-Konfiguration abgeschlossen ist, führen Sie den folgenden Befehl aus, um Testverbindungen zum Server herzustellen.
ldapsearch -x
Ausgabe:
# extended LDIF # # LDAPv3 # base <dc=linuxbabe,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # linuxbabe.com dn: dc=linuxbabe,dc=com objectClass: top objectClass: dcObject objectClass: organization o: LinuxBabe # admin, linuxbabe.com dn: cn=admin,dc=linuxbabe,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
Ergebnis:0 Erfolg zeigt an, dass der OpenLDAP-Server funktioniert. Wenn Sie die folgende Zeile erhalten, funktioniert es nicht.
result: 32 No such object
Installation von phpLDAPadmin
phpLDAPadmin ist ein webbasiertes Programm zur Verwaltung von OpenLDAP-Servern. Die Befehlszeilenprogramme können verwendet werden, um unseren OpenLDAP-Server zu verwalten, aber für diejenigen, die eine benutzerfreundliche Oberfläche wünschen, können Sie phpLDAPadmin installieren.
Führen Sie den folgenden Befehl aus, um phpLDAPadmin aus dem Ubuntu-Paket-Repository zu installieren.
sudo apt install phpldapadmin
Wenn auf Ihrem Ubuntu-Server kein Webserver läuft, installiert der obige Befehl den Apache-Webserver als Abhängigkeit. Wenn es bereits einen Webserver wie Nginx gibt, wird Apache nicht installiert.
Wenn Sie Apache verwenden
Die Installation legt eine Konfigurationsdatei phpldapadmin.conf
ab unter /etc/apache2/conf-enabled/
Verzeichnis. Sobald die Installation abgeschlossen ist, können Sie auf die phpLDAPadmin-Webschnittstelle unter
your-server-ip/phpldapadmin
oder
your-domain.com/phpldapadmin
Um HTTPS zu aktivieren, können Sie ein kostenloses TLS-Zertifikat erhalten und installieren, das von Let’s Encrypt ausgestellt wurde.
Wenn Sie Nginx verwenden
Nginx-Benutzer müssen manuell eine Serverblockdatei für phpLDAPadmin erstellen.
sudo nano /etc/nginx/conf.d/phpldapadmin.conf
Kopieren Sie den folgenden Text und fügen Sie ihn in die Datei ein. Ersetzen Sie ldap.your-domain.com durch Ihren bevorzugten Domainnamen.
server { listen 80; server_name ldap.your-domain.com; root /usr/share/phpldapadmin/htdocs; index index.php index.html index.htm; error_log /var/log/nginx/phpldapadmin.error; access_log /var/log/nginx/phpldapadmin.access; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } }
Speichern und schließen Sie die Datei. Senden Sie dann eine SMS mit Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Jetzt können Sie unter ldap.your-domain.com
auf die phpLDAPadmin-Weboberfläche zugreifen . Um HTTPS zu aktivieren, können Sie ein kostenloses TLS-Zertifikat erhalten und installieren, das von Let’s Encrypt ausgestellt wurde.
phpLDAPadmin konfigurieren
Wir müssen einige Konfigurationen vornehmen, genau wie beim Befehlszeilen-Client. Die phpLDAPadmin-Konfigurationsdatei befindet sich unter /etc/phpldapadmin/config.php
.
sudo nano /etc/phpldapadmin/config.php
Da OpenLDAP und phpLDAPadmin auf demselben Rechner laufen, werden wir phpLDAPadmin so konfigurieren, dass es sich mit localhost auf dem Standard-LDAP-Port 389 ohne SSL/TLS-Verschlüsselung verbindet.
Zeile 293 gibt an, dass phpLDAPadmin sich mit localhost verbindet.
$servers->setValue('server','host','127.0.0.1');
Zeile 296 ist standardmäßig auskommentiert, was bedeutet, dass der Standardport 389 verwendet wird.
// $servers->setValue('server','port',389);
Zeile 335 ist standardmäßig auskommentiert, was bedeutet, dass die TLS-Verschlüsselung nicht aktiviert ist.
// $servers->setValue('server','tls',false);
Gehen Sie dann zu Zeile 300.
$servers->setValue('server','base',array('dc=example,dc=com'));
Ändern Sie es in:
$servers->setValue('server','base',array());
Dadurch erkennt phpLDAPadmin automatisch den Basis-DN Ihres OpenLDAP-Servers. Als nächstes können Sie die anonyme Anmeldung deaktivieren. Gehen Sie zu Zeile 453.
// $servers->setValue('login','anon_bind',true);
Standardmäßig ist die anonyme Anmeldung aktiviert. Um es zu deaktivieren, müssen Sie das Kommentarzeichen (die beiden Schrägstriche) entfernen und true in false ändern.
$servers->setValue('login','anon_bind',false);
Wahrscheinlich möchten Sie Vorlagenwarnungen deaktivieren, da diese Warnungen lästig und unwichtig sind. Gehen Sie zu Zeile 161.
// $config->custom->appearance['hide_template_warning'] = false;
Entfernen Sie das Kommentarzeichen und ändern Sie false in true.
$config->custom->appearance['hide_template_warning'] = true;
Speichern und schließen Sie die Datei.
Zugriff auf die phpLDAPadmin-Weboberfläche
Wir können jetzt das Tool phpLDAPadmin mit unserem Webbrowser testen. Wenn phpLDAPadmin zum ersten Mal geladen wird, sieht es etwa so aus.
Um sich bei unserem OpenLDAP-Server anzumelden, klicken Sie auf den Login-Link. Sie sehen das Anmeldedialogfeld. Der standardmäßige Login-DN ist cn=admin,dc=example,dc=com
. Möglicherweise müssen Sie dc=example
ändern . In meinem Fall muss ich den Login-DN in cn=admin,dc=linuxbabe,dc=com
ändern .
Das Passwort ist das Admin-Passwort, das Sie während der Konfiguration des OpenLDAP-Servers festgelegt haben. Sobald Sie sich bei phpLDAPadmin anmelden, können Sie diesen Verzeichnisserver verwalten.
Das ist es! Ich hoffe, dieses Tutorial hat Ihnen geholfen, beide OpenLDAP-Server zu installieren und zu konfigurieren und phpLDAPadmin auf Ubuntu 16.04. Im nächsten Tutorial werden wir sehen, wie Ubuntu konfiguriert wird, um Benutzeranmeldungen mit OpenLDAP zu authentifizieren.