Manual ldap
Upcoming SlideShare
Loading in...5
×
 

Manual ldap

on

  • 2,255 views

LDAP

LDAP

Statistics

Views

Total Views
2,255
Views on SlideShare
2,255
Embed Views
0

Actions

Likes
0
Downloads
106
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Manual ldap Manual ldap Document Transcript

  • Maestría de Seguridad InformáticaUniversidad Tecnológica del PerúAlumno: Omar Huarcaya Lima Práctica Calificada N°2 – Instalacion de LDAPRequisitos  openldap-clients-2.x  openldap-servers-2.x  authconfig  authconfig-gtk (opcional)  migrationtoolsInstalación a través 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 - Basemirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  • #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5#released updates[updates]name=CentOS-$releasever - Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5#additional packages that may be useful[extras]name=CentOS-$releasever - Extrasmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5#additional packages that extend functionality of existing packages[centosplus]name=CentOS-$releasever - Plusmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/gpgcheck=1enabled=0
  • gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5#contrib - packages by Centos Users[contrib]name=CentOS-$releasever - Contribmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5[centos56]name=centos56baseurl=http://mirror.kernel.org/redhat/redhat/linux/enterprise/5Client/en/os/SRPMS/gpgcheck=1enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5Luego ejecutar Yum listEjecutar:yum -y install openldap openldap-clients openldap-servers nss_ldapyum -y install authconfig authconfig-gtkProcedimientos.SELinux y el servicio ldap.
  • El servicio slapd funcionará perfectamente con SELinux activo en modo de imposición(enforcing).Todo el contenido del directorio /var/lib/ldap debe tener contexto tipo slapd_db_t. chcon -R -t slapd_db_t /var/lib/ldapLo anterior solo será necesario si se restaura un respaldo hecho a partir de un sistema sinSELinux.En todo caso ingresar al archivo de configuración de selinux y colocar "disabled"./etc/selinux/config y reiniciar.Recomendaciones, cambiar los nombres de dominio y host.Cambiar nombre al equipovim /etc/hostsvim /etc/sysconfig/networkvim /etc/sysctl.conf kernel.hostname=nuevonombredehostTambien se puede cambiar con el comando hostnameCertificados para TLS/SSL.Es muy importante utilizar TLS/SSL cuando se configura el sistema para fungir como servidorde autenticación, por lo cual el siguiente procedimiento es obligatorio. Si utiliza CentOS 6, oRed Hat™ Enterprise Linux 6, requerirá al menos openldap-2.4.23-16.el6, debido a que laversiones anteriores tienen roto el soporte para TLS/SSL.Cambie al directorio /etc/pki/tls/certs:
  • cd /etc/pki/tls/certsLa creación de la firma digital y certificado requiere utilizar una firma digital con algoritmo RSAde 2048 octetos, y estructura x509. De modo predeterminado se establece una validez por 365días (un año) para el certificado que se creará. rm -f slapd.pem make slapd.pem cd -Lo anterior solicitará se ingresen varios datos:  Código de dos letras para el país.  Estado o provincia.  Ciudad.  Nombre de la empresa o razón social.  Unidad o sección.  Nombre del anfitrión.  Dirección de correo.La salida sería 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 beincorporated 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 blankFor some fields there will be a default value,If you enter ., the field will be left blank.-----Country Name (2 letter code) [GB]:MXState or Province Name (full name) [Berkshire]:Distrito FederalLocality Name (eg, city) [Newbury]:MexicoOrganization Name (eg, company) [My Company Ltd]:Mi empresa, S.A. de C.V.Organizational Unit Name (eg, section) []:Direccion ComercialCommon Name (eg, your name or your servers hostname) []:servidor.dominio.tldEmail Address []:webmaster@dominio.tldEl certificado solo será válido cuando el servidor LDAP sea invocado con el nombre definido enel campo Common Name. Es decir, sólo podrá utilizarlo cuando se defina como nombre deanfitrión, es decir servidor.dominio.tld. Para que esto funcione, será indispensable que unservidor DNS se encargue de la resolución del nombre de anfitrión del servidor LDAP para todala red de área local.Es indispensable que el archivo que contiene la firma digital y el certificado tenga permisos deacceso de lectura y escritura para el usuario root, y permisos de acceso de sólo lectura para elgrupo ldap: chown root:ldap /etc/pki/tls/certs/slapd.pem chmod 640 /etc/pki/tls/certs/slapd.pem
  • Creación de directorios.Con fines de organización se creará un directorio específico para este directorio y seconfigurará con permisos de acceso exclusivamente al usuario y grupo ldap. mkdir /var/lib/ldap/autenticar chmod 700 /var/lib/ldap/autenticarSe 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_CONFIGTodo el contenido del directorio /var/lib/ldap/autenticar debe pertenecer al usuario y grupoldap. Ejecute lo siguiente: chown -R ldap:ldap /var/lib/ldap/autenticarCreación de claves de acceso para LDAP.Para crear la clave de acceso que se asignará en LDAP para el usuario administrador deldirectorio, ejecute lo siguiente: slappasswdLo anterior debe devolver como salida un criptograma, similar al mostrado a continuación: {SSHA}LnmZLFeE1/zebp7AyEF09NlGaT1d4ckz
  • Copie y respalde este criptograma. El texto de la salida será utilizado más adelante en elarchivo /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 configuración /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 continuación.El archivo /etc/openldap/slapd.conf debe de tener definidos todos los archivos de esquemamínimos requeridos. De tal modo, el inicio del archivo debe contener algo similar a losiguiente: 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.schemaSe deben habilitar (decomentar) los parámetros TLSCACertificateFile, TLSCertificateFile yTLSCertificateKeyFile 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.pemA fin de permitir conexiones desde clientes con OpenLDAP 2.x, establecer el archivo denúmero de proceso, y el archivo de argumentos de LDAP, deben estar presentes los siguientesparámetros, con los correspondientes valores: allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.argsPara concluir con el /etc/openldap/slapd.conf, se añade lo siguiente, que tiene como finalidadel definir la configuración del nuevo directorio que en adelante se utilizará para autenticar atoda 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,subEn 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.crtTLSCertificateFile /etc/pki/tls/certs/slapd.pemTLSCertificateKeyFile /etc/pki/tls/certs/slapd.pemallow bind_v2pidfile /var/run/openldap/slapd.pidargsfile /var/run/openldap/slapd.argsdatabase bdbsuffix "dc=utp"rootdn "cn=Manager,dc=utp"rootpw {SSHA}LnmZLFeE1/zebp7AyEF09NlGaT1d4ckzdirectory /var/lib/ldap/autenticar# Indices a mantener para esta base de datosindex objectClass eq,presindex ou,cn,mail,surname,givenname eq,pres,subindex uidNumber,gidNumber,loginShell eq,presindex uid,memberUid eq,pres,subindex nisMapName,nisMapEntry eq,pres,sub# Habilitar supervisión
  • database monitor # Permitir solo a rootdn ver la supervisión access to * by dn.exact="cn=Manager,dc=utp" read by * nonePor seguridad, el archivo /etc/openldap/slapd.conf deberá tener permisos de lectura yescritura, sólo 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 configuración predeterminada: rm -rf /etc/openldap/slapd.d/*Convierta el archivo /etc/openldap/slapd.conf en el nuevo subconjunto de archivos ldif queirán dentro del directorio /etc/ldap/slapd.d: slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.dTodo 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.dInicio del servicio.Inicie el servicio slapd, y añada é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 añada éste al resto de los servicios que arrancan junto con el sistema: service ldap start chkconfig ldap onMigración 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.phModifique los los valores de las variables $DEFAULT_MAIL_DOMAIN y $DEFAULT_BASE a finde que queden del siguiente modo: # Default DNS domain
  • $DEFAULT_MAIL_DOMAIN = "utp"; # Default base $DEFAULT_BASE = "dc=utp";A continuación, hay que crear el objeto que a su vez contendrá el resto de los datos en eldirectorio, 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.ldifUtilice el mandato ldapadd para insertar los datos necesarios. Las opciones utilizadas con estemandato son las siguientes: -x autenticación simple -W solicitar clave de acceso -D binddn Nombre Distinguido (dn) a utilizar -h anfitrión Servidor LDAP a acceder -f archivo archivo a utilizarUna vez entendido lo anterior, se procede a insertar la información generada en el directorioutilizando lo siguiente:
  • ldapadd -x -W -D cn=Administrador, dc=dominio, dc=tld -h 127.0.0.1 -f base.ldifUna 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 importación de usuarioscreando los archivos group.ldif y passwd.ldif, utilizando migrate_group.pl ymigrate_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.ldifLo anterior creará los archivos group.ldif y passwd.ldif, los cuales incluirán la información delos grupos y cuentas en el sistema, incluyendo las claves de acceso. Los datos se podráninsertar en el directorio LDAP utilizando lo siguiente:ldapadd -x -W -D cn=Administrador, dc=utp -h 127.0.0.1 -f group.ldifldapadd -x -W -D cn=Administrador, dc=utp -h 127.0.0.1 -f passwd.ldifComprobaciones.Antes de configurar el sistema para utilizar LDAP para autenticar, es conveniente verificar quetodo 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: 1El siguiente mandato debe devolver toda la información de todo el directorio solicitado(dc=dominio,dc=tld).
  • ldapsearch -x -b dc=utp (objectclass=*)Otro ejemplo es realizar una búsqueda específica, para un usuario en particular. Asumiendoque en el directorio existe el usuario denominado fulano, ejecute lo siguiente: ldapsearch -x -b uid=fulano,ou=People,dc=utpLo 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: 1Configuración 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_ldapDefina los valores para los parámetros host y base, a fin de establecer hacia que servidor y aque 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.confPara fines prácticos, el valor del parámetro uri corresponde al nombre del servidor LDAP,previamente resuelto por un DNS, y el valor del parámetro base debe ser el mismo que seespecificó en el archivo /etc/openldap/slapd.conf para el parámetro suffix. Considerando queel nombre de anfitrión del servidor LDAP está resuelto por un servidor DNS, comoservidor.dominio.tld, puede definir lo siguiente: uri ldap://ohlserver.utp/ base dc=utp ssl start_tls tls_checkpeer no pam_password md5Asumiendo que el servidor LDAP tiene definido como nombre de anfitriónservidor.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 --updateAdministración.
  • Existen muchos programas para acceder y administrar servidores LDAP, pero la mayoría sólosirven para administrar usuarios y grupos del sistema, como el módulo de LDAP de Webmin. Lamejor herramienta de administración de directorios LDAP que puedo recomendar es PHP LDAPAdmin.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 stopUtilice el mandato slapcat del siguiente modo, definiendo el directorio de configuración/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 configuración /etc/openldap/slapd.conf. slapcat -v -f /etc/openldap/slapd.conf -l respaldo-$(date +%Y%m%d).ldifInicie 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 startRestauración 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 stopDeben 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 configuración /etc/openldap/slapd.conf. slapadd -v -c -l respaldo-20110911.ldif -f /etc/openldap/slapd.confPara regenerar los índices LDAP, ejecute el mandato slapindex:
  • slapindexInicie 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 startAdministración con JxploreUtilizaremos la herramienta jxplorehttp://jxplorer.org/documents/JXv3.2_Administrator_Guide.pdf