LINUX

Cómo instalar OpenLDAP con phpLDAPadmin en un servidor Nginx

El protocolo ligero de acceso a directorios, más conocido como LDAP. Se utiliza para administrar y acceder a información relacionada en una estructura de directorios y archivos jerárquica y centralizada. Un directorio de información LDAP es un tipo de base de datos, pero no es una base de datos relacional. Y a diferencia de las bases de datos que están diseñadas para procesar cientos o miles de cambios por minuto, como los sistemas de procesamiento de transacciones en línea (OLTP) que se utilizan a menudo en el comercio electrónico, los directorios LDAP están muy optimizados para el rendimiento de lectura.

La mayoría de los servidores LDAP son fáciles de instalar, mantener y optimizar fácilmente. En este tutorial, le proporcionaré instrucciones sobre cómo instalar OpenLDAP en un servidor Ubuntu 16.04 y administrarlo fácilmente usando PHPldapadmin.

Instalación de OpenLDAP

En primer lugar, necesitamos instalar el demonio del servidor OpenLDAP y las utilidades tradicionales de administración LDAP. Estos se encuentran en los paquetes slapd y ldap-utils respectivamente.

$apt install slapd ldap-utils

La instalación de slapd creará una configuración funcional. En particular, creará una instancia de base de datos que puede utilizar para almacenar sus datos. Sin embargo, el DN base de esta instancia se determinará a partir del nombre de dominio del localhost. Se tomará como en el archivo / etc / hosts. Por lo tanto, se recomienda modificar su nombre de host con un FQDN y establecer las entradas adecuadas en el archivo de hosts. En mi caso, configuré mi nombre de host en «ldap01.linoxide.com».

Durante la instalación, se le pedirá que seleccione y confirme una contraseña de administrador para LDAP. De hecho, puede restablecerlo en el futuro si lo necesita.

Cómo reconfigurar la configuración de Slapd

Durante la instalación inicial, el paquete se instaló con la configuración predeterminada. Ahora vamos a reconfigurarlo con nuestra configuración requerida. Durante esta etapa, hará muchas preguntas.

$dpkg-reconfigure slapd

Estas son las pocas etapas durante la fase de reconfiguración.

  1. Omitir configuración OpenLDAP Sí / No: No
  2. Nombre de dominio DNS: ldap01.linoxide.com
  3. Nombre de la organización: puede dar el nombre preferido.
  4. Contraseña de administrador
  5. Confirmar contraseña de administrador
  6. Backend de base de datos a utilizar: HDB

Puede consultar /usr/share/doc/slapd/README.Debian.gz para obtener más detalles.

7. Do you want to remove the database when slapd is purged? Yes/No : Yes
8. Move old database? Yes/No : Yes
9. Allow LDAPv2 Protocol? Yes/No : No

Después de la instalación, puede confirmar la configuración de la bofetada ejecutando el comando «slapcat».

root@ldap01:~# slapcat
dn: dc=ldap01,dc=linoxide,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: VIP
dc: ldap01
structuralObjectClass: organization
entryUUID: 5aa381ee-6023-1036-9173-3d709bfb7bb0
creatorsName: cn=admin,dc=ldap01,dc=linoxide,dc=com
createTimestamp: 20161227015557Z
entryCSN: 20161227015557.816230Z#000000#000#000000
modifiersName: cn=admin,dc=ldap01,dc=linoxide,dc=com
modifyTimestamp: 20161227015557Z

dn: cn=admin,dc=ldap01,dc=linoxide,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TXBudUpGK3JhWVd1WXBIMFJHZ2ZkTGpGQ2oxem5xQ2o=
structuralObjectClass: organizationalRole
entryUUID: 5aa41e24-6023-1036-9174-3d709bfb7bb0
creatorsName: cn=admin,dc=ldap01,dc=linoxide,dc=com
createTimestamp: 20161227015557Z
entryCSN: 20161227015557.820223Z#000000#000#000000
modifiersName: cn=admin,dc=ldap01,dc=linoxide,dc=com
modifyTimestamp: 20161227015557Z

Cómo instalar Nginx y PHP

Nuestro siguiente paso es instalar Nginx y PHP. A diferencia de Apache, Nginx no ofrece mod_php. ¡Tampoco puedes usar PHP en CGI! Será necesario utilizar FastCGI y configurarlo para que inicie el proceso PHP.

$apt-get install ngnix
$apt-get install php7.0-fpm

Ahora podemos verificar el funcionamiento de PHP colocando una página de información de PHP, a saber, info.php con contenido () en / usr / nginx / html / www y modifique nuestro host virtual predeterminado (/ etc / nginx / sites-available / default) con nuestro nombre de host.

server {
listen 80;
server_name ldap01.linoxide.com;
root /usr/share/nginx/www;
index index.php index.html;

access_log /var/log/nginx/localhost.access.log;
location ~ .php$ {
include snippets/fastcgi-php.conf;

# With php7.0-cgi alone:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}

Puede acceder a la URL >> ldap01.linoxide.com/info.php para confirmar su funcionamiento.

Cómo instalar phpLDAPadmin

Aunque es posible administrar LDAP a través de la línea de comandos, la mayoría de los usuarios preferirán una forma más sencilla de administrarlo mediante una interfaz web. Instalemos phpLDAPadmin, que proporciona esta funcionalidad, para ayudar a eliminar parte de la fricción de aprender las herramientas LDAP. Se puede instalar con un solo comando como se muestra a continuación:

$apt-get install phpldapadmin

Nuestro servidor web está configurado para servir esta aplicación. Pero necesitamos realizar los cambios necesarios en nuestro host virtual Nginx para que funcione según sea necesario. He modificado mi archivo de host virtual predeterminado para cargar esta aplicación según sea necesario.

Configuración de phpLDAPadmin

El paquete está instalado, ahora necesitamos configurar algunas cosas para que pueda conectarse a nuestra estructura de directorio LDAP que se creó durante la etapa de configuración de OpenLDAP.

En primer lugar, abra el archivo de configuración principal (/etc/phpldapadmin/config.php) con privilegios de root en su editor de texto y realice los siguientes cambios con la IP de su servidor y el nombre DNS base del servidor LDAP.

Y finalmente, necesitamos ajustar una configuración para controlar la visibilidad de los mensajes de advertencia. De forma predeterminada, phpLDAPadmin lanzará bastantes mensajes de advertencia molestos en su interfaz web sobre los archivos de plantilla que no tienen ningún impacto en la funcionalidad.

Podemos ocultarlos buscando el parámetro hide_template_warning, descomentando la línea que lo contiene y configurándolo en «cierto«:

$config->custom->appearance['hide_template_warning'] = true;

Guarde todos estos cambios en el archivo de configuración.

Creando el host virtual para phpLDAPadmin

Como no tengo ninguna configuración en particular, modifiqué mi host virtual predeterminado para permitir esta aplicación. Puede modificar esto con su nombre de host preferido.

$ cat /etc/nginx/sites-available/default
server {
server_name ldap01.linoxide.com;
listen 80;

# document root
root /usr/share/nginx/www;
index index.php index.html index.htm;

# application: phpldapadmin
location /phpldapadmin {
alias /usr/share/phpldapadmin/htdocs;
index index.php index.html index.htm;
}
location ~ ^/phpldapadmin/.*.php$ {
root /usr/share;
if ($request_filename !~* htdocs) {
rewrite ^/phpldapadmin(/.*)?$ /phpldapadmin/htdocs$1;
}
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}

# logging
error_log /var/log/nginx/phpldapadmin.error.log;
access_log /var/log/nginx/phpldapadmin.access.log;
}

Después de realizar estos cambios, reinicie Nginx y php-fpm para actualizar estos cambios. Ahora podemos acceder a nuestra interfaz web phpLDAPadmin simplemente llamando a esta URL en el navegador >> http://ldap01.linoxide.com/phpldapadmin/.

Puede iniciar sesión con las credenciales de administrador LDAP creadas durante la fase de instalación.

¡Hola! hemos terminado con phpLDAPadmin. Creo que con esto puede administrar fácilmente su servidor LDAP. Tiene la capacidad de agregar usuarios, unidades organizativas, grupos y relaciones desde la interfaz phpLDAPadmin. LDAP es flexible en la forma en que desea estructurar sus datos y jerarquías de directorios.

Conclusión

Ahora deberíamos tener OpenLDAP instalado y configurado en nuestro servidor Ubuntu 16.04 con servidor web Nginx. Además, hemos instalado y configurado una interfaz web para administrar fácilmente su estructura LDAP a través del programa phpLDAPadmin. El sistema que hemos configurado es bastante flexible y debería poder diseñar su propio esquema organizativo y administrar grupos de recursos según lo requieran sus necesidades.

Espero que este artículo te sea de utilidad. Publique sus valiosas sugerencias y comentarios al respecto.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar