Instalando openldap con soporte SSL en debian I (instalando el servidor)

July 24, 2006 on 1:03 pm | In GNU/Linux |

Aprovechando que tenemos servidor nuevo en el GUL, me he propuesto instalar openldap con soporte ssl desde cero y documentarlo, ya que las guías que he encontrado por ahí no son muy buenas, algunas cosas no quedan claras.

El objetivo primero es instalar openldap en la máquina y que los usuarios locales autentiquen a través de ldap.

Lo primero que hemos de hacer es instalar openldap y algunas utilidades que nos harán falta más tarde:

#apt-get install slapd ldap-utils

Ahora debemos modificar el fichero /etc/ldap/slapd.conf de la siguiente manera:

# The base of your directory in database #1
suffix “dc=gul,dc=uc3m,dc=es”
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword
by dn=”cn=admin,dc=gul,dc=uc3m,dc=es” write
by anonymous auth
by self write
by * none
# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn=”cn=admin,dc=gul,dc=uc3m,dc=es” write
by * read

Con esto hemos configurado el servidor ldap para el dominio del GUL-UC3M.

Ahora procederemos al tema de los certificados para el soporte ssl. Hay varias formas de generar las claves del servidor, pero me decantaré por la de generar una autoridad de certificación propia (CA), la cual firmará los certificados tanto del servidor como de los clientes.

Instalamos openssl:

#apt-get install openssl

Generamos una CA propia:

#cd /usr/lib/ssl/misc/
#./CA.sh -newca

Es necesario introducir todos los datos correctamente así como una passphrase para la CA.
#mv demoCA /etc/gulCA

Con esto tenemos nuestra autoridad de certificación en /etc/gulCA

Ahora modificamos el fichero /usr/lib/ssl/openssl.cnf de manera que todo se haga con nuestra CA:

####################################################################
[ CA_default ]

dir = /etc/gulCA # Where everything is kept
Ahora creamos la clave del servidor y la petición de firmado para la CA:

#cd /etc/gulCA

#openssl req -newkey rsa:1024 -nodes -keyout newreq.pem -out newreq.pem

Hacemos la petición de firmado:

# /usr/lib/ssl/misc/CA.sh -sign

Nos pedirá la passphrase de la CA introducida anteriormente.

Con esto las claves ya estarán firmadas, ahora debemos crear un directorio donde se guardarán para su posterior uso por slapd:

#mkdir /etc/ldap/slapd-certs
#cp cacert.pem /etc/ldap/slapd-certs/
#mv newcert.pem /etc/ldap/slapd-certs/servercrt.pem
#mv newreq.pem /etc/ldap/slapd-certs/serverkey.pem
#chmod 400 /etc/ldap/slapd-certs/serverkey.pem

A continuación debemos editar el fichero /etc/ldap/slapd.conf para que contenga las siguientes líneas:

TLSCipherSuite HIGH:MEDIUM:+SSLv2:RSA
TLSCACertificateFile /etc/ldap/slapd-certs/cacert.pem
TLSCertificateFile /etc/ldap/slapd-certs/servercrt.pem
TLSCertificateKeyFile /etc/ldap/slapd-certs/serverkey.pem

Para que el servidor arranque tanto en modo no seguro como en modo seguro, hay que modificar el fichero /etc/default/slapd de la siguiente manera:

SLAPD_SERVICES=”ldap:/// ldaps:///”
Si todo ha ido bien, al arrancar el servidor ldap, no debería dar ningún error:

#/etc/init.d/slapd start

Starting OpenLDAP: slapd.

Para comprobar que el servidor está corriendo podemos ejecutar:

# netstat -alnp | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 7716/slapd
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 7716/slapd
tcp 0 0 127.0.0.1:389 127.0.0.1:49456 ESTABLISHED7716/slapd
tcp6 0 0 :::389 :::* LISTEN 7716/slapd
tcp6 0 0 :::636 :::* LISTEN 7716/slapd

Podemos ver cómo el servidor está corriendo en los puertos 389 (no seguro) y 636(seguro).

Más adelante más :)

Cualquier sugerencia, corrección de errores, etc, etc es bienvenida

1 Comment »

RSS feed for comments on this post. TrackBack URI

  1. ayuda por favor!
    me sale este error y no tengo ni la menor idea de que puede ser…
    slapd -h ‘ldap:/// ldaps:///’ -g openldap -u openldap
    he realizado todos los pasos como me indica,
    ayuda please

    Comment by daguilera — 21 September, 2007 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^