389 Directory Server è un server LDAP aziendale open source.
Questo può gestire un enorme volume di dati. Uno degli enormi vantaggi del server 389 LDAP è che si accende velocemente ed elabora fino a gestire diverse migliaia di operazioni al secondo.
Questo ha diverse funzionalità avanzate tra cui la replica multi-master asincrona per il ridimensionamento orizzontale, che a sua volta fornisce una tolleranza agli errori del 100% e un throughput estremamente elevato.
Inoltre, tieni presente che questo supporta TLS, SASL per l'autenticazione e il trasporto. 389 Il server di directory è completamente conforme a LDAPv3.
Questo tutorial spiega come installare e configurare il server di directory 389 nel tuo ambiente Linux.
Imposta il repository EPEL
Se non hai configurato il repository EPEL, assicurati di configurarlo, poiché installeremo i pacchetti correlati 389 da EPEL.
Innanzitutto, scarica epel rpm dal sito Web di Fedora come mostrato di seguito.
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
Quindi, installa il repository epel sul tuo 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%]
Se sei interessato a OpenLDAP invece del server di directory 389, fai riferimento a questo:Come installare e configurare OpenLDAP su Linux
Imposta correttamente il file /etc/host
Assicurati che il file host sia impostato correttamente.
In questo esempio, quello che segue è l'attuale configurazione del file /etc/host.
# 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
In quanto sopra:
- 192.168.101.10 – È l'indirizzo IP del server
- deploy.thegeekstuff.com – Questo è l'FQDN del server in cui viene installato il server di directory 389
- deploy – Questo è il nome host del server
Imposta parametri sysctl appropriati
Aggiungi la seguente riga al tuo file /etc/sysctl.conf:
# cat /etc/sysctl.conf net.ipv4.tcp_keepalive_time = 300 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max = 64000
A seconda della quantità di risorse che hai sul tuo sistema, potresti voler aumentare leggermente il numero massimo di file sopra.
Esegui il comando "sysctl -p" come mostrato di seguito per assicurarti che le modifiche precedenti vengano apportate al tuo sistema.
# sysctl -p net.ipv4.tcp_keepalive_time = 300 net.ipv4.ip_local_port_range = 1024 65000 fs.file-max = 64000
Verifica che le modifiche siano state apportate:
# 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
Imposta valori Ulimit appropriati
Imposta il valore ulimit su 8192 come mostrato di seguito nel tuo file /etc/profile.
# echo "ulimit -n 8192" >> /etc/profile
Verifica che questa voce sia aggiunta al file /etc/profile.
# tail /etc/profile .. .. unset i unset -f pathmunge ulimit -n 8192
Modifica file di accesso pam.d
Modifica il file /etc/pam.d/login e aggiungi la riga seguente per includere il file pam_limits.so come mostrato di seguito.
# vi /etc/pam.d/login session required /usr/lib64/security/pam_limits.so
Assicurati che il file pam_limits.so sia presente sul tuo sistema.
# ls -l /usr/lib64/security/pam_limits.so -rwxr-xr-x. 1 root root 19584 Aug 18 2015 /usr/lib64/security/pam_limits.so
Nota:su 32 bit, utilizza quanto segue, poiché la posizione di questo file è diversa.
# vi /etc/pam.d/login session required /lib/security/pam_limits.so
Crea utente amministratore LDAP
Crea un utente chiamato ldapadmin e assegna una password come mostrato di seguito:
useradd ldapadmin passwd ldapadmin
Dopo aver configurato correttamente il server LDAP, questo sarà di aiuto:Come aggiungere utenti e gruppi LDAP
Installa 389 Directory Server Base e client OpenLDAP
Successivamente è installare il pacchetto di base del server di directory 389 e i pacchetti di utilità client OpenLDAP. Dobbiamo installare questi due pacchetti:
- 389-ds-base.x86_64
- openldap-clients.x86_64
Usando il comando yum installa i due pacchetti precedenti:
# yum install 389-ds-base.x86_64 openldap-clients.x86_64
Oltre a installare i pacchetti 389-ds-base e openldap-client, a seconda del sistema in uso, verranno installati anche i seguenti pacchetti dipendenti:
- 389-ds-base-libs
- GeoIP
- librerie di binding
- utilità di associazione
- cyrus-sasl-gssapi
- cyrus-sasl-md5
- libico
- perl-Archivio-Tar
- Perl-DB_File
- perl-IO-Zlib
- perl-Mozilla-LDAP
- perl-NetAddr-IP
- Costanti-pacchetto-perl
- svrcore
Su questo particolare sistema, sono stati aggiornati anche i seguenti pacchetti quando sono stati installati i due pacchetti precedenti:
- bind-libs-lite
- licenza vincolante
- apri l'app
Se stai usando il repository EPEL per la prima volta sul tuo sistema, questo potrebbe chiederti di accettare la chiave come mostrato di seguito. Dì "y" qui.
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
Installa 389 pacchetti di amministrazione di Directory Server
Quindi, installa i seguenti pacchetti correlati all'amministrazione di 389 LDAP Server:
- 389-ds.noarch Questa è la suite di directory, amministrazione e console 389
- 389-admin.x86_64 Questo è l'amministratore di 389 Administration Server
- 389-adminutil.x86_64 Contiene le utilità e le librerie necessarie per l'amministrazione 389
- 389-ds-console-doc.noarch Si tratta di documenti basati sul Web per la console di gestione del server di directory 389
Usa il comando yum e installa questi 389 pacchetti relativi all'amministratore del server di directory come mostrato di seguito:
# yum install 389-admin.x86_64 \ 389-adminutil.x86_64 389-ds.noarch \ 389-ds-base.x86_64 389-ds-console-doc.noarch
Oltre a installare quei 4 pacchetti, a seconda del tuo sistema, questo ha anche installato i seguenti pcakges dipendenti:
- 389-console-di-amministratore
- 389-admin-console-doc
- Console 389
- Console 389-ds
- 389-dsgw
- copia-jdk-configs
- framework-idm-console
- java-1.8.0-openjdk-senza testa
- strumenti-javapackages
- jss
- ldapjdk
- libxslt
- Strumenti lksctp
- mod_nss
- perl-CGI
- perl-FCGI
- pacchetti python-java
- python-lxml
- tzdata-java
Su questo particolare sistema, sono stati aggiornati anche i seguenti pacchetti quando sono stati installati i pacchetti precedenti:
- chkconfig
- nspr
- no
- nss-softokn
- nss-softokn-freebl
- nss-sysinit
- nss-tools
- nss-util
Installazione del server di directory 389 – Esegui setup-ds-admin.pl
Dopo aver installato i pacchetti del server 389 LDAP richiesti, esegui lo script setup-ds-admin.pl, che configurerà la configurazione del server 389 Directory sul tuo sistema.
# setup-ds-admin.pl
Il programma sopra ti chiederà di inserire diversi valori. La maggior parte di essi sono intuitivi e diretti.
Ma ho mostrato un output parziale di ogni punto in cui questo richiede l'input dell'utente di seguito.
Installazione del server di directory 389 – Messaggio di avviso iniziale
Durante i primi prompt dello script setup-ds-admin.pl di cui sopra, a seconda della configurazione del sistema, questo potrebbe fornire i seguenti messaggi di AVVISO. Puoi dire "sì" per continuare qui:
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
Installazione del server di directory 389:scegli il tipo di installazione tipico
Nella schermata seguente, se non conosci il server di directory 389, scegli l'impostazione tipica, che imposterà tutte le opzioni di configurazione comuni per te.
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
Installazione del server di directory 389:immettere FQDN
Se hai impostato correttamente il tuo file /etc/hosts come spiegato in uno dei setps precedenti, dovrebbe raccogliere correttamente il nome del tuo computer qui come mostrato di seguito.
Devi solo premere invio qui e andare avanti.
Computer name [deploy.thegeekstuff.com]:
Se il tuo server non ha una configurazione FQDN corretta, vedrai questo messaggio di errore durante l'esecuzione dello script setup-ds-admin.pl. Premi Ctrl-C ed esci da questo, risolvi il problema FQDN e quindi esegui nuovamente setup-ds-admin.pl.
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
Puoi anche passare l'FQDN come parametro allo script setup-ds-admin.pl come mostrato di seguito:
# setup-ds-admin.pl General.FullMachineName=deploy.thegeekstuff.com .. Computer name [deploy.thegeekstuff.com]: ..
Installazione del server di directory 389:immettere l'utente amministratore LDAP
Per impostazione predefinita, utilizzerà dirsrv come nome utente e gruppo. Poiché abbiamo creato un utente chiamato ldapadmin in uno dei nostri passaggi precedenti, specificalo qui.
System User [dirsrv]: ldapadmin System Group [dirsrv]: ldapadmin
Configura server directory 389 – Configura server directory
Poiché questa è la prima configurazione che stiamo facendo, non abbiamo ancora un server di directory di configurazione. Quindi, premi Invio qui per accettare la scelta predefinita, che è "no".
Ma quando esegui installazioni multiple di questo, potresti già avere la configurazione del server della directory di configurazione, nel qual caso dovresti dire "sì" e specificare lì quelle informazioni.
Do you want to register this software with an existing configuration directory server? [no]:
Installazione del server di directory 389:specificare il nome utente e la password dell'amministratore
A questo punto, devi specificare il nome utente e la password dell'amministratore per il nuovo server di directory che verrà configurato.
Utilizzerai questo uid e questa password per accedere alla console.
Configuration directory server administrator ID [admin]: Password: Password (confirm):
Installazione del server di directory 389:immettere parametri aggiuntivi
Di seguito sono riportati alcuni parametri aggiuntivi che verrà richiesto dallo script setup-ds-admin.pl. Questo nome di dominio è stato prelevato dall'FQDN che abbiamo definito nel file /etc/hosts:
Administration Domain [thegeekstuff.com]:
Il numero di porta predefinito come puoi immaginare dal nome è 389. Lascialo così com'è premendo invio:
Directory server network port [389]:
Inserisci l'identificatore univoco per il tuo server di directory.
Directory server identifier [deploy]:
Configurazione del server di directory 389 – Configurazione della struttura ad albero LDAP
Innanzitutto, imposta di conseguenza il tuo albero di directory. In questo esempio, questa è la radice del nostro albero di directory, che inizia con thegeekstuff.com suddiviso per dc come mostrato di seguito.
Suffix [dc=thegeekstuff, dc=com]:
Quindi, specifica il gestore di directory, che è un DN in cui avrai l'utente amministrativo che eseguirà determinate operazioni del server di directory.
Premere Invio per accettare il nome predefinito. Immettere qui la password per l'utente del gestore di directory.
Directory Manager DN [cn=Directory Manager]: Password: Password (confirm):
Specificare la porta di amministrazione. Si noti che questo è diverso dal server delle applicazioni o dalla porta del server Web. Accetta solo il valore predefinito qui.
Administration port [9830]:
Installazione di Directory Server 389 – Fasi finali dell'installazione
Dì "sì" al seguente messaggio di conferma finale per avviare la configurazione del server di directory in base ai valori che hai inserito finora.
Are you ready to set up your servers? [yes]: yes
Vedrai il seguente output che indica che lo script sta configurando i server di directory in base ai tuoi valori di configurazione.
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'
Se non hai SELinux configurato e configurato correttamente, riceverai il seguente messaggio di ERRORE. In questo caso, potresti voler disabilitare temporaneamente SELinux ed eseguire lo script di installazione.
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
Verifica il file di registro dell'installazione
L'ultima riga dello script di installazione mostrerà il nome del file di registro.
Apri il file di registro per assicurarti che non ci siano messaggi di errore. Dovrebbe essere simile al seguente:
# 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 . . .
Avvia 389 Directory Server usando Systemctl
dirsrv è il nome del programma di avvio.
Utilizzare systemctl per avviare 389 Directory Server come mostrato di seguito.
Prima di iniziare:
# systemctl status dirsrv.target ? dirsrv.target - 389 Directory Server Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled) Active: inactive (dead)
Speciali il server di directory 389:
# systemctl start dirsrv.target
Dopo l'avvio:
# 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. ..
Avvia 389 Directory Server usando start-dirsrv
Invece di usare systemctl, puoi anche usare il comando start-dirsrv come mostrato di seguito per avviare il server di directory:
# start-dirsrv Starting instance "deploy"
Usa stop-dirsrv per interromperlo:
# stop-dirsrv Stopping instance "deploy"
Di seguito verrà visualizzato lo stato del server di directory
# 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
Avvia 389 Directory Server Admin usando Systemctl
Per controllare il server di amministrazione per la tua directory 389, usa systemctl come mostrato di seguito.
Il programma di amministrazione è noto come dirsrv-admin come mostrato di seguito.
# 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) ..
Puoi anche utilizzare il comando stop-ds-admin per arrestare 389 Administration Server
Convalida la configurazione utilizzando il comando LDAPSearch
Infine, usa il comando ldapsearch per verificare che l'installazione sia stata eseguita correttamente.
Quello che segue è l'output parziale del comando 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