Afegir SSL/TLS a un servei LDAP

Objectiu:

Aquesta petita entrada mostrarà com afegir la possibiltat de connectar-se al directori LDAP mitjançant SSL (amb l’extensió StartTLS)

Procediment:

Es parteix de la base que disposem d’un servidor amb OpenLDAP executant-se. Aquesta entrada mostrarà com realitzar la configuració sobre OpenLDAP 2.4. A més també es suposa que es disposa d’un entorn de certificació per generar certificats.

Amb les bases clares generarem un certificat pel servidor:

$ openssl req -newkey rsa:1024 -keyout ldap1.key -keyform PEM -out ldap1.req -outform PEM -utf8 -nodes -config openssl.cnf

Aquesta comanda generarà els dos arxius ldap1.key (la clau) i ldap1.req (la petició) per ser signats per l’autoritat de certificació utilitzant l’arxiu de configuració openssl.cnf.

Per signar la petició amb la CA fem:

$ openssl ca -in ldap1.req -out ldap1.crt -config openssl.cnf

Ja disposem de l’arxiu ldap1.crt que copiarem al servidor on s’executa OpenLDAP juntament amb la clau i el certificat de la CA. La petició incial (ldap1.req) es pot eliminar.

Configuració d’OpenLDAP:

Amb els arxius ca.crt, ldap1.key i ldap1.crt copiats a la carpeta /etc/ldap/ssl del servidor afegirem les línies següents a l’arxiu /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif:

olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt
olcTLSCertificateFile: /etc/ldap/ssl/ldap1.crt
olcTLSCertificateKeyFile: /etc/ldap/ssl/ldap1.key

Reiniciem el servei:

$ /etc/init.d/slapd restart

A partir d’aquest punt ja podem connectar al port 389 mitjançant StartTLS. Si desitjem habilitar el port 686 per connectar amb ldaps:// podem modificar l’arxiu /etc/default/slapd i afegir (o modificar) la línia:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

L’opció d’utilitzar un segon port per les connexions segures està desaconsellat per a LDAP, es recomana utilitzar l’extensió StartTLS sempre que sigui possible.