manual para configurar un servidor ldap
Post on 25-Nov-2015
108 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Maestra de Seguridad Informtica
Universidad Tecnolgica del Per
Alumno: Omar Huarcaya Lima
Prctica Calificada N2 Instalacion de LDAP
Requisitos
openldap-clients-2.x
openldap-servers-2.x
authconfig
authconfig-gtk (opcional)
migrationtools
Instalacin a travs de yum.
Antes que todo actualizar los repositorios, crear un archivo de repositorios nuevo:
Vim /etc/yum.repo.d/centos56.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
-
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplu
s
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
-
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
[centos56]
name=centos56
baseurl=http://mirror.kernel.org/redhat/redhat/linux/enterprise/5Client/en/os/SRPMS/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
Luego ejecutar
Yum list
Ejecutar:
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.
En todo caso ingresar al archivo de configuracin de selinux y colocar "disabled".
/etc/selinux/config y reiniciar.
Recomendaciones, cambiar los nombres de dominio y host.
Cambiar nombre al equipo
vim /etc/hosts
vim /etc/sysconfig/network
vim /etc/sysctl.conf
kernel.hostname=nuevonombredehost
Tambien se puede cambiar con el comando hostname
Certificados para TLS/SSL.
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 -
Lo anterior solicitar se ingresen varios datos:
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.
La salida sera similar a la siguiente:
Generating a 2048 bit RSA private key
................++++++
.++++++
writing new private key to 'dovecot.key'
-----
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) [GB]:MX
State or Province Name (full name) [Berkshire]:Distrito Federal
Locality Name (eg, city) [Newbury]:Mexico
Organization Name (eg, company) [My Company Ltd]:
Mi empresa, S.A. de C.V.
Organizational Unit Name (eg, section) []:Direccion Comercial
Common Name (eg, your name or your server's hostname) []:
servidor.dominio.tld
Email Address []:webmaster@dominio.tld
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
-
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. 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:
chown -R ldap:ldap /var/lib/ldap/autenticar
Creacin de claves de acceso para LDAP.
Para crear la clave de acceso que se asignar en LDAP para el usuario administrador del
directorio, ejecute lo siguiente:
slappasswd
Lo anterior debe devolver como salida un criptograma, similar al mostrado a continuacin:
{SSHA}LnmZLFeE1/zebp7AyEF09NlGaT1d4ckz
-
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 Manager,
quien tendr todos los privilegios sobre el directorio.
Archivo de configuracin /etc/openldap/slapd.conf.
Se debe crear /etc/openldap/slapd.conf como archivo nuevo:
touch /etc/openldap/slapd.conf
vim /etc/openldap/slapd.conf
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 /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
-
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
Se deben habilitar (decomentar) los parmetros TLSCACertificateFile, TLSCertificateFile y
TLSCertificateKeyFile estableciendo las rutas hacia el certificado y clave.
TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
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 /var/run/openldap/slapd.pid
argsfile /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, editar archivo:
database bdb
suffix "dc=utp"
rootdn "cn=Manager,dc=utp"
rootpw {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
En resumen, el archivo /etc/openldap/slapd.conf debiera quedar de modo similar al siguiente:
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
-
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 /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
suffix "dc=utp"
rootdn "cn=Manager,dc=utp"
rootpw {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=Manager,dc=utp" 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.
Elimine el conjunto de archivos y directorios que componen los configuracin predeterminada:
rm -rf /etc/openldap/slapd.d/*
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 del directorio /etc/ldap/slapd.d debe pertenecer al usuario y grupo ldap.
Ejecute lo siguiente:
-
chown -R ldap:ldap /etc/openldap/slapd.d
Inicio del servicio.
Inicie el servicio slapd, y aada ste al resto de los servicios que arrancan junto con el sistema,
ejecutando los siguientes dos mandatos:
service slapd start
chkconfig slapd on
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
Migracin de cuentas existentes en el sistema.
Edite el archivo /usr/share/migrationtools/migrate_common.ph:
vim /usr/share/migrationtools/migrate_common.ph
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 = "utp";
# Default base
$DEFAULT_BASE = "dc=utp";
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 autenticacin simple
-W solicitar clave de acceso
-D binddn Nombre Distinguido (dn) a utilizar
-h anfitrin Servidor LDAP a acceder
-f archivo 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=utp' -h 127.0.0.1 -f group.ldif
ldapadd -x -W -D 'cn=Administrador, dc=utp' -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
-
Lo anterior debe devolver una salida similar a lo siguiente:
# extended LDIF
#
# LDAPv3
# base with scope base
# filter: (objectclass=*)
# requesting: namingContexts
#
#
dn:
namingContexts: dc=utp
# 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=utp' '(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=utp'
Lo anterior debe regresar algo similar a lo siguiente:
# extended LDIF
#
# LDAPv3
# base uid=fulano,ou=People,dc=utp with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# fulano, People, utp
dn: uid=fulano,ou=People,dc=utp
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 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://ohlserver.utp/
base dc=utp
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=ohlserver.utp \
--ldapbasedn=dc=utp --enableldaptls --update
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.
service ldap stop
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.
slapcat -v -f /etc/openldap/slapd.conf -l respaldo-$(date +%Y%m%d).ldif
Inicie de nuevo el servicio slapd.
service slapd start
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
Deben eliminarse los datos del directorio a restaurar.
rm -f /var/lib/ldap/autenticar/*
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
Para regenerar los ndices LDAP, ejecute el mandato slapindex:
-
slapindex
Inicie de nuevo el servicio, ejecutando lo siguiente:
service slapd start
Nota.
Si utiliza CentOS 5, o Red Hat Enterprise Linux 5, ejecute lo siguiente:
service ldap start
Administracin con Jxplore
Utilizaremos la herramienta jxplore
http://jxplorer.org/documents/JXv3.2_Administrator_Guide.pdf
top related