Instalar y configurar Open LDAP
LDAP conocido como Light Weight Directory Access Protocoles un protocolo utilizado para acceder a los contenedores de servicios X.500 dentro de una empresa conocida por un directorio. Aquellos que estén familiarizados con la administración de Windows Server pueden pensar que LDAP es de naturaleza muy similar a Active Directory. Incluso es un concepto ampliamente utilizado de entrelazar estaciones de trabajo Windows en una empresa OpenLDAP CentOS. En el otro espectro, una estación de trabajo CentOS Linux puede compartir recursos y participar con la funcionalidad básica en un dominio de Windows.
La implementación de LDAP en CentOS como Agente de servidor de directorio, Agente de sistema de directorio o DSA (estos acrónimos son todos uno y el mismo) es similar a las instalaciones anteriores de Novell Netware que utilizan la estructura de árbol de directorio con NDS.
Breve historia de LDAP
LDAP se creó básicamente como una forma eficaz de acceder a directorios X.500 con recursos empresariales. Tanto X.500 como LDAP comparten las mismas características y son tan similares que los clientes LDAP pueden acceder a los directorios X.500 con algunos ayudantes. Aunque LDAP también tiene su propio servidor de directorio llamadoslapd. La principal diferencia entre LDAP y DAP es que la versión ligera está diseñada para funcionar sobre TCP.
Mientras que DAP usa el modelo OSI completo. Con el advenimiento de la prominencia de Internet, TCP / IP y Ethernet en las redes de hoy, es raro encontrar una implantación de servicios de directorio que utilice directorios empresariales DAP y X.500 nativos fuera de los modelos informáticos heredados específicos.
Los principales componentes utilizados con openldap para CentOS Linux son:
openldap | Bibliotecas de soporte LDAP |
---|---|
servidor openldap | Servidor LDAP |
clientes openldap | Utilidades de cliente LDAP |
openldap-devel | Bibliotecas de desarrollo para OpenLDAP |
compay-openldap | Bibliotecas compartidas OpenLDAP |
bofetada | Demonio del servidor de directorios de OpenLDAP |
sorber | Se utiliza para la replicación LDAP en un dominio empresarial |
Note - Al nombrar su empresa, es una buena práctica utilizar el .localTLD. El uso de .net o .com puede causar dificultades al segregar una infraestructura de dominio interno y en línea. Imagine el trabajo extra para una empresa que utiliza internamente acme.com para operaciones tanto externas como internas. Por lo tanto, puede ser conveniente tener recursos de Internet llamados acme.com o acme.net . Luego, los recursos empresariales de redes locales se representan como acme.local . Esto implicará configurar registros DNS, pero pagará en simplicidad, elocuencia y seguridad.
Instalar Open LDAP en CentOS
Instale openldap, openldap-servers, openldap-clients y migrationstools desde YUM .
[[email protected]]# yum -y install openldap openldap-servers openldap-clients
migration tools
Loaded plugins: fastestmirror, langpacks
updates
| 3.4 kB 00:00:00
updates/7/x86_64/primary_db
| 2.2 MB 00:00:05
Determining fastest mirrors
(1/2): extras/7/x86_64/primary_db
| 121 kB 00:00:01
(2/2): base/7/x86_64/primary_db
| 5.6 MB 00:00:16
Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
--> Finished Dependency Resolution
base/7/x86_64/group_gz
| 155 kB 00:00:00
Dependencies Resolved
===============================================================================
===============================================================================
Package Arch
Version Repository Size
===============================================================================
===============================================================================
Installing:
openldap-clients x86_64
2.4.40-13.el7 base 188 k
openldap-servers x86_64
2.4.40-13.el7 base 2.1 M
Transaction Summary
===============================================================================
===============================================================================
Install 2 Packages
Total download size: 2.3 M
Installed size: 5.3 M
Downloading packages:
Installed:
openldap-clients.x86_64 0:2.4.40-13.el7
openldap-servers.x86_64 0:2.4.40-13.el7
Complete!
[[email protected]]#
Ahora, comencemos y habilitemos el servicio slapd :
[[email protected]]# systemctl start slapd
[[email protected]]# systemctl enable slapd
En este punto, asegurémonos de que tenemos nuestra estructura openldap en / etc / openldap .
[email protected]]# ls /etc/openldap/
certs check_password.conf ldap.conf schema slapd.d
[[email protected]]#
Luego asegúrese de que nuestro servicio slapd esté funcionando.
[email protected]]# netstat -antup | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd
tcp6 0 0 :::389 :::* LISTEN 1641/slapd
[[email protected]]#
A continuación, configuremos nuestra instalación Open LDAP .
Asegúrese de que se haya creado nuestro usuario ldap del sistema .
[[email protected]]# id ldap
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[[email protected]]#
Genere nuestras credenciales LDAP.
[[email protected]]# slappasswd
New password:
Re-enter new password:
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10
[[email protected]]#
Necesitamos guardar la salida de slappasswd.
Configurar LDAP abierto
Step 1 - Configure LDAP para el dominio y agregue un usuario administrativo.
Primero, queremos configurar nuestro entorno openLDAP. A continuación se muestra una plantilla para usar con el comando ldapmodify .
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <output from slap
Realice cambios en: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif con el comando ldapmodify.
[[email protected]]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
[[email protected] cn=config]#
Comprobemos la configuración LDAP modificada.
[email protected] ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
[[email protected]]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k =
entryCSN: 20170215204423.726622Z#000000#000#000000
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z
[[email protected]]#
Como puede ver, nuestras modificaciones empresariales LDAP se realizaron correctamente.
A continuación, queremos crear un certificado ssl autofirmado para OpenLDAP. Esto asegurará la comunicación entre el servidor empresarial y los clientes.
Step 2 - Cree un certificado autofirmado para OpenLDAP.
Usaremos openssl para crear un certificado ssl autofirmado. Vaya al capítulo siguiente,Create LDAP SSL Certificate with opensslpara obtener instrucciones para proteger las comunicaciones con OpenLDAP. Luego, cuando se configuren los certificados ssl, habremos completado nuestra configuración empresarial OpenLDAP.
Step 3 - Configure OpenLDAP para utilizar comunicaciones seguras con certificado.
Cree un archivo certs.ldif en vim con la siguiente información:
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem
Luego, nuevamente, use el comando ldapmodify para fusionar los cambios en la configuración de OpenLDAP.
[[email protected] rdc]# ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[[email protected]]#
Finalmente, probemos nuestra configuración de OpenLADP.
[[email protected]]# slaptest -u
config file testing succeeded
[[email protected]]#
Step 4 - Configurar la base de datos slapd.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG &&
chown ldap:ldap /var/lib/ldap/*
Actualiza el esquema OpenLDAP.
Agregue los esquemas LDAP coseno y nis.
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Finalmente, cree el esquema empresarial y agréguelo a la configuración actual de OpenLDAP.
Lo siguiente es para un dominio llamado vmnet. local con un administrador LDAP llamado ldapadm .
dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People
dn: ou = Group,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: Group
Finalmente, importe esto al esquema OpenLDAP actual.
[[email protected]]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"
adding new entry "cn=ldapadm ,dc=vmnet,dc=local"
adding new entry "ou=People,dc=vmnet,dc=local"
adding new entry "ou=Group,dc=vmnet,dc=local"
[[email protected]]#
Step 5 - Configurar un usuario empresarial OpenLDAP.
Abra vim o su editor de texto favorito y copie el siguiente formato. Esto está configurado para un usuario llamado "entacct" en el dominio LDAP "vmnet.local".
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
Ahora importe los archivos anteriores, tal como se guardaron, en el esquema OpenLdap.
[[email protected]]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif
Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local"
[[email protected]]#
Antes de que los usuarios puedan acceder a LDAP Enterprise, debemos asignar una contraseña de la siguiente manera:
ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct
,ou=People,dc=vmnet,dc=local"
-s especifica la contraseña del usuario
-x es el nombre de usuario al que se aplica la contraseña actualizada
-D es el * nombre distinguido "para autenticar contra el esquema LDAP.
Finalmente, antes de iniciar sesión en la cuenta Enterprise, verifiquemos nuestra entrada OpenLDAP .
[[email protected] rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
# extended LDIF
#
# LDAPv3
# base <dc=vmnet,dc=local> with scope subtree
# filter: cn=entacct
# requesting: ALL
#
# entacct, People, vmnet.local
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
La conversión de elementos como / etc / passwd y / etc / groups a la autenticación OpenLDAP requiere el uso de herramientas de migración. Estos se incluyen en el paquete migrationtools . Luego, se instala en / usr / share / migrationtools .
[[email protected] openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root 2652 Jun 9 2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root 2950 Jun 9 2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root 2946 Jun 9 2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root 3011 Jun 9 2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root 3006 Jun 9 2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root 3164 Jun 9 2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root 3146 Jun 9 2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root 5267 Jun 9 2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root 7468 Jun 9 2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root 3278 Jun 9 2014 migrate_automount.pl
-rwxr-xr-x. 1 root root 2608 Jun 9 2014 migrate_base.pl
Step 6 - Finalmente, necesitamos permitir el acceso al servicio slapd para que pueda atender las solicitudes.
firewall-cmd --permanent --add-service=ldap
firewall-cmd --reload
Configurar el acceso del cliente LDAP
La configuración del acceso del cliente LDAP requiere los siguientes paquetes en el cliente: openldap, clientes open-ldap y nss_ldap.
Configurar la autenticación LDAP para sistemas cliente es un poco más fácil.
Step 1 - Instalar paquetes dependientes -
# yum install -y openldap-clients nss-pam-ldapd
Step 2- Configure la autenticación LDAP con authconfig .
authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update
Step 3 - Reinicie el servicio nslcd.
systemctl restart nslcd