LDAP è un protocollo di accesso alle directory leggero utilizzato per accedere e mantenere una directory distribuita su un protocollo Internet. phpLDAPadmin è un client LDAP basato sul Web utilizzato per la gestione e l'amministrazione del server LDAP. La sua potente funzionalità di ricerca e la visualizzazione ad albero gerarchico semplificano la gestione del server LDAP tramite il browser web. Puoi aggiungere ed eliminare record, visualizzare e modificare gli attributi delle immagini, gestire gli hash delle password degli utenti e molto altro utilizzando phpLDAPadmin.
In questo tutorial spiegheremo come installare phpLDAPadmin su Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Un nome di dominio valido puntato all'IP del tuo server.
- Una password di root è configurata sul server.
Per iniziare
Prima di iniziare, si consiglia sempre di aggiornare il sistema con l'ultima versione dei pacchetti. Puoi aggiornarlo con il seguente comando:
apt-get update -y
Una volta aggiornati tutti i pacchetti, puoi procedere al passaggio successivo.
Installa e configura il server OpenLDAP
Innanzitutto, dovrai installare Slapd e altre utilità LDAP nel tuo server. Puoi installarli eseguendo il seguente comando:
apt-get install slapd ldap-utils
Durante l'installazione, ti verrà chiesto di impostare una password amministratore come mostrato di seguito:
Fornisci la tua password sicura e premi Invio continuare. Al termine dell'installazione, dovrai riconfigurare il pacchetto SLAPD per impostare le informazioni del tuo dominio.
Puoi riconfigurarlo con il seguente comando:
dpkg-reconfigure slapd
Ti verrà chiesto di omettere la configurazione del server OpenLDAP come mostrato di seguito:
Seleziona No e premi Invio continuare. Ti verrà chiesto di fornire un nome di dominio DNS come mostrato di seguito:
Fornisci il tuo nome di dominio e premi Invio continuare. Ti verrà chiesto di fornire il nome dell'organizzazione come mostrato di seguito:
Fornisci il nome dell'organizzazione desiderato e premi Invio continuare. Ti verrà richiesta la password amministratore come mostrato di seguito:
Fornisci la tua password di amministratore e premi Invio continuare. Ti verrà chiesto di rimuovere il database come mostrato di seguito:
Seleziona Sì e premi Invio per completare la configurazione.
Ora puoi verificare le tue informazioni LDAP utilizzando il seguente comando:
slapcat
Dovresti ottenere il seguente output:
dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization o: example.com dc: example structuralObjectClass: organization entryUUID: 971829cc-ac5f-103a-8e42-9f8486ff5685 creatorsName: cn=admin,dc=example,dc=com createTimestamp: 20201027051828Z entryCSN: 20201027051828.103064Z#000000#000#000000 modifiersName: cn=admin,dc=example,dc=com modifyTimestamp: 20201027051828Z dn: cn=admin,dc=example,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e1NTSEF9Tm5OYlpSMktkYjVnUUprb284MHFPTEVkMjQrQXpQWEk= structuralObjectClass: organizationalRole entryUUID: 9718c198-ac5f-103a-8e43-9f8486ff5685 creatorsName: cn=admin,dc=example,dc=com createTimestamp: 20201027051828Z entryCSN: 20201027051828.107057Z#000000#000#000000 modifiersName: cn=admin,dc=example,dc=com modifyTimestamp: 20201027051828Z
Crea account utente OpenLDAP
Innanzitutto, dovrai creare i contenitori delle unità organizzative per archiviare utenti e informazioni sui gruppi. Puoi crearlo con il seguente comando:
nano users-ou.ldif
Aggiungi le seguenti righe:
dn: ou=people,dc=example,dc=com objectClass: organizationalUnit objectClass: top ou: people dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit objectClass: top ou: groups
Salvare e chiudere il file al termine, quindi regolare i controlli di accesso al database SLAPD creando il seguente file:
nano update-mdb-acl.ldif
Aggiungi le seguenti righe:
dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcAccess olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire by self write by anonymous auth by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by dn.exact="cn=readonly,ou=people,dc=example,dc=com" read by * none olcAccess: to dn.exact="cn=readonly,ou=people,dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none olcAccess: to dn.subtree="dc=example,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by users read by * none
Salva e chiudi il file, quindi aggiorna l'ACL del database con le informazioni di cui sopra eseguendo il comando seguente:
ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif
Dovresti ottenere il seguente output:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={1}mdb,cn=config"
Quindi, aggiorna il database con le informazioni sulla UO dell'utente eseguendo il comando seguente:
ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif
Dovresti ottenere il seguente output:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "ou=people,dc=example,dc=com" adding new entry "ou=groups,dc=example,dc=com"
Quindi, crea un nuovo account utente chiamato hiteshj creando il seguente file:
nano hitesh.ldif
Aggiungi le seguenti righe:
dn: uid=hiteshj,ou=people,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: hiteshj cn: Hitesh sn: Jethva loginShell: /bin/bash uidNumber: 10000 gidNumber: 10000 homeDirectory: /home/hiteshj shadowMax: 60 shadowMin: 1 shadowWarning: 7 shadowInactive: 7 shadowLastChange: 0 dn: cn=hiteshj,ou=groups,dc=example,dc=com objectClass: posixGroup cn: hiteshj gidNumber: 10000 memberUid: hiteshj
Salva e chiudi il file, quindi aggiungi l'utente al database con il seguente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif
Dovresti ottenere il seguente output:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "uid=hiteshj,ou=people,dc=example,dc=com" adding new entry "cn=hiteshj,ou=groups,dc=example,dc=com"
Successivamente, dovrai impostare la password per l'utente. Puoi impostarlo con il seguente comando:
ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=hiteshj,ou=people,dc=example,dc=com"
Dovresti vedere il seguente output:
New password: Re-enter new password: SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0
Una volta terminato, puoi procedere al passaggio successivo.
Crea DN di collegamento OpenLDAP
Successivamente, dovrai definire nome utente e password per interrogare il server di directory. Innanzitutto, genera l'hash della password per l'utente DN di collegamento utilizzando il comando seguente:
slappasswd
Dovresti ottenere il seguente output:
New password: Re-enter new password: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
Quindi, crea un nome Bind DN in sola lettura con il comando seguente:
nano readonly-user.ldif
Aggiungi le seguenti righe:
dn: cn=readonly,ou=people,dc=example,dc=com objectClass: organizationalRole objectClass: simpleSecurityObject cn: readonly userPassword: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb description: Bind DN user for LDAP Operations
Salva e chiudi il file al termine, quindi aggiungi l'utente BIND al database con il seguente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif
Dovresti ottenere il seguente output:
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=readonly,ou=people,dc=example,dc=com"
Successivamente, verifica l'ACL Bind DN con il seguente comando:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess
Dovresti ottenere il seguente output:
dn: olcDatabase={1}mdb,cn=config olcAccess: {0}to attrs=userPassword,shadowLastChange,shadowExpire by self writ e by anonymous auth by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=ext ernal,cn=auth" manage by dn.exact="cn=readonly,ou=people,dc=example,dc=com" read by * none olcAccess: {1}to dn.exact="cn=readonly,ou=people,dc=example,dc=com" by dn.subt ree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * non e olcAccess: {2}to dn.subtree="dc=example,dc=com" by dn.subtree="gidNumber=0+uid Number=0,cn=peercred,cn=external,cn=auth" manage by users read by * none
Installa e configura phpLDAPadmin
Per impostazione predefinita, il pacchetto phpLDAPadmin è disponibile nel repository predefinito di Ubuntu 20.04. Puoi installarlo eseguendo il seguente comando:
apt-get install phpldapadmin -y
Dopo aver installato phpLDAPadmin, dovrai configurare phpLDAPadmin e definire le informazioni del tuo dominio. Puoi farlo modificando il file /etc/phpldapadmin/config.php:
nano /etc/phpldapadmin/config.php
Modifica le seguenti righe:
$servers->setValue('server','name','My LDAP Server'); $servers->setValue('server','host','69.87.216.102'); $servers->;setValue('server','base',array('dc=example,dc=com')); $servers->setValue('login','auth_type','session'); $servers->setValue('login','bind_id','cn=admin,dc=example,dc=com'); $servers->setValue('auto_number','min',array('uidNumber'=>10000,'gidNumber'=>10000));
Salva e chiudi il file quando hai finito.
Configura Apache per phpLDAPadmin
Il file di configurazione predefinito di phpLDAPadmin per Apache si trova in /etc/apache2/conf-available/phpldapadmin.conf. Non apportare modifiche e vai con le impostazioni predefinite.
Quindi, disabilita il file di configurazione dell'host virtuale Apache predefinito e riavvia il servizio Apache per applicare le modifiche:
a2dissite 000-default.conf
systemctl restart apache2
Una volta terminato, puoi procedere al passaggio successivo.
Accedi all'interfaccia utente web di phpLDAPadmin
Ora apri il tuo browser web e accedi a phpLDAPadmin usando l'URL http://your-server-ip/phpldapadmin . Dovresti vedere la seguente schermata:
Ora, fai clic su accesso pulsante. Dovresti vedere la schermata di accesso di phpLDAPadmin:
Fornisci il tuo DN di accesso, la password e fai clic su Autentica pulsante. Dovresti vedere la dashboard di phpLDAPadmin nella schermata seguente:
Conclusione
Congratulazioni! hai installato e configurato correttamente phpLDAPadmin sul server Ubuntu 20.04. Ora puoi gestire il tuo server LDAP ed eseguire diverse attività, tra cui l'aggiunta di unità organizzative, gruppi e utenti con l'interfaccia utente web di phpLDAPadmin. Sentiti libero di chiedermi se hai domande.