Академический Документы
Профессиональный Документы
Культура Документы
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, ejecute lo siguiente para instalar o actualizar el equipamiento lgico necesario: yum -y install openldap openldap-clients openldap-servers nss_ldap yum -y install authconfig authconfig-gtk
Procedimientos.
SELinux y el servicio ldap.
El servicio slapd funcionar perfectamente con SELinux activo en modo de imposicin (enforcing). Todo el contenido del directorio /var/lib/ldap debe tener contexto tipo slapd_db_t.
chcon -R -t slapd_db_t /var/lib/ldap
Lo anterior solo ser necesario si se restaura un respaldo hecho a partir de un sistema sin SELinux.
Es muy importante utilizar TLS/SSL cuando se configura el sistema para fungir como servidor de autenticacin, por lo cual el siguiente procedimiento es obligatorio. Si utiliza CentOS 6 o Red Hat Enterprise Linux 6, requerir al menos openldap-2.4.23-16.el6, debido a que la versiones anteriores tienen roto el soporte para TLS/SSL. Cambie al directorio /etc/pki/tls/certs:
cd /etc/pki/tls/certs
La creacin de la firma digital y certificado requiere utilizar una firma digital con algoritmo RSA de 2048 octetos y estructura x509. De modo predeterminado se establece una validez por 365 das (un ao) para el certificado que se crear.
rm -f slapd.pem make slapd.pem cd -
Cdigo de dos letras para el pas. Estado o provincia. Ciudad. Nombre de la empresa o razn social. Unidad o seccin. Nombre del anfitrin. Direccin de correo.
El certificado solo ser vlido cuando el servidor LDAP sea invocado con el nombre definido en el campo Common Name. Es decir, slo podr utilizarlo cuando se defina
como nombre de anfitrin, es decir servidor.dominio.tld. Para que esto funcione, ser indispensable que un servidor DNS se encargue de la resolucin del nombre de anfitrin del servidor LDAP para toda la red de rea local. Es indispensable que el archivo que contiene la firma digital y el certificado tenga permisos de acceso de lectura y escritura para el usuario root y permisos de acceso de slo lectura para el grupo ldap:
chown root:ldap /etc/pki/tls/certs/slapd.pem chmod 640 /etc/pki/tls/certs/slapd.pem
Elimine la almohadilla (#) y cambie no por yes, de modo que quede como SLAPD_LDAPS=yes.
SLAPD_LDAPS=yes
Creacin de directorios.
Con fines de organizacin se crear un directorio especfico para este directorio y se configurar con permisos de acceso exclusivamente al usuario y grupo ldap.
mkdir /var/lib/ldap/autenticar chmod 700 /var/lib/ldap/autenticar
Se requiere copiar el archivo DB_CONFIG.example dentro del directorio /var/lib/ldap/autenticar/, como el archivo DB_CONFIG. Es decir, ejecute lo siguiente:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/autenticar/DB_CONFIG
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, ejecute lo siguiente:
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/autenticar/DB_CONFIG
Todo el contenido del directorio /var/lib/ldap/autenticar debe pertenecer al usuario y grupo ldap. Ejecute lo siguiente:
Copie y respalde este criptograma. El texto de la salida ser utilizado ms adelante en el archivo /etc/openldap/slapd.conf y se definir como clave de acceso para el usuario Administrador, quien tendr todos los privilegios sobre el directorio.
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, el archivo /etc/openldap/slapd.conf ya existe, e incluye contenido de ejemplo. Puede reemplazar todo el contenido en su totalidad, por el ejemplificado a continuacin.
El archivo /etc/openldap/slapd.conf debe de tener definidos todos los archivos de esquema mnimos requeridos. De tal modo, el inicio del archivo debe contener algo similar a lo siguiente:
include include include include include include include include include include include include /etc/openldap/schema/corba.schema /etc/openldap/schema/core.schema /etc/openldap/schema/cosine.schema /etc/openldap/schema/duaconf.schema /etc/openldap/schema/dyngroup.schema /etc/openldap/schema/inetorgperson.schema /etc/openldap/schema/java.schema /etc/openldap/schema/misc.schema /etc/openldap/schema/nis.schema /etc/openldap/schema/openldap.schema /etc/openldap/schema/ppolicy.schema /etc/openldap/schema/collective.schema
Se deben habilitar los parmetros TLSCACertificateFile, TLSCertificateFile y TLSCertificateKeyFile estableciendo las rutas hacia el certificado y clave.
A fin de permitir conexiones desde clientes con OpenLDAP 2.x, establecer el archivo de nmero de proceso y el archivo de argumentos de LDAP, deben estar presentes los siguientes parmetros, con los correspondientes valores:
allow bind_v2 pidfile argsfile /var/run/openldap/slapd.pid /var/run/openldap/slapd.args
Para concluir con el /etc/openldap/slapd.conf, se aade lo siguiente, que tiene como finalidad el definir la configuracin del nuevo directorio que en adelante se utilizar para autenticar a toda la red de rea local:
database suffix rootdn rootpw directory bdb "dc=dominio,dc=tld" "cn=Administrador,dc=dominio,dc=tld" {SSHA}LnmZLFeE1/zebp7AyEF09NlGaT1d4ckz /var/lib/ldap/autenticar
# Indices a mantener para esta base de datos index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub
TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt TLSCertificateFile /etc/pki/tls/certs/slapd.pem TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem allow bind_v2 pidfile argsfile database bdb suffix rootdn rootpw /var/run/openldap/slapd.pid /var/run/openldap/slapd.args "dc=dominio,dc=tld" "cn=Administrador,dc=dominio,dc=tld" {SSHA}LnmZLFeE1/zebp7AyEF09NlGaT1d4ckz
directory /var/lib/ldap/autenticar # Indices a mantener para esta base de datos index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub # Habilitar supervisin database monitor # Permitir solo a rootdn ver la supervisin access to * by dn.exact="cn=Administrador,dc=dominio,dc=tld" read by * none
Por seguridad, el archivo /etc/openldap/slapd.conf deber tener permisos de lectura y escritura, slo para el usuario ldap.
chown ldap:ldap /etc/openldap/slapd.conf chmod 600 /etc/openldap/slapd.conf
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5 o bien versiones de openldap anteriores a la 2.4, omita los siguientes tres pasos.
Es necesario inicializar los archivos de la base de datos para el contenido del directorio /var/lib/ldap/autenticar, por tanto ejecute lo siguiente:
echo "" | slapadd -f /etc/openldap/slapd.conf
Convierta el archivo /etc/openldap/slapd.conf en el nuevo subconjunto de archivos ldif que irn dentro del directorio /etc/ldap/slapd.d:
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
Todo el contenido de los directorios /etc/ldap/slapd.d y /var/lib/ldap/autenticar deben pertenecer al usuario y grupo ldap. Ejecute lo siguiente:
chown -R ldap:ldap /etc/openldap/slapd.d /var/lib/ldap/autenticar
Restablezca los contextos de SELinux para los directorios /etc/ldap/slapd.d y /var/lib/ldap/autenticar ejecutando lo siguiente:
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, inicie el servicio slapd y aada ste al resto de los servicios que arrancan junto con el sistema: service ldap start chkconfig ldap on
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, edite el archivo /usr/share/openldap/migration/migrate_common.ph: vim /usr/share/openldap/migration/migrate_common.ph
Modifique los los valores de las variables $DEFAULT_MAIL_DOMAIN y $DEFAULT_BASE a fin de que queden del siguiente modo:
# Default DNS domain $DEFAULT_MAIL_DOMAIN = "dominio.tld"; # Default base $DEFAULT_BASE = "dc=dominio,dc=tld";
A continuacin, hay que crear el objeto que a su vez contendr el resto de los datos en el directorio, utilizando migrate_base.pl para generar el archivo base.ldif. Genere el archivo base.ldif, ejecutando lo siguiente:
/usr/share/migrationtools/migrate_base.pl > base.ldif
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, puede generar el archivo base.ldif ejecutando lo siguiente: /usr/share/openldap/migration/migrate_base.pl > base.ldif
Utilice el mandato ldapadd para insertar los datos necesarios. Las opciones utilizadas con este mandato son las siguientes:
-x -W -D binddn -h anfitrin -f archivo autenticacin simple solicitar clave de acceso Nombre Distinguido (dn) a utilizar Servidor LDAP a acceder archivo a utilizar
Una vez entendido lo anterior, se procede a insertar la informacin generada en el directorio utilizando lo siguiente:
ldapadd -x -W -D 'cn=Administrador, dc=dominio, dc=tld' -h 127.0.0.1 -f base.ldif
Una vez hecho lo anterior, se podr comenzar a poblar el directorio con datos. Lo primero ser importar los grupos y usuarios existentes en el sistema. Realice la importacin de usuarios creando los archivos group.ldif y passwd.ldif, utilizando migrate_group.pl y migrate_passwd.pl. Ejecute los siguientes dos mandatos:
/usr/share/migrationtools/migrate_group.pl /etc/group group.ldif /usr/share/migrationtools/migrate_passwd.pl /etc/passwd passwd.ldif
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, ejecute los siguientes dos mandatos:
/usr/share/openldap/migration/migrate_group.pl /etc/group group.ldif /usr/share/openldap/migration/migrate_passwd.pl /etc/passwd passwd.ldif
Lo anterior crear los archivos group.ldif y passwd.ldif, los cuales incluirn la informacin de los grupos y cuentas en el sistema, incluyendo las claves de acceso. Los datos se podrn insertar en el directorio LDAP utilizando lo siguiente:
ldapadd -x -W -D 'cn=Administrador, dc=dominio, dc=tld' -h 127.0.0.1 -f group.ldif ldapadd -x -W -D 'cn=Administrador, dc=dominio, dc=tld' -h 127.0.0.1 -f passwd.ldif
Comprobaciones.
Antes de configurar el sistema para utilizar LDAP para autenticar, es conveniente verificar que todo funciona correctamente. El siguiente mandato verifica que directorios disponibles existen en el servidor 127.0.0.1.
ldapsearch -h 127.0.0.1 -x -b '' -s base '(objectclass=*)' namingContexts
# dn: namingContexts: dc=dominio,dc=tld # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
El siguiente mandato debe devolver toda la informacin de todo el directorio solicitado (dc=dominio,dc=tld).
ldapsearch -x -b 'dc=dominio,dc=tld' '(objectclass=*)'
Otro ejemplo es realizar una bsqueda especfica, para un usuario en particular. Asumiendo que en el directorio existe el usuario denominado fulano, ejecute lo siguiente:
ldapsearch -x -b 'uid=fulano,ou=People,dc=dominio,dc=tld'
# fulano, People, dominio.tld dn: uid=fulano,ou=People,dc=dominio,dc=tld uid: fulano cn: fulano objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: xxxxxxxxxxxx shadowLastChange: 12594 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 505 gidNumber: 505 homeDirectory: /home/fulano # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Configuracin de clientes.
Los clientes CentOS 6 y Red Hat Enterprise Linux 6, requieren tener instalados los paquetes nss-pam-ldap, authconfig y openldap-clients-2.4.23-16.el6 (las versiones anteriores de este ltimo tienen roto el soporte para TLS/SSL):
yum -y install authconfig openldap-clients nss-pam-ldapd
Nota.
Los clientes CentOS 5 y Red Hat Enterprise Linux 5 requieren tener instalados los paquetes nss_ldap, authconfig y openldap-clients: yum -y install authconfig openldap-clients nss_ldap
Defina los valores para los parmetros host y base, a fin de establecer hacia que servidor y a que directorio conectarse, en el archivo /etc/pam_ldap.conf.
vim /etc/pam_ldap.conf
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, defina lo anterior en el archivo /etc/ldap.conf. vim /etc/ldap.conf
Para fines prcticos, el valor del parmetro uri corresponde al nombre del servidor LDAP, previamente resuelto por un DNS y el valor del parmetro base debe ser el mismo que se especific en el archivo /etc/openldap/slapd.conf para el parmetro suffix. Considerando que el nombre de anfitrin del servidor LDAP est resuelto por un servidor DNS, como servidor.dominio.tld, puede definir lo siguiente:
uri ldap://servidor.dominio.tld/ base dc=dominio,dc=tld ssl start_tls tls_checkpeer no pam_password md5
Asumiendo que el servidor LDAP tiene definido como nombre de anfitrin servidor.dominio.tld, previamente resuelto en un servidor DNS, ejecute lo siguiente:
authconfig --useshadow --enablemd5 --enablelocauthorize \ --enablemkhomedir --enableldap --enableldapauth \ --ldapserver=servidor.dominio.tld \ --ldapbasedn=dc=dominio,dc=tld --enableldaptls --update
Si utiliza CentOS 6 o Red Hat Enterprise Linux 6, con openldap-clients-2.4.23-15.el6 y versiones anteriores, utilice --disableldaptls, en lugar de --enableldaptls. Al terminar, debe iniciar y agregar a los servicios de arranque del sistema al servicio nslcd.
chkconfig nslcd on service nslcd start
Administracin.
Existen muchos programas para acceder y administrar servidores LDAP, pero la mayora slo sirven para administrar usuarios y grupos del sistema, como el mdulo de LDAP de Webmin. La mejor herramienta de administracin de directorios LDAP que puedo recomendar es PHP LDAP Admin.
Respaldo de datos.
El procedimiento requiere detener el servicio slapd.
service slapd stop
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, debe detenerse el servicio ldap antes de proceder con el respaldo de datos.
Utilice el mandato slapcat del siguiente modo, definiendo el directorio de configuracin /etc/openldap/slapd.d.
slapcat -v -F /etc/openldap/slapd.d -l respaldo-$(date +%Y%m%d).ldif
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, se utiliza la herramienta slapcat, definiendo el archivo de configuracin /etc/openldap/slapd.conf.
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, inicie de nuevo el servicio ldap. service ldap start
Restauracin de datos.
El procedimiento requiere detener el servicio. Ejecute lo siguiente:
service slapd stop
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, ejecute lo siguiente: service ldap stop
Vuelva a copiar el archivo DB_CONFIG.example dentro del directorio /var/lib/ldap/autenticar/, como el archivo DB_CONFIG. Es decir, ejecute lo siguiente:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/autenticar/DB_CONFIG
Utilice la herramienta slapadd para cargar los datos del respaldo desde un archivo *.ldif.
slapadd -v -c -l respaldo-20110911.ldif -F /etc/openldap/slapd.d
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, slapadd se utiliza definiendo el archivo de configuracin /etc/openldap/slapd.conf. slapadd -v -c -l respaldo-20110911.ldif -f /etc/openldap/slapd.conf
Nota.
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, ejecute lo siguiente: service ldap start
Al terminar de configurar las reglas para Shorewall, reinicie el muro cortafuegos, ejecutando el siguiente mandato: