Introduzione
Perché OpenLDAP?
Il progetto consiste nel copiare il codice sorgente di riferimento LDAP. OpenLDAP è l'abbreviazione di Lightweight Directory Access Protocol. LDAP è un protocollo applicativo indipendente dal fornitore che consente di valutare e mantenere i servizi di informazioni di directory distribuiti su un ISP. Esistono molti modi diversi per fornire una directory. Ad esempio, l'utilizzo di LDAP consente di fornire un posto centrale per memorizzare nomi utente e password.
Pertanto, molte applicazioni e servizi diversi potrebbero connettersi al server LDAP per convalidare gli utenti. I server LDAP sono ampiamente utilizzati nelle Organizzazioni per memorizzare il nome utente e la password in un server centralizzato rispetto al quale l'utente può autenticarsi ulteriormente a programmi e servizi presenti sulla rete. Inoltre, utilizzeremo i pacchetti Symas OpenLDAP per i comandi standard di manutenzione del software nativi del tuo sistema operativo. Symas OpenLDAP è il principale contributore nella scrittura del 90% del codice OpenLDAP.
Pro di OpenLDAP
È gratis. Simile a Linux è open source. Protocollo standard. In secondo luogo, inoltre, è facile associare l'autenticazione a molte applicazioni. Personalizzabile e leggero.
Contro di OpenLDAP
Sarebbe meglio se ti preparassi.Oltre alla tua infrastruttura, supporta tutti i requisiti.Politiche e regole di sicurezza in atto. Quindi i database o ActiveDirectory dovrebbero sempre archiviare i dati. Tutti gli attributi e le politiche si interromperanno se le informazioni correnti non sono a posto. Supponendo che Microsoft nella tua zona, sovvenzioni per OpenLDAP con Active Directory.
Installazione su Rocky o Centos 8
Inoltre (Rocky Linux/Centos 8) può essere utilizzato nel tutorial. Quindi gestisce l'autenticazione dei record relativi agli account. Per consentire a questo tutorial di funzionare meglio, considera quanto segue.
Il servizio firewalld. Possiamo aggiungere la regola in questa riga di comando. Stai aggiungendo la limitazione firewalld con questo nella tua porta terminale 389 per l'associazione non sicura. La porta 636 sarà univoca per la connessione della porta protetta.
# firewall-cmd --permanent --add-port=389/TCP
# firewall-cmd --permanent --add-port=636/TCP
# firewall-cmd --reload
I pacchetti richiesti devono essere installati. Inoltre, per il client sono necessari Sssd, openldap-clients e oddjob-mkhomedir.
# dnf install wget vim cyrus-sasl-devel libtool-ltdl-devel openssl-devel libdb-devel make libtool autoconf tar gcc perl perl-devel -y
Allora benvenuto in Symas OpenLDAP per Linux
Istruzioni per le piattaforme supportate:
RHEL7
RHEL8
Ubuntu16.04 LTS
Ubuntu18.04 LTS
Ubuntu20.04 LTS
Configurazione di Symas OpenLdap per Linux su RHEL8/Rocky/Centos8
Dopo aver installato i binari richiesti. Copia il file di repository preconfigurato da Symas deposito.
I seguenti passaggi renderanno ldap attivo e funzionante rapidamente:
Installare il pacchetto Symas OpenLDAP desiderato
• Symas-OpenLDAP-Client contiene solo librerie e comandi client. Da utilizzare su sistemi in cui è richiesto l'accesso a Symas OpenLDAP ma non è richiesto il software del server.
• Symas-OpenLDAP-Nonopt rimuove i flag di ottimizzazione dall'installazione standard del server/client. Riduce le prestazioni, ma aumenta le capacità di debug e risoluzione dei problemi.
• Symas-OpenLDAP (ovvero il programma di installazione del server) contiene tutti i componenti client e server necessari per creare una directory LDAP completamente funzionante.
• Symas-OpenLDAP-Devel utilizzato se lo scopo è sviluppare software basato su librerie che fanno parte di Syas-OpenLDAP.
# wget -q https://repo.symas.com/configs/SOFL/rhel8/sofl.repo -O /etc/yum.repos.d/sofl.repo
- Installa i pacchetti symas-openldap-client e symas-openldap-servers.
# dnf install symas-openldap-clients symas-openldap-servers -y
- Avvia il servizio .
# systemctl start slapd
- Genera una password LDAP da una chiave segreta.
# slappasswd -s rocky -n > /etc/openldap/passwd
- Il nuovo certificato deve generare X509 valido per 365 giorni.
# openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
- Inoltre, sposta il contenuto generato nella directory /etc/openldap/certs su master ldap. Copia cert.pem sul client per autenticarti con la connessione ldap.
# cd /etc/openldap/certs.
# chown ldap:ldap *
# chmod 600 priv.pem
Prepara il modello di database incluso in OpenLDAP installato
# cp -r /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
- Genera file di database.
[root@master ~]#slaptest
config file testing succeeded
[root@master ~]#
- Quindi cambia la proprietà dei file di database.
# chown ldap:ldap /var/lib/ldap/*
- Attiva il servizio slapd all'avvio e partirà subito.
# systemctl enable slapd --now
- Quindi controlla se il servizio è in esecuzione.
# netstat -lt | grep ldap
tcp 0 0 0.0.0.0:ldaps 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ldap 0.0.0.0:* LISTEN
- Imposta la password di root.
# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
# vi chroot.ldif
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
# ldapadd -Y EXTERNAL -H ldapi:/// -f chroot.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
Siamo configurati per aggiungere il coseno, nis e inetorgperson LDAP schemi.
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=inetorgperson,cn=schema,cn=config”
- Crea il file modifiche.ldif nella directory /etc/openldap/ . Incolla le righe di output con {SSHA } con {SSHA}xxx generato da slappasswd.
# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
- Quindi il nome del DB è ora mdb. Le informazioni memorizzate nel backend mdb possono essere trovate /etc/openldap/slapd.d/cn=config/olcDatabase={2}file mdb.ldif.
# vi /etc/openldap/changes.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/cert.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/priv.pem
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth” read by dn.base=”cn=Manager,dc=example,d
c=com” read by * none
- Importa la configurazione sulla macchina. Questa sarà la voce principale nella directory LDAP.
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “cn=config”
modifying entry “cn=config”
modifying entry “olcDatabase={1}monitor,cn=config”
- Verifica configurazione
# slaptest -u
L'output dovrebbe essere simile all'output.
# config file testing succeeded
- Crea /etc/openldap/base.ldif con la configurazione seguente.
vi /etc/openldap/base.ldif
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=People,dc=example,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=example,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
# ldapadd -x -w redhat -D cn=Manager,dc=example,dc=com -f /etc/openldap/base.ldif
Crea utenti creando il file users.ldif
# vi users.ldif
dn: uid=user01,ou=People,dc=example,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$zz2TKRQVGLyPJoTU$//n.UkHKrrfkeUQUOund2QbSGRMXjU0GV73o.UlprOB3CxBxmQArsESrNUUHC7v3ZhwojszXGh7LowRSnjWhG.
shadowLastChange: 18818
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/guests/user01
- Verifica la configurazione se l'utente è ora presente.
# ldapsearch -x cn=user01 -b dc=example,dc=com
- L'output dovrebbe essere simile.
[root@master8 ~]# ldapsearch -x cn=user01 -b dc=example,dc=com
#extended LDIF
#
#LDAPv3
#base with scope subtree
#filter: cn=user01
#requesting: ALL
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQ2JHp6MlRLUlFWR0x5UEpvVFUkLy9uLlVrSEtycmZrZVVRVU91bmQ
yUWJTR1JNWGpVMEdWNzNvLlVscHJPQjNDeEJ4bVFBcnNFU3JOVVVIQzd2M1pod29qc3pYR2g3TG93
UlNualdoRy4=
shadowLastChange: 18818
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/guests/user01
user01, Group, example.com
dn: cn=user01,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: user01
userPassword:: e2NyeXB0fXg=
gidNumber: 1001
search result
search: 2
result: 0 Success
numResponses: 3
numEntries: 2
Conclusione
Quindi l'installazione di OpenLDAP è abbastanza semplice se segui correttamente i passaggi. Tuttavia, se i passaggi non sarebbero seguiti, il servizio non funzionerebbe correttamente. Symas OpenLDAP è una fantastica alternativa alla compilazione del pacchetto openldap da openldap.org. Dal mio punto di vista, non c'è apprendimento pratico migliore della teoria. Infine, è stato un viaggio esplorando cose nuove a memoria e amando ciò che fai.