Cómo instalar y configurar OpenLDAP y phpLDAPadmin en Ubuntu 20.04

Configurar bofetada

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 previos

  • 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.

Empezando

Antes de comenzar, siempre se recomienda actualizar su sistema con la última versión de los paquetes. Puedes 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 el 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:

Configurar bofetada

Proporcione su contraseña segura y pulse Ingresar continuar. Una vez finalizada la instalación, deberá volver a configurar el paquete SLAPD para configurar la información de su dominio.

Puedes 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:

Configuración de OpenLdap

Seleccione No y golpear Ingresar continuar. Se le pedirá que proporcione un nombre de dominio DNS como se muestra a continuación:

Configurar bofetada

Proporcione su nombre de dominio y pulse Ingresar continuar. Se le pedirá que proporcione el nombre de la organización como se muestra a continuación:

Nombre de la Organización

Proporcione el nombre de su organización deseada y pulse Ingresar continuar. Se le pedirá la contraseña de administrador como se muestra a continuación:

clave de administrador

Proporcione su contraseña de administrador y pulse Ingresar continuar. Se le pedirá que elimine la base de datos como se muestra a continuación:

purgar base de datos

Seleccione y golpear Ingresar 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: Anuncio

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 y 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

Cambia 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.

Acceda a la interfaz de usuario web de phpLDAPadmin

Ahora, abra su navegador web y acceda a phpLDAPadmin usando la URL http://ip-de-su-servidor/phpldapadmin. Debería ver la siguiente pantalla:

phppladpadmin

Ahora, haga clic en el acceso botón. Debería ver la pantalla de inicio de sesión de phpLDAPadmin:

iniciar sesión en phpladpadmin

Proporcione su DN de inicio de sesión, contraseña y haga clic en el Autenticar botón. Debería ver el panel de phpLDAPadmin en la siguiente pantalla:

Tablero Ldap

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. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *