Ldaps
Introducción
Configuraremos el servidor LDAP de frestón instalado y configurado en la practica anterior para que utilice el protocolo ldaps:// a la vez que el ldap:// utilizando el certificado x509 de la práctica de https o solicitando el correspondiente a través de gestiona. Realiza las modificaciones adecuadas en el cliente ldap de frestón para que todas las consultas se realicen por defecto utilizando ldaps://
LDAPS
Lo primero que tendremos que hacer para usar ldaps, sera tener tanto un certificado .crt de la unidad certificadora, en este caso el IES Gonzalo Nazareno, un .crt firmado por la unidad certificadora y un fichero .key usado para crear un fichero csr que posteriormente se firmará.
Después de crear los certificados y ubicarlos en /etc/ssl/certs/ (los ficheros .crt) y el fichero .key en /etc/ssl/private/, hay que cambiar las acl con el comando setfacl para agregar los permisos:
Instalamos el paquete acl:
sudo apt install acl
Una vez tengamos los certificados en la maquina de freston, pasamos a ubicarlos en sus respectivos directorios:
debian@freston:~$ sudo mv gonzalonazareno.crt /etc/ssl/certs/
debian@freston:~$ sudo mv sergio.ibanez.crt /etc/ssl/certs/
debian@freston:~$ sudo mv sergio.ibanez.key /etc/ssl/private/
Agregamos los permisos necesarios para que el usuario openldap pueda hacer uso de los certificados usando el comando setfacl, en este caso usando la opcion -m ya que vamos a modificar las ACL de un determinado fichero o directorio:
debian@freston:~$ sudo setfacl -m u:openldap:r-x /etc/ssl/private
debian@freston:~$ sudo setfacl -m u:openldap:r-x /etc/ssl/private/sergio.ibanez.key
debian@freston:~$ sudo setfacl -m u:openldap:r-x /etc/ssl/certs
debian@freston:~$ sudo setfacl -m u:openldap:r-x /etc/ssl/certs/gonzalonazareno.crt
debian@freston:~$ sudo setfacl -m u:openldap:r-x /etc/ssl/certs/sergio.ibanez.crt
Se crea un fichero .ldif con el siguiente contenido indicando que en el objeto config se van a modificar las ubicaciones de los certificados:
dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/gonzalonazareno.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/sergio.ibanez.key
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/sergio.ibanez.crt
Se añaden los cambios del fichero ldif creado anteriormente:
debian@freston:~$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldaps.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
Configuramos /etc/ldap/ldap.conf para indicar la ubicación del certificado de AC:
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/gonzalonazareno.crt
Por defecto la ubicación es /etc/ssl/certs/ca-certificates.crt por lo que otra forma de hacerlo seria mover nuestro gonzalonazareno.crt a /etc/ssl/certs/ca-certificates.
Configuramos también en /etc/default/ldap la siguiente linea:
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
Reiniciamos el servicio ldap:
sudo systemctl restart slapd
Comprobación usando ldaps:
debian@freston:~$ sudo ldapsearch -x -H ldaps://freston.sergio.gonzalonazareno.org:636 -b "cn=admin,dc=sergio,dc=gonzalonazareno,dc=org"
# extended LDIF
#
# LDAPv3
# base <cn=admin,dc=sergio,dc=gonzalonazareno,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# admin, sergio.gonzalonazareno.org
dn: cn=admin,dc=sergio,dc=gonzalonazareno,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Comprobamos también si haciéndolo con ldap funciona:
debian@freston:~$ sudo ldapsearch -x -H ldap://freston.sergio.gonzalonazareno.org:636 -b "cn=admin,dc=sergio,dc=gonzalonazareno,dc=org"
ldap_result: Can't contact LDAP server (-1)
Comments