GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configurar OpenLDAP con SSL en CentOS 7 / RHEL 7

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.


Cent OS
  1. Configurar Kibana 4 con Nginx | Protección de Kibana 4 – CentOS 7

  2. Configuración paso a paso del servidor OpenLDAP en CentOS 7 / RHEL 7

  3. Cómo configurar IMAP con SSL

  4. Cómo instalar y configurar OpenLDAP en CentOS / RHEL Linux

  5. CentOS / RHEL 7:Cómo configurar serial getty con systemd

Cómo configurar la dirección IP en CentOS 7/RHEL 7 y CentOS 6/RHEL 6

Configurar la replicación multimaestro de OpenLDAP en Linux

Cómo configurar la dirección IP estática en CentOS 7 / RHEL 7

Cómo configurar la dirección IP estática en CentOS 8 / RHEL 8

Cómo configurar Nginx con SSL

Cómo configurar el cliente LDAP en CentOS/RHEL 6 usando SSSD