Ricerca nel sito web

Come installare e configurare OpenLDAP e phpLDAPadmin su Ubuntu 20.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa e configura il server OpenLDAP
  4. Crea account utente OpenLDAP
  5. Crea DN associazione OpenLDAP
  6. Installa e configura phpLDAPadmin
  7. Configura Apache per phpLDAPadmin
  8. Accedi all'interfaccia utente Web di phpLDAPadmin
  9. Conclusione

LDAP è un protocollo di accesso alla directory leggero utilizzato per l'accesso e il mantenimento della 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 gerarchica semplificano la gestione del server LDAP attraverso il browser web. Puoi aggiungere ed eliminare record, visualizzare e modificare gli attributi dell'immagine, 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 indicato con l'IP del tuo server.
  • Il server è configurato con una password di root.

Iniziare

Prima di iniziare, è sempre consigliabile 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 utility 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 per continuare. Al termine dell'installazione, sarà necessario riconfigurare il pacchetto SLAPD per impostare le informazioni sul 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 per continuare. Ti verrà chiesto di fornire un nome di dominio DNS come mostrato di seguito:

Fornisci il tuo nome di dominio e premi Invio per continuare. Ti verrà chiesto di fornire il nome dell'organizzazione come mostrato di seguito:

Fornisci il nome dell'organizzazione desiderata e premi Invio per continuare. Ti verrà chiesta la password di amministratore come mostrato di seguito:

Fornisci la tua password di amministratore e premi Invio per continuare. Ti verrà chiesto di rimuovere il database come mostrato di seguito:

Seleziona Sì e premi Invio per terminare la configurazione.

Ora puoi verificare le tue informazioni LDAP usando 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 le informazioni sugli utenti e 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

Salva e chiudi il file quando hai finito, quindi regola 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 seguente comando:

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"

Successivamente, aggiorna il database con le informazioni sull'unità organizzativa dell'utente eseguendo il seguente comando:

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"

Successivamente, crea un nuovo account utente denominato 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, sarà necessario 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 un DN di collegamento OpenLDAP

Successivamente, sarà necessario definire nome utente e password per interrogare il server di directory. Innanzitutto, genera l'hash della password per l'utente bind DN utilizzando il seguente comando:

slappasswd

Dovresti ottenere il seguente output:

New password: 
Re-enter new password: 
{SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb

Successivamente, crea un nome Bind DN in sola lettura con il seguente comando:

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 quando hai finito, 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 del DN di associazione 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 andare con le impostazioni predefinite.

Successivamente, 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 utilizzando l'URL http://your-server-ip/phpldapadmin. Dovresti vedere la seguente schermata:

Ora, fai clic sul pulsante di accesso. Dovresti vedere la schermata di accesso a phpLDAPadmin:

Fornisci il tuo DN di accesso, la password e fai clic sul pulsante Autentica. Dovresti vedere la dashboard di phpLDAPadmin nella seguente schermata:

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. Non esitate a chiedermi se avete domande.