LDAP es un protocolo ligero de acceso a directorios que se utiliza para acceder y mantener directorios distribuidos a través de un protocolo de Internet. phpLDAPadmin es un cliente LDAP basado en web que se utiliza para gestionar y administrar el servidor LDAP. Su poderosa función de búsqueda y vista de árbol jerárquico facilitan la administración del servidor LDAP a través del navegador web. Puede agregar y eliminar registros, ver y editar atributos de imagen, administrar hashes de contraseña de usuario y mucho más usando phpLDAPadmin.
En este tutorial, explicaremos cómo instalar phpLDAPadmin en Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Un nombre de dominio válido apuntado con la IP de su servidor.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Antes de comenzar, siempre se recomienda actualizar su sistema con la última versión de los paquetes. Puede actualizarlo con el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, puede continuar con el siguiente paso.
Instalar y configurar servidor OpenLDAP
Primero, deberá instalar Slapd y otras utilidades LDAP en su servidor. Puede instalarlos ejecutando el siguiente comando:
apt-get install slapd ldap-utils
Durante la instalación, se le pedirá que configure una contraseña de administrador como se muestra a continuación:
Proporcione su contraseña segura y presione Enter continuar. Una vez finalizada la instalación, deberá volver a configurar el paquete SLAPD para configurar la información de su dominio.
Puede reconfigurarlo con el siguiente comando:
dpkg-reconfigure slapd
Se le pedirá que omita la configuración del servidor OpenLDAP como se muestra a continuación:
Seleccione No y pulsa Intro continuar. Se le pedirá que proporcione un nombre de dominio DNS como se muestra a continuación:
Proporcione su nombre de dominio y presione Entrar continuar. Se le pedirá que proporcione el nombre de la organización como se muestra a continuación:
Proporcione el nombre de su organización deseada y presione Enter continuar. Se le pedirá la contraseña de administrador como se muestra a continuación:
Proporcione su contraseña de administrador y presione Enter continuar. Se le pedirá que elimine la base de datos como se muestra a continuación:
Seleccione Sí y pulsa Intro para finalizar la configuración.
Ahora, puede verificar su información LDAP usando el siguiente comando:
slapcat
Deberías obtener el siguiente resultado:
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
Crear cuentas de usuario de OpenLDAP
En primer lugar, deberá crear los contenedores de la unidad organizativa para almacenar información de usuarios y grupos. Puedes crearlo con el siguiente comando:
nano users-ou.ldif
Agregue las siguientes líneas:
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
Guarde y cierre el archivo cuando haya terminado, luego ajuste los controles de acceso a la base de datos SLAPD creando el siguiente archivo:
nano update-mdb-acl.ldif
Agregue las siguientes líneas:
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
Guarde y cierre el archivo, luego actualice la base de datos ACL con la información anterior ejecutando el siguiente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif
Deberías obtener el siguiente resultado:
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"
A continuación, actualice la base de datos con la información de la unidad organizativa del usuario ejecutando el siguiente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f users-ou.ldif
Deberías obtener el siguiente resultado:
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"
Luego, cree una nueva cuenta de usuario llamada hiteshj creando el siguiente archivo:
nano hitesh.ldif
Agregue las siguientes líneas:
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
Guarde y cierre el archivo, luego agregue el usuario a la base de datos con el siguiente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f hitesh.ldif
Deberías obtener el siguiente resultado:
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"
A continuación, deberá establecer la contraseña para el usuario. Puede configurarlo con el siguiente comando:
ldappasswd -H ldapi:/// -Y EXTERNAL -S "uid=hiteshj,ou=people,dc=example,dc=com"
Deberías ver el siguiente resultado:
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 vez que haya terminado, puede continuar con el siguiente paso.
Crear DN de enlace OpenLDAP
A continuación, deberá definir el nombre de usuario y la contraseña para consultar el servidor de directorio. Primero, genere el hash de contraseña para el usuario de DN de enlace con el siguiente comando:
slappasswd
Deberías obtener el siguiente resultado:
New password: Re-enter new password: {SSHA}DhjyJN5akaj2etaFKoyeAY8QMgSD/OTb
A continuación, cree un nombre Bind DN de solo lectura con el siguiente comando:
nano readonly-user.ldif
Agregue las siguientes líneas:
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
Guarde y cierre el archivo cuando haya terminado, luego agregue el usuario BIND a la base de datos con el siguiente comando:
ldapadd -Y EXTERNAL -H ldapi:/// -f readonly-user.ldif
Deberías obtener el siguiente resultado:
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"
A continuación, verifique Bind DN ACL con el siguiente comando:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}mdb)' olcAccess
Deberías obtener el siguiente resultado:
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
Instalar y configurar phpLDAPadmin
De forma predeterminada, el paquete phpLDAPadmin está disponible en el repositorio predeterminado de Ubuntu 20.04. Puede instalarlo ejecutando el siguiente comando:
apt-get install phpldapadmin -y
Después de instalar phpLDAPadmin, deberá configurar phpLDAPadmin y definir la información de su dominio. Puede hacerlo editando el archivo /etc/phpldapadmin/config.php:
nano /etc/phpldapadmin/config.php
Cambie las siguientes líneas:
$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));
Guarde y cierre el archivo cuando haya terminado.
Configurar Apache para phpLDAPadmin
El archivo de configuración predeterminado de phpLDAPadmin para Apache se encuentra en /etc/apache2/conf-disponible/phpldapadmin.conf. No haga ningún cambio y vaya con la configuración predeterminada.
A continuación, deshabilite el archivo de configuración de host virtual Apache predeterminado y reinicie el servicio Apache para aplicar los cambios:
a2dissite 000-default.conf
systemctl restart apache2
Una vez que haya terminado, puede continuar con el siguiente paso.
Acceder a la interfaz de usuario web de phpLDAPadmin
Ahora, abra su navegador web y acceda a phpLDAPadmin usando la URL http://your-server-ip/phpldapadmin . Debería ver la siguiente pantalla:
Ahora, haga clic en iniciar sesión botón. Debería ver la pantalla de inicio de sesión de phpLDAPadmin:
Proporcione su DN de inicio de sesión, contraseña y haga clic en Autenticar botón. Debería ver el panel de phpLDAPadmin en la siguiente pantalla:
Conclusión
¡Felicidades! Ha instalado y configurado correctamente phpLDAPadmin en el servidor Ubuntu 20.04. Ahora puede administrar su servidor LDAP y realizar varias tareas, incluida la adición de unidades organizativas, grupos y usuarios con la interfaz de usuario web de phpLDAPadmin. Siéntase libre de preguntarme si tiene alguna pregunta.