GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie den LDAP 389-Verzeichnisserver unter Linux mit detaillierten Schritten

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

Linux
  1. So installieren Sie den Nginx-Webserver unter Linux

  2. So installieren Sie Nextcloud mit Docker auf Ihrem Linux-Server

  3. So installieren Sie den LDAP 389-Verzeichnisserver auf einem CentOS 6-VPS

  4. So installieren Sie Apache 2 mit SSL unter Linux (mit mod_ssl, openssl)

  5. So installieren Sie den Virtualisierungs-Linux-Server

Wie installiere ich Softaculous auf einem Linux-Server mit cPanel?

So installieren Sie Apache unter Arch Linux

So installieren und konfigurieren Sie den Caddy Web Server mit PHP unter Rocky Linux 8

So installieren Sie Webmin unter Ubuntu Linux

So installieren Sie Jenkins unter Rocky Linux 8

Installationsanleitung Konfigurieren Sie den LDAP-Client für 389 Directory Server