389 Directory Server ist ein Open-Source-LDAP-Server für Unternehmen.
Damit können sehr große Datenmengen verarbeitet werden. Einer der großen Vorteile des 389-LDAP-Servers besteht darin, dass er blitzschnell ist und mehrere tausend Vorgänge pro Sekunde verarbeiten kann.
Diese verfügt über mehrere erweiterte Funktionen, einschließlich asynchroner Multi-Master-Replikation für horizontale Skalierung, die wiederum 100 % Fehlertoleranz und extrem hohen Durchsatz bietet.
Denken Sie auch daran, dass dies TLS, SASL für Authentifizierung und Transport unterstützt. Der 389-Verzeichnisserver ist vollständig LDAPv3-kompatibel.
Dieses Tutorial erklärt, wie Sie den 389-Verzeichnisserver in Ihrer Linux-Umgebung installieren und konfigurieren.
EPEL-Repository einrichten
Wenn Sie kein EPEL-Repository-Setup haben, stellen Sie sicher, dass Sie es einrichten, da wir die 389 zugehörigen Pakete von EPEL installieren werden.
Laden Sie zuerst die Epel-RPM von der Fedora-Website herunter, wie unten gezeigt.
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
Installieren Sie als Nächstes das Epel-Repository auf Ihrem Server.
# rpm -ivh epel-release-7-9.noarch.rpm warning: epel-release-7-9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:epel-release-7-9 ################################# [100%]
Wenn Sie an OpenLDAP anstelle des 389-Verzeichnisservers interessiert sind, lesen Sie Folgendes:How Install and Configure OpenLDAP on Linux
/etc/host-Datei richtig einrichten
Stellen Sie sicher, dass die Hostdatei richtig eingerichtet ist.
In diesem Beispiel ist das Folgende die aktuelle Einrichtung der /etc/host-Datei.
# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.101.10 deploy.thegeekstuff.com deploy
Oben:
- 192.168.101.10 – Ist die IP-Adresse des Servers
- deploy.thegeekstuff.com – Dies ist der FQDN des Servers, auf dem der 389-Verzeichnisserver installiert wird
- bereitstellen – Dies ist der Hostname des Servers
Geeignete sysctl-Parameter einrichten
Fügen Sie Ihrer Datei /etc/sysctl.conf die folgende Zeile hinzu:
# cat /etc/sysctl.conf net.ipv4.tcp_keepalive_time = 300 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max = 64000
Abhängig davon, wie viele Ressourcen Sie auf Ihrem System haben, möchten Sie vielleicht die obige Dateimaximalzahl etwas mehr erhöhen.
Führen Sie den Befehl „sysctl -p“ wie unten gezeigt aus, um sicherzustellen, dass die oben genannten Änderungen an Ihrem System vorgenommen werden.
# sysctl -p net.ipv4.tcp_keepalive_time = 300 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max = 64000
Überprüfen Sie, ob die Änderungen vorgenommen wurden:
# sysctl fs.file-max net.ipv4.tcp_keepalive_time net.ipv4.ip_local_port_range fs.file-max = 64000 net.ipv4.tcp_keepalive_time = 300 net.ipv4.ip_local_port_range = 1024 65000
Geeignete Ulimit-Werte einstellen
Setzen Sie den ulimit-Wert in Ihrer Datei /etc/profile auf 8192, wie unten gezeigt.
# echo "ulimit -n 8192" >> /etc/profile
Vergewissern Sie sich, dass dieser Eintrag zur Datei /etc/profile hinzugefügt wurde.
# tail /etc/profile .. .. unset i unset -f pathmunge ulimit -n 8192
Pam.d-Anmeldedatei ändern
Ändern Sie die Datei /etc/pam.d/login und fügen Sie die folgende Zeile hinzu, um die Datei pam_limits.so einzuschließen, wie unten gezeigt.
# vi /etc/pam.d/login session required /usr/lib64/security/pam_limits.so
Stellen Sie sicher, dass die Datei pam_limits.so auf Ihrem System vorhanden ist.
# ls -l /usr/lib64/security/pam_limits.so -rwxr-xr-x. 1 root root 19584 Aug 18 2015 /usr/lib64/security/pam_limits.so
Hinweis:Verwenden Sie auf 32-Bit Folgendes, da der Speicherort dieser Datei anders ist.
# vi /etc/pam.d/login session required /lib/security/pam_limits.so
LDAP-Admin-Benutzer erstellen
Erstellen Sie einen Benutzer namens ldapadmin und weisen Sie ein Passwort wie unten gezeigt zu:
useradd ldapadmin passwd ldapadmin
Sobald Sie den LDAP-Server richtig eingerichtet haben, hilft Ihnen Folgendes:So fügen Sie LDAP-Benutzer und -Gruppen hinzu
Installieren Sie 389 Directory Server Base und OpenLDAP Client
Als Nächstes installieren Sie das 389-Verzeichnisserver-Basispaket und die OpenLDAP-Clientdienstprogrammpakete. Wir müssen diese beiden Pakete installieren:
- 389-ds-base.x86_64
- openldap-clients.x86_64
Installieren Sie mit dem Befehl yum die beiden obigen Pakete:
# yum install 389-ds-base.x86_64 openldap-clients.x86_64
Abgesehen von der Installation des Pakets 389-ds-base und openldap-client werden abhängig von Ihrem System auch die folgenden abhängigen Pakete installiert:
- 389-ds-base-libs
- GeoIP
- bind-libs
- bind-utils
- cyrus-sasl-gssapi
- cyrus-sasl-md5
- Libik
- perl-Archiv-Tar
- perl-DB_Datei
- perl-IO-Zlib
- perl-Mozilla-LDAP
- perl-NetAddr-IP
- Perl-Paket-Konstanten
- svrcore
Auf diesem speziellen System wurden die folgenden Pakete ebenfalls aktualisiert, als die beiden oben genannten Pakete installiert wurden:
- bind-libs-lite
- Bindungslizenz
- openldap
Wenn Sie das EPEL-Repository zum ersten Mal auf Ihrem System verwenden, werden Sie möglicherweise aufgefordert, den Schlüssel wie unten gezeigt zu akzeptieren. Sagen Sie hier „y“.
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <[email protected]>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-9.noarch (installed) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Is this ok [y/N]: y
Installieren Sie 389 Directory Server Admin-Pakete
Installieren Sie als Nächstes die folgenden Pakete, die sich auf die Verwaltung des 389-LDAP-Servers beziehen:
- 389-ds.noarch Dies ist die 389-Verzeichnis-, Verwaltungs- und Konsolensuite
- 389-admin.x86_64 Dies ist der Administrator für den 389-Verwaltungsserver
- 389-adminutil.x86_64 Enthält die Dienstprogramme und Bibliotheken, die für die 389-Administration erforderlich sind
- 389-ds-console-doc.noarch Dies ist eine webbasierte Dokumentation für die Verwaltungskonsole des 389-Verzeichnisservers
Verwenden Sie den Befehl yum und installieren Sie diese 389 Verzeichnisserver-Administratorpakete wie unten gezeigt:
# yum install 389-admin.x86_64 \ 389-adminutil.x86_64 389-ds.noarch \ 389-ds-base.x86_64 389-ds-console-doc.noarch
Abgesehen von der Installation dieser 4 Pakete werden abhängig von Ihrem System auch die folgenden abhängigen Pakete installiert:
- 389-Admin-Konsole
- 389-admin-console-doc
- 389-Konsole
- 389-ds-Konsole
- 389-dsgw
- copy-jdk-configs
- idm-Konsolen-Framework
- java-1.8.0-openjdk-headless
- javapackages-tools
- jss
- ldapjdk
- libxslt
- lksctp-tools
- mod_nss
- Perl-CGI
- perl-FCGI
- python-javapackages
- python-lxml
- tzdata-java
Auf diesem speziellen System wurden die folgenden Pakete ebenfalls aktualisiert, als die obigen Pakete installiert wurden:
- chkconfig
- nsp
- nss
- nss-softokn
- nss-softokn-freebl
- nss-sysinit
- nss-tools
- nss-util
Setup 389 Directory Server – Führen Sie setup-ds-admin.pl aus
Führen Sie nach der Installation der erforderlichen 389-LDAP-Serverpakete das Skript setup-ds-admin.pl aus, das die Konfiguration des 389-Verzeichnisservers auf Ihrem System konfiguriert.
# setup-ds-admin.pl
Das obige Programm fordert Sie auf, mehrere Werte einzugeben. Die meisten von ihnen sind intuitiv und unkompliziert.
Aber ich habe unten eine Teilausgabe von überall dort gezeigt, wo Benutzereingaben angefordert werden.
Setup 389 Directory Server – Erste Warnmeldung
Während der ersten Eingabeaufforderungen des obigen setup-ds-admin.pl-Skripts können je nach Ihrer Systemkonfiguration die folgenden WARNUNG-Meldungen ausgegeben werden. Hier können Sie „Ja“ sagen, um fortzufahren:
389 Directory Server system tuning analysis version 14-JULY-2016. NOTICE : System is x86_64-unknown-linux3.10.0-327.10.1.el7.x86_64 (2 processors). WARNING: There are only 1024 file descriptors (soft limit) available, which limit the number of simultaneous connections. WARNING : The warning messages above should be reviewed before proceeding. Would you like to continue? [no]: yes
Setup 389 Directory Server – Wählen Sie den typischen Setup-Typ
Wenn Sie neu beim 389-Verzeichnisserver sind, wählen Sie im folgenden Bildschirm das typische Setup, das alle allgemeinen Konfigurationsoptionen für Sie einrichtet.
1. Express Allows you to quickly set up the servers using the most common options and pre-defined defaults. Useful for quick evaluation of the products. 2. Typical Allows you to specify common defaults and options. 3. Custom Allows you to specify more advanced options. This is recommended for experienced server administrators only. To accept the default shown in brackets, press the Enter key. Choose a setup type [2]: 2
Setup 389 Directory Server – FQDN eingeben
Wenn Sie Ihre /etc/hosts-Datei wie in einem der vorherigen Schritte erklärt richtig eingerichtet haben, sollte sie Ihren Computernamen hier richtig aufnehmen, wie unten gezeigt.
Sie müssen hier nur die Eingabetaste drücken und weitermachen.
Computer name [deploy.thegeekstuff.com]:
Wenn Ihr Server nicht über eine ordnungsgemäße FQDN-Einrichtung verfügt, wird diese Fehlermeldung während der Ausführung Ihres setup-ds-admin.pl-Skripts angezeigt. Drücken Sie Strg-C und kommen Sie heraus, beheben Sie das FQDN-Problem und führen Sie dann setup-ds-admin.pl erneut aus.
WARNING: There are problems with the hostname. The hostname 'deploy' does not look like a fully qualified host and domain name. Please check the spelling of the hostname and/or your network configuration. If you proceed with this hostname, you may encounter problems. Do you want to proceed with hostname 'deploy'? [no]: no Computer name [deploy]: ^C
Sie können den FQDN auch wie unten gezeigt als Parameter an das Skript setup-ds-admin.pl übergeben:
# setup-ds-admin.pl General.FullMachineName=deploy.thegeekstuff.com .. Computer name [deploy.thegeekstuff.com]: ..
389-Verzeichnisserver einrichten – LDAP-Admin-Benutzer eingeben
Standardmäßig wird dirsrv als Benutzername und Gruppe verwendet. Da wir in einem unserer vorherigen Schritte einen Benutzer namens ldapadmin erstellt haben, geben Sie diesen hier an.
System User [dirsrv]: ldapadmin System Group [dirsrv]: ldapadmin
389 Verzeichnisserver einrichten – Verzeichnisserver konfigurieren
Da dies die erste Einrichtung ist, die wir durchführen, haben wir noch keinen Konfigurationsverzeichnisserver. Drücken Sie also hier die Eingabetaste, um die Standardauswahl zu akzeptieren, die „nein“ ist.
Wenn Sie dies jedoch mehrfach installieren, haben Sie möglicherweise bereits einen Konfigurationsverzeichnisserver eingerichtet. In diesem Fall sollten Sie „Ja“ sagen und diese Informationen dort angeben.
Do you want to register this software with an existing configuration directory server? [no]:
389-Verzeichnisserver einrichten – Admin-Benutzernamen und -Kennwort angeben
In diesem Stadium müssen Sie den Admin-Benutzernamen und das Kennwort für den neuen Verzeichnisserver angeben, den dieser einrichten wird.
Sie verwenden diese UID und dieses Passwort, um sich bei der Konsole anzumelden.
Configuration directory server administrator ID [admin]: Password: Password (confirm):
Setup 389 Directory Server – Geben Sie zusätzliche Parameter ein
Im Folgenden sind einige zusätzliche Parameter aufgeführt, die das Skript setup-ds-admin.pl auffordert. Dieser Domänenname wurde aus dem FQDN übernommen, den wir in der Datei /etc/hosts definiert haben:
Administration Domain [thegeekstuff.com]:
Die voreingestellte Portnummer ist, wie Sie dem Namen entnehmen können, 389. Lassen Sie sie einfach so, wie sie ist, indem Sie die Eingabetaste drücken:
Directory server network port [389]:
Geben Sie die eindeutige Kennung für Ihren Verzeichnisserver ein.
Directory server identifier [deploy]:
389-Verzeichnisserver einrichten – LDAP-Baumstruktur einrichten
Richten Sie zunächst Ihren Verzeichnisbaum entsprechend ein. In diesem Beispiel ist dies der Stamm unseres Verzeichnisbaums, der mit thegeekstuff.com beginnt, aufgeschlüsselt nach DC, wie unten gezeigt.
Suffix [dc=thegeekstuff, dc=com]:
Geben Sie als Nächstes den Verzeichnismanager an, bei dem es sich um einen DN handelt, in dem Sie den Administrator haben, der bestimmte Verzeichnisservervorgänge ausführt.
Drücken Sie die Eingabetaste, um den Standardnamen zu akzeptieren. Geben Sie hier das Passwort für Ihren Verzeichnismanager-Benutzer ein.
Directory Manager DN [cn=Directory Manager]: Password: Password (confirm):
Geben Sie den Admin-Port an. Bitte beachten Sie, dass dies von Ihrem Anwendungsserver- oder Webserver-Port abweicht. Übernehmen Sie hier einfach den Standardwert.
Administration port [9830]:
Setup 389 Directory Server – Endstadien der Einrichtung
Bestätigen Sie die folgende abschließende Bestätigungsmeldung mit „Ja“, um die Konfiguration des Verzeichnisservers basierend auf den bisher eingegebenen Werten zu starten.
Are you ready to set up your servers? [yes]: yes
Sie sehen die folgende Ausgabe, die angibt, dass das Skript die Verzeichnisserver basierend auf Ihren Konfigurationswerten einrichtet.
Creating directory server . . . Your new DS instance 'deploy' was successfully created. Creating the configuration directory server . . . Beginning Admin Server creation . . . Creating Admin Server files and directories . . . Updating adm.conf . . . Updating admpw . . . Registering admin server with the configuration directory server Updating adm.conf with information from configuration directory server Updating the configuration for the httpd engine . . . .. .. Starting admin server . . . The admin server was successfully started. Admin server was successfully created, configured, and started. Exiting . . . Log file is '/tmp/setupqxoZug.log'
Wenn Sie SELinux nicht eingerichtet und nicht richtig konfiguriert haben, erhalten Sie die folgende ERROR-Meldung. In diesem Fall sollten Sie SELinux möglicherweise vorübergehend deaktivieren und das Setup-Skript ausführen.
ERROR: policydb version 30 does not match my version range 15-29 ERROR: Unable to open policy //etc/selinux/targeted/policy/policy.30. Traceback (most recent call last): File "/usr/sbin/semanage", line 32, in import seobject File "/usr/lib/python2.7/site-packages/seobject/__init__.py", line 27, in import sepolicy File "/usr/lib64/python2.7/site-packages/sepolicy/__init__.py", line 798, in raise e ValueError: Failed to read //etc/selinux/targeted/policy/policy.30 policy file
Setup-Protokolldatei überprüfen
Die letzte Zeile des Setup-Skripts zeigt den Namen der Protokolldatei.
Öffnen Sie die Protokolldatei, um sicherzustellen, dass keine Fehlermeldung vorhanden ist. Es sollte in etwa so aussehen:
# vi /tmp/setupqxoZug.log [21:50:57] - [Setup] Info This program will set up the 389 Directory and Administration Servers. [21:50:57] - [Setup] Info Would you like to continue with set up? [21:50:58] - [Setup] Info yes .. .. [21:55:50] - [Setup] Info Updating admpw . . . [21:55:50] - [Setup] Info Registering admin server with the configuration directory server . . . [21:55:50] - [Setup] Info Updating adm.conf with information from configuration directory server . . . [21:55:50] - [Setup] Info Updating the configuration for the httpd engine . . . [21:55:52] - [Setup] Info Starting admin server . . . [21:55:53] - [Setup] Info The admin server was successfully started. [21:55:53] - [Setup] Info Admin server was successfully created, configured, and started. [21:55:53] - [Setup] Success Exiting . . .
Starten Sie 389 Directory Server mit Systemctl
dirsrv ist der Name des Startprogramms.
Verwenden Sie systemctl, um den 389 Directory Server wie unten gezeigt zu starten.
Vor dem Start:
# systemctl status dirsrv.target ? dirsrv.target - 389 Directory Server Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled) Active: inactive (dead)
Starten Sie den 389-Verzeichnisserver:
# systemctl start dirsrv.target
Nach dem Start:
# systemctl status dirsrv.target ? dirsrv.target - 389 Directory Server Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled) Active: active since Fri 2017-07-07 21:58:26 UTC; 2s ago 21:58:26 deploy systemd[1]: Reached target 389 Directory Server. 21:58:26 deploy systemd[1]: Starting 389 Directory Server. ..
Starten Sie 389 Directory Server mit start-dirsrv
Anstelle von systemctl können Sie auch den Befehl start-dirsrv verwenden, wie unten gezeigt, um den Verzeichnisserver zu starten:
# start-dirsrv Starting instance "deploy"
Verwenden Sie stop-dirsrv, um es zu stoppen:
# stop-dirsrv Stopping instance "deploy"
Im Folgenden wird der Status des Verzeichnisservers angezeigt
# status-dirsrv ? dirsrv.target - 389 Directory Server Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled) Active: active since Fri 2017-07-07 21:58:26 UTC; 1min 39s ago 21:58:26 deploy systemd[1]: Reached target 389 Directory Server. 21:58:26 deploy systemd[1]: Starting 389 Directory Server. Status of instance "deploy" ? [email protected] - 389 Directory Server deploy. Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled) Active: active (running) since Fri 2017-07-07 22:00:01 UTC; 4s ago Process: 4754 ExecStartPre=/usr/sbin/ds_systemd_ask_password_acl /etc/dirsrv/slapd-%i/dse.ldif (code=exited, status=0/SUCCESS) Main PID: 4761 (ns-slapd) Status: "slapd started: Ready to process requests" CGroup: /system.slice/system-dirsrv.slice/[email protected] +-4761 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-deploy -i /var/run/dirsrv/slapd-deploy.pid
Starten Sie 389 Directory Server Admin mit Systemctl
Um den Admin-Server für Ihr 389-Verzeichnis zu steuern, verwenden Sie systemctl wie unten gezeigt.
Das Verwaltungsprogramm ist wie unten gezeigt als dirsrv-admin bekannt.
# systemctl start dirsrv-admin # systemctl stop dirsrv-admin # systemctl status dirsrv-admin ? dirsrv-admin.service - 389 Administration Server. Loaded: loaded (/usr/lib/systemd/system/dirsrv-admin.service; disabled; vendor preset: disabled) Active: inactive (dead) ..
Sie können auch den Befehl stop-ds-admin verwenden, um den 389-Verwaltungsserver zu stoppen
Validieren Sie die Einrichtung mit dem LDAPSearch-Befehl
Verwenden Sie abschließend den Befehl ldapsearch, um zu überprüfen, ob die Einrichtung ordnungsgemäß durchgeführt wurde.
Das Folgende ist die Teilausgabe des Befehls ldapsearch:
# ldapsearch -x -b "dc=thegeekstuff,dc=com" .. .. dn: dc=thegeekstuff,dc=com objectClass: top objectClass: domain dc: thegeekstuff # Directory Administrators, thegeekstuff.com dn: cn=Directory Administrators,dc=thegeekstuff,dc=com objectClass: top objectClass: groupofuniquenames cn: Directory Administrators uniqueMember: cn=Directory Manager .. .. search: 2 result: 0 Success # numResponses: 10 # numEntries: 9