En nuestro artículo anterior, configuramos el servidor OpenLDAP en CentOS 7/RHEL 7 para la autenticación centralizada. A continuación, ahora configuraremos OpenLDAP con SSL para una comunicación segura. En esta configuración, las comunicaciones de los clientes LDAP se realizan a través del puerto seguro 636 en lugar del puerto no seguro 389.
Siga esta guía para configurar OpenLDAP con SSL.
Requisitos
1. Configuración de OpenLDAP.
2. Haga una entrada de host del servidor LDAP en sus máquinas cliente en /etc/hosts
para la resolución de nombres.
192.168.1.10 server.itzgeek.local server
O
Si planea usar el nombre de host en lugar de la dirección IP, entonces configure el servidor DNS en CentOS 7/RHEL 7 tener resolución de nombre de host.
Crear certificado LDAP
Si planea usar LDAP sobre SSL, puede seguir cualquiera de los siguientes métodos para implementarlo.
1. Certificado autofirmado:es un certificado autofirmado simple. Los clientes LDAP deben tener tls_reqcert allow
en /etc/nslcd.conf
a no validar el certificado.
2. Certificado firmado por CA:sus certificados de firma de CA interna o CA externa. Debe colocar el certificado de CA que firmó su certificado de servidor LDAP en /etc/openldap/cacerts/
directorio para que los clientes LDAP puedan validar certificados.
Certificado autofirmado
Creemos un certificado autofirmado para nuestro servidor LDAP. El siguiente comando genera tanto el certificado como la clave privada en /etc/openldap/certs/
directorio.
openssl req -new -x509 -nodes -out /etc/openldap/certs/itzgeekldap.crt -keyout /etc/openldap/certs/itzgeekldap.key -days 1460
Salida:
Generating a 2048 bit RSA private key ...+++ .....................................+++ writing new private key to '/etc/openldap/certs/itzgeekldapkey.pem' ----- 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) [XX]: XX State or Province Name (full name) []: XX Locality Name (eg, city) [Default City]: XXXXXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Infra Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected]
Establezca los permisos de propietario y grupo.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Verifique el certificado LDAP creado en /etc/openldap/certs/
directorio.
ll /etc/openldap/certs/itzgeek*
Salida:
-rw-r--r--. 1 ldap ldap 1302 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1704 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.key
Crear certs.ldif
archivo para configurar LDAP para usar comunicación segura usando un certificado autofirmado.
vi certs.ldif
Utilice la siguiente información.
dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Importe las configuraciones al servidor LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Verificar la configuración
slaptest -u
Debería recibir el siguiente mensaje sobre la verificación exitosa.
config file testing succeeded
Certificado personalizado firmado por CA
Cree la clave raíz usando el siguiente comando.
cd /etc/openldap/certs/ openssl genrsa -out itzgeekrootCA.key 2048
Ahora, cree el certificado raíz autofirmado.
openssl req -x509 -new -nodes -key itzgeekrootCA.key -sha256 -days 1024 -out itzgeekrootCA.pem
Salida:
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) [XX]:XX State or Province Name (full name) []:XXX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:XXX Common Name (eg, your name or your server's hostname) []:ITzGeek Root CA Email Address []:[email protected]
Cree una clave privada para el servidor LDAP.
openssl genrsa -out itzgeekldap.key 2048
Una vez que tenga la clave privada, cree una solicitud de firma de certificado.
openssl req -new -key itzgeekldap.key -out itzgeekldap.csr
Salida:
Asegúrese de que el nombre común coincida con el nombre de host o la dirección IP de su servidor LDAP.
Generating RSA private key, 2048 bit long modulus .........+++ .............................................................+++ e is 65537 (0x10001) [root@server certs]# openssl req -new -key itzgeekldap.key -out itzgeekldap.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) [XX]:XX State or Province Name (full name) []:XX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Ahora, firme una solicitud de firma de certificado utilizando la CA raíz personalizada.
openssl x509 -req -in itzgeekldap.csr -CA itzgeekrootCA.pem -CAkey itzgeekrootCA.key -CAcreateserial -out itzgeekldap.crt -days 1460 -sha256
Establezca los permisos de propietario y grupo.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Verifique el certificado LDAP creado en /etc/openldap/certs/
directorio.
ll /etc/openldap/certs/itzgeek*
Salida:
-rw-r--r--. 1 ldap ldap 1285 Apr 1 16:54 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1050 Apr 1 16:53 /etc/openldap/certs/itzgeekldap.csr -rw-r--r--. 1 ldap ldap 1675 Apr 1 16:51 /etc/openldap/certs/itzgeekldap.key -rw-r--r--. 1 ldap ldap 1679 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.key -rw-r--r--. 1 ldap ldap 1399 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.pem -rw-r--r--. 1 ldap ldap 17 Apr 1 16:54 /etc/openldap/certs/itzgeekrootCA.srl
Crear certs.ldif
archivo para configurar LDAP para usar comunicación segura usando un certificado autofirmado.
vi certs.ldif
Utilice la siguiente información.
dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/openldap/certs/itzgeekrootCA.pem dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Importe las configuraciones al servidor LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Verificar la configuración
slaptest -u
Debería recibir el siguiente mensaje sobre la verificación exitosa.
config file testing succeeded
Configurar OpenLDAP para escuchar sobre SSL
Edite el /etc/sysconfig/slapd
y configure OpenLDAP para escuchar sobre SSL.
vi /etc/sysconfig/slapd
Actualice la siguiente línea.
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
Reinicie el servicio slapd.
systemctl restart slapd
Verifique el servicio LDAP. El servicio LDAP ahora también debería estar escuchando en el puerto TCP 636.
netstat -antup | grep -i 636
Salida:
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 11720/slapd tcp6 0 0 :::636 :::* LISTEN 11720/slapd
Cortafuegos
Agregue el servicio LDAPS al firewall (TCP 686).
firewall-cmd --permanent --add-service=ldaps firewall-cmd --reload
Configuración del cliente OpenLDAP para OpenLDAP sobre SSL
Instale los paquetes del cliente usando el comando yum.
yum install -y openldap-clients nss-pam-ldapd
Ejecute authconfig
comando para agregar una máquina cliente al servidor LDAP para el inicio de sesión único. Reemplace “servidor.itzgeek.local ” con su dirección IP o nombre de host del servidor LDAP.
Si ha utilizado un certificado firmado por una CA personalizada o una CA externa en la configuración de OpenLDAP, el nombre de host o la dirección IP deben coincidir con el nombre común del certificado del servidor LDAP
authconfig --enableldap --enableldapauth --ldapserver=ldaps://server.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --disableldaptls --update
Deberá realizar los pasos a continuación según el método que haya configurado OpenLDAP para usar SSL.
Certificado autofirmado
Edite el nslcd.conf
archivo.
vi /etc/nslcd.conf
Agregue la siguiente línea en el nslcd.conf
expediente. La siguiente configuración deshabilitará la validación del certificado realizada por los clientes, ya que estamos utilizando un certificado autofirmado.
tls_reqcert allow
Firmado por una CA personalizada o firmado por una CA externa
Copia el itzgeekrootCA.pem
desde el servidor LDAP o coloque el certificado intermedio o CA proporcionado por una CA externa en el /etc/openldap/cacerts
directorio.
cd /etc/openldap/cacerts/ scp -pr 192.168.1.10:/etc/openldap/certs/itzgeekrootCA.pem /etc/openldap/cacerts
Cree el hash c del certificado CA.
/etc/pki/tls/misc/c_hash /etc/openldap/cacerts/itzgeekrootCA.pem
Salida:
997ee4fb.0 => /etc/openldap/cacerts/itzgeekrootCA.pem
Ahora, enlace el rootCA.pem con el número hexadecimal de 8 dígitos que se muestra.
ln -s /etc/openldap/cacerts/itzgeekrootCA.pem 997ee4fb.0
Reinicie el servicio de cliente LDAP.
systemctl restart nslcd
Verificar inicio de sesión LDAP
Use el comando getent para obtener las entradas LDAP del servidor LDAP.
getent passwd raj
Salida:
raj:x:9999:100:Raj [Admin (at) ITzGeek]:/home/raj:/bin/bash
Para verificar el LDAP, inicie sesión con el usuario de LDAP "raj" en la máquina cliente.
Captura de pantalla:
Referencia
OpenFusion:sugerencias y trucos de OpenLDAP
CentOS – Foro
Eso es todo.