Вы находитесь на странице: 1из 19

Autenticación centralizada con OpenLDAP

Autor: Andrés Leonardo Hernández Bermúdez


e-mail: ahernandez@seguridad.unam.mx
Fecha de creación: 26 – Mayo – 2011
Versión: 1.0
Control de versiones

Fecha Versión Descripción de la modificación Autor


26-Mayo-2011 1.0 Versión inicial Andrés Hernández

LICENCIA

Atribución-NoComercial-SinDerivadas 2.5 México (CC BY-NC-ND 2.5)

Usted es libre de:

Compartir - copiar, distribuir, ejecutar y comunicar públicamente la obra

Bajo las condiciones siguientes:

Atribución — Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciante (pero no de
una manera que sugiera que tiene su apoyo o que apoyan el uso que hace de su obra).

No Comercial — No puede utilizar esta obra para fines comerciales.

Sin Obras Derivadas — No se puede alterar, transformar o generar una obra derivada a partir de esta obra.

Entendiendo que:

Renuncia — Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor

Dominio Público — Cuando la obra o alguno de sus elementos se halle en el dominio público según la ley vigente
aplicable, esta situación no quedará afectada por la licencia.

Otros derechos — Los derechos siguientes no quedan afectados por la licencia de ninguna manera:

Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley no se ven afectados por lo anterior.

Los derechos morales del autor.

Derechos que pueden ostentar otras personas sobre la propia obra o su uso, como por ejemplo derechos de imagen o de
privacidad.
Subdirección de Seguridad de la Información/ UNAM-CERT

CONTENIDO

Objetivo ........................................................................................................................................... 4

Desarrollo ........................................................................................................................................ 4

Referencias .................................................................................................................................... 19

Página 3 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

OBJETIVO
Tener un mecanismo de autenticación centralizada para facilitar la autenticación y administración
de usuarios.

DESARROLLO

CONFIGURACIÓN DEL GESTOR DE PAQUETES

Se configurará el gestor de paquetes para que realice todas las preguntas necesarias para
configurar el software.

# dpkg-reconfigure debconf

Interface to use
Dialog

Ignore questions with a priority less than


low

INSTALACIÓN DEL DEMONIO DE OPENLDAP

# apt-get install slapd

Omit OpenLDAP server configuration?


<No>

DNS domain name


admin.unam.mx

Organization name
AdminUNAM

Administrator password
admin

Database backend to use


HDB

Do you want the database to be removed when slapd is purged?


<No>

Allow LDAPv2 protocol?


<No>

Should man and mandb be installed 'setuid man'?


<No>

Página 4 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

CONFIGURANDO PRE-REQUISITOS DE SSL

CREAR EL GRUPO SSL-CERT Y AGREGAR AL USUARIO OPENLDAP

# groupadd --gid 107 --system ssl-cert


# adduser openldap ssl-cert

Modificar permisos a los directorios de openssl

# chown root:ssl-cert /etc/ssl/private/


# chmod g+x /etc/ssl/private/

CREAR UN CERTIFICADO SSL AUTO-FIRMADO

Crear la llave RSA

# openssl genrsa -out server.key 1024

Generating RSA private key, 1024 bit long modulus


...................................................................
...............................++................................++
e is 65537 (0x10001)

Crear la peticion de firmado (CSR)

# openssl req -new -days 365 -key server.key -out server.csr

You are about to be asked to enter information that will be


incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [MX]:MX
State or Province Name (full name) []:Distrito Federal
Locality Name (eg, city) []:Coyoacan
Organization Name (eg, company) []:Universidad Nacional Autonoma de
Mexico
Organizational Unit Name (eg, section) []:Subdireccion de Seguridad
de la Informacion
Common Name (eg, YOUR name) []:AdminUNAM
Email Address []:

Please enter the following 'extra' attributes


to be sent with your certificate request
A challenge password []:
An optional company name []:Seminario de Administradores de
Seguridad UNAM 2011

Página 5 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Crear el certificado auto-firmado

# openssl x509 -req -days 365 -in server.csr -out server.crt -signkey
server.key

Signature ok
subject=/C=MX/ST=Distrito Federal/L=Coyoacan/O=Universidad Nacional
Autonoma de Mexico/OU=Subdireccion de Seguridad de la
Informacion/CN=AdminUNAM
Getting Private key

INSTALAR EL CERTIFICADO

Instalar el certificado del servidor en /etc/ssl/certs/ y la llave en /etc/ssl/private/

# install -D -o root -g ssl-cert -m 644 server.crt


/etc/ssl/certs/server.crt
# install -D -o root -g ssl-cert -m 640 server.key
/etc/ssl/private/server.key

Regenerar los hashes de los certificados


# c_rehash /etc/ssl/certs/

...
server.crt => dc373df2.0
...

CONFIGURANDO SSL PARA SLAPD

Detener el servicio de LDAP

# /etc/init.d/slapd stop

Habilitar LDAPS en todas las interfaces y LDAP solo en loopback

# vi /etc/default/slapd

SLAPD_SERVICES="ldaps://*:636/ ldap://127.0.0.1:389/ ldapi:///"

Agregar el soporte SSL

Editar /etc/ldap/slapd.d/cn\=config.ldif y agregar las siguientes lineas después de


"olcToolThreads: 1"

olcTLSCertificateFile: /etc/ssl/certs/server.crt
olcTLSCertificateKeyFile: /etc/ssl/private/server.key

Página 6 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Indizar la base de datos y reparar los permisos

# slapindex -F /etc/ldap/slapd.d/
# chown -R openldap:openldap /var/lib/ldap/

Iniciar el servicio

# /etc/init.d/slapd start

Comprobar que slapd esta escuchando en los puertos especificados

# netstat -natuplw | grep slapd

tcp 0.0.0.0:636 0.0.0.0:* LISTEN 8378/slapd


tcp 127.0.0.1:389 0.0.0.0:* LISTEN 8378/slapd
tcp6 :::636 :::* LISTEN 8378/slapd

En este punto se tiene el servicio slapd configurado pero no se han creado usuarios ni se ha
configurado el sistema para que utilice LDAP como mecanismo de autenticación.
apt install ldap-utils
ldapsearch -v -x -W -D ‘cn=admin,dc=becarios,dc=local’ -b ‘dc=becarios,dc=local’ >directorio.ldif
enter password:hola123.,
cat directorio.ldif

CONFIGURAR EL MECANISMO DE AUTENTICACIÓN POR LDAP

Instalar el paquete de soporte LDAP para PAM

# apt-get install libpam-ldapd

LDAP server URI:


ldap://127.0.0.1:389/

LDAP server search base:


dc=admin,dc=unam,dc=mx

LDAP database user:


(dejar en blanco)

Use StartTLS?
<No>

Name services to configure:


[*] aliases
[*] group
[*] passwd
[*] shadow

PAM profiles to enable:


[*] Unix authentication
[*] LDAP Authentication

Página 7 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

INSTALACIÓN DE LA INTERFAZ ADMINISTRATIVA

CONFIGURAR APACHE HTTPD CON SSL

Instalar el demonio

# apt-get install apache2

Habilitar los modulos rewrite y ssl

# cd /etc/apache2/mods-enabled/
# ln -s ../mods-available/ssl.conf
# ln -s ../mods-available/ssl.load
# ln -s ../mods-available/rewrite.load
ln -s /etc/apache2/mods-available/socache_shmcb.load
Habilitar el VirtualHost con soporte para SSL

# cd ../sites-enabled/
# ln -s ../sites-available/default-ssl
default-ssl.conf
Editar el archivo /etc/apache2/sites-enabled/default-ssl y cambiar estas lineas para que apunten al
certificado y a la llave privada que se genero previamente.

Cambiar estas lineas

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Por estas
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Reiniciar el servicio

# /etc/init.d/apache2 restart

Instalar y configurar la interfaz administrativa ldap-account-manager

# apt-get install ldap-account-manager

Web server configuration


[*] apache2

Alias name
lam

Restart webservers now?


<Yes>

Página 8 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

REDIRECCIONAR LAS PETICIONES A HTTPS

Por la naturaleza de la información que se maneja en la interfaz administrativa es de suma


importancia que todas las peticiones se hagan por medio de un canal cifrado. Con las siguientes
configuraciones se redirigen a https todas las peticiones a la interfaz administrativa.

Agregar las siguientes lineas al archivo de configuraciones de apache /etc/apache2/conf.d/ldap-


account-manager debajo de la directiva Alias nano /etc/ldap-account-manager/apache.conf

<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /lam>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
</Location>
</IfModule>
</IfModule>

Recargar la configuración del servidor web

# /etc/init.d/apache2 reload

CONFIGURACIÓN DE LA INTERFAZ ADMINISTRATIVA

En un navegador entramos a la dirección del servidor

Página 9 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Aparecerá una advertencia acerca del certificado porque es auto-firmado.

Agregar la excepción de seguridad y confirmarla.

Página 10 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Una vez en la interfaz dar click en "LAM configuration", y entrar en la sección "Edit Server
Profiles". Pedirá una contraseña que por defecto es "lam".

Ingresar los siguientes datos en el formulario de configuración

Server settings
Server address:
ldap://localhost:389/
Activate TLS:
No
Tree suffix:
dc=admin,dc=unam,dc=mx
Cache timeout:
0
LDAP search limit:
-

Security settings
Login method:
Fixed-list
LDAP search
List of valid users:
cn=admin,dc=admin,dc=unam,dc=mx
LDAP suffix:
dc=admin,dc=unam,dc=mx
LDAP filter:
cn=%USER%
New password:
<password>
Reenter password:
<password>

Página 11 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Dar click en la seccion "Account Types".

Aqui se configuraran las opciones de las nuevas cuentas, por lo general solo se necesita habilitar
usuarios y grupos, por lo que se deshabilitaran las otras opciones al dar click en el icono [006 -
Delete] que aparece después de las opciones "Hosts" y "Samba domains".

En la seccion "Users" modificar el sufijo LDAP

ou=users,dc=admin,dc=unam,dc=mx

En la seccion "Groups" modificar tambien el sufijo LDAP

ou=groups,dc=admin,dc=unam,dc=mx

La pagina de configuración queda asi

Dar click en la sección "Modules"

En la parte izquierda se encuentran los módulos seleccionados y en el panel izquierdo los


deshabilitados, mover los módulos a manera de que queden como en la siguiente imagen.

Página 12 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Dar click en la sección "Module Settings"

Aquí se pueden ocultar ciertos campos no necesarios de los módulos seleccionados para facilitar la
búsqueda y la creación de nuevas cuentas. En la siguiente imagen se muestra un configuración que
solo muestra los campos de descripción, nombre de oficina y dirección de correo electrónico.

Página 13 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Por ultimo dar click en "Save" para guardar la configuración de la aplicación.

Iniciar sesión en la interfaz administrativa para agregar usuarios. La configuración para iniciar
sesión requiere que se introduzca el Common Name (cn) en el campo "User name", el password
en esta configuración de ejemplo es "admin".

Despues de iniciar sesión se preguntara si se desean crear las "Unidades Organizacionales" (ou)
donde se crearan los usuarios y los grupos. Dar click en "Create".

Página 14 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Aparecerá una confirmación de exito.

Agregar el primer grupo

Dar click en la pestaña "Groups" y despues en el boton "New group". Llenar los campos Group
name y Description. El número correspondiente al identificador del grupo se calculara
automáticamente.

Por ultimo dar click en el botón "Save" para guardar los cambios.

Si se desea crear otro grupo dar click en "Create new group", de lo contrario dar click en "back to
group List".

Página 15 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Cuando se tengan definidos algunos grupos la lista sera similar a la siguiente

Para crear usuarios dar click en la pestaña "Users" y despues en el botón "New user". De manera
similar llenar los campos. Incluso si se tiene una imagen en formato jpeg se puede utilizar como la
fotografía del usuario.

Al terminar de llenar los campos de esta sección dar click en la pestaña "Unix" para configurar los
párametros de la cuenta UNIX en caso de que se desee cambiar la ubicación del directorio home o
el shell. De igual manera que en la creación de un nuevo grupo si no se especifica un identificador
numérico se calcula automáticamente.

Página 16 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Después de llenar los datos es muy importante que se establezca una contraseña para el usuario.
Dar click en el botón y establecer la contraseña para el usuario, misma que
se guardara cuando se almacenen los datos del usuario en el directorio.

Por ultimo dar click en el botón "Save" para agregar el nuevo usuario y guardar sus datos.

Cuando se desee ver el árbol de directorio dar click en la pestaña "Tree view" y se mostrara una
pantalla similar a esta.

Página 17 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

ACCESO POR SSH

Con los usuarios creados en el directorio y el servidor configurado para buscarlos en LDAP se
puede iniciar sesión remotamente. Para esto se tiene que crear el directorio home del usuario y
asignar los permisos adecuados, por ejemplo para agregar el home de los dos usuarios anteriores.

# mkdir /home/ahernandez /home/sbecerril


# chown ahernandez:profesores /home/ahernandez
# chown sbecerril:personal /home/sbecerril
# chmod 700 /home/ahernandez /home/sbecerril

AGREGANDO USUARIOS MASIVAMENTE

La cantidad de cuentas a agregar puede ser grande y se necesita un mecanismo automatizado para
crearlas. Una de las características de LDAP Account Manager es la generación de cuentas en el
directorio utilizando un archivo de valores separados por coma (CSV).

Para importar un archivo CSV en la pantalla principal dar click en y despues en


. Hay una sección donde se elige el archivo CSV y se sube al servidor.

Página 18 de 19
Subdirección de Seguridad de la Información/ UNAM-CERT

Si se desea obtener un archivo CSV de muestra en la parte final de la pagina se viene la opción de
descargarlo, solo se tienen que eliminar las siguientes columnas

posixAccount_additionalGroups
posixAccount_createHomeDir

Después de subir el archivo al servidor, este lo verifica y si no hay errores se da la opción de aplicar
los cambios en el directorio..

REFERENCIAS
Listado de las fuentes de información en las que se apoyó para el desarrollo del documento.

OpenLDAP Software 2.4 Administrator's Guide


http://www.openldap.org/doc/admin24/

Sitio web de LDAP Account Manager


http://www.ldap-account-manager.org/

Página 19 de 19

Вам также может понравиться