Вы находитесь на странице: 1из 14

Curso openLDAP versin 2.4 1.- introduccin a openLDAP ---------------------------1.1 - Qu es LDAP ---------------------------1.2 - Cuando usar LDAP ---------------------------1.

3 - Los 4 modelos de LDAP ---------------------------informacion nombres funcional seguridad 2.- Intalacin y configuracin ---------------------------1.1 - Instalacin del software INSTALAR HERRAMIENTAS DE COMPILACION DEL DVD rpm -ivh glibc-headers-2.5-12.i386.rpm glibc-devel-2.5-12.i386.rpm libgomp-4.1 .1-52.el5.i386.rpm gcc-4.1.1-52.el5.i386.rpm COMPILAR BERKELEY-DB export CC=/usr/bin/gcc cd db-5.2.36 ./dist/configure --prefix=/opt/db gmake gmake install COMPILAR OPENLDAP cd openldap export CFLAGS=-O2 export CPPFLAGS="-I/opt/db/include" export LDFLAGS="-L/opt/db/lib" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/db/lib export LIBS="-ldb" cd openldap rpm -vih cyrus-sasl-devel-2.1.22-4.i386.rpm estos no son obligaorios rpm -ivh cyrus-sasl-gssapi-2.1.22-4.i386.rpm rpm -ivh cyrus-sasl-md5-2.1.22-4.i386.rpm rpm -ivh cyrus-sasl-ntlm-2.1.22-4.i386.rpm rpm -ivh /dvd/openssl-devel-0.9.8b-8.3.el5.i386.rpm /dvd/zlib-devel-1.2.3-3.i386 .rpm /dvd/krb5-devel-1.5-17.i386.rpm /dvd/e2fsprogs-devel-1.39-8.el5.i386.rpm ./configure --prefix=/opt/openldap --enable-syslog --enable-aci --enable-crypt -enable-spasswd --enable-wrappers --enable-passwd --enable-perl --enable-shell -enable-overlays --enable-accesslog --enable-auditlog --enable-collect --enablederef --enable-dyngroup --enable-dynlist --enable-memberof --enable-ppolicy --en able-proxyache --enable-refint --enable-retcode --enable-seqmod --enable-sssvlv gmake depend gmake gmake install CREAR SCRIPT DE ARRANQUE Y PARADA

cat /etc/init.d/openldap #!/bin/bash # # Init file for OpenLDAP server slave daemon # # chkconfig: 2345 55 25 # description: openLDAP Server slave # # source function library . /etc/rc.d/init.d/functions case "$1" in start) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/db/lib # cuando configuremos SSL # /opt/openldap/libexec/slapd -d any -h "ldap:/// ldaps:///" /opt/openldap/libexec/slapd ;; stop) pkill -9 slapd ;; restart) pkill -9 slapd export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/db/lib # cuando configuremos SSL # /opt/openldap/libexec/slapd -d any -h "ldap:/// ldaps:///" /opt/openldap/libexec/slapd ;; status) ps -ef | grep slapd | grep libexec ;; *) echo $"Usage: $0 {start|stop|restart|status}" RETVAL=1 ;; esac exit $RETVAL 1.2 - Estructura Fsica y Lgica de openLDAP ---------------------------ESTRUCTURA FISICA por nuestra compilacion los ficheros del servidor openLDAP estan en: /opt/openldap/ con un conjunto de directorios para organizar la informacion: bin/ --> comandos de lado cliente como ldapsearch o ldapmodify sbin/ --> comandos del lado del servidor para monitorizacion/tuning como slapacl o slappasswd o slapindex lib/ --> librerias de openLDAP libexec/slapd --> nuestro demonio (servidor) share/man --> paginas del man para nuestro servidor var/run --> ficheros que indican que el servidor a levantado var/openldap-data --> directorio con los datos e indices etc/openldap/slapd.conf --> configuracion de nuestro servidor etc/openldap/ldap.conf --> configuracion para nuestros clientes etc/openldap/schemas/* --> ficheros con el schema, incluyendo nuestra posible am pliacion ESTRUCTURA LOGICA root DSE:

--------info sobre si mismo, por ejemplo, los sufijos que tengo, version de LDAP que sop orto, mecanismos de cifrado... /opt/openldap/bin/ldapsearch -LL -x -D "cn=Manager,dc=curso,dc=esp" -w secret -b "" -s base '(objectclass=*)' + cn=subschema: ------------info de las objectclass y attributes que podemos usar actualmente. coge los datos de etc/openldap/schema/* que hayamos configurado en etc/openldap/ slapd.conf /opt/openldap/bin/ldapsearch -LL -x -D "cn=Manager,dc=curso,dc=esp" -w secret -b "cn=subschema" -s base '(objectclass=*)' + cn=config: ---------info de configuracion de nuestro servidor (demonio) y que transformar el fichero slapd.conf, de forma que o se lee cd cn=config o de l fichero slapd.conf. si transformamos a cn=config los cambios del servidor son en caliente y a mi no me gusta. 1.3 - configuracin inicial (logs y "root") ---------------------------INCLUIR SCHEMAS include /opt/openldap/etc/openldap/schema/collective.schema include /opt/openldap/etc/openldap/schema/corba.schema include /opt/openldap/etc/openldap/schema/cosine.schema #include /opt/openldap/etc/openldap/schema/duaconf.schema include /opt/openldap/etc/openldap/schema/dyngroup.schema include /opt/openldap/etc/openldap/schema/inetorgperson.schema include /opt/openldap/etc/openldap/schema/java.schema include /opt/openldap/etc/openldap/schema/misc.schema include /opt/openldap/etc/openldap/schema/nis.schema include /opt/openldap/etc/openldap/schema/openldap.schema include /opt/openldap/etc/openldap/schema/pmi.schema include /opt/openldap/etc/openldap/schema/ppolicy.schema include /opt/openldap/etc/openldap/schema/DUAConfigProfile.schema.txt include /opt/openldap/etc/openldap/schema/solaris.schema.txt CAMBIAR EL SUFIJO Y LA PASSWORD A secret /opt/openldap/sbin/slappasswd -v New password: Re-enter new password: {SSHA}ErD35/QuwlvzaLpq3DnWg0WrruAFSdOx 1.4 - Ampliar Schema ---------------------------las objectclass pueden ser de 3 tipos: --> STRUCTURAL = se utiliza para definir una nueva entrada --> AUXILIARY = se utiliza para incluir mas informacion sobre una entrada, eso quiere decir que la entrada ya tiene una objectclass tipo STRUCTURAL --> ABSTRACT = por si sola esta incompleta y la entrada necesita llevar mas ob jectclass que complementen los atributos de la entrada. Por defecto, TOP TODAS las entradas necesitan una y solo una objectclass structural, y por defect o todas las objectclass padre de la jerarquia que tb son structural, 0 o mas aux iliary y unicamente una abtract que es TOP. Cuando definimos nuestras objectclasses deben formar parte de la jerarquia de ob

jectclasses, por lo tanto debe tener una objectclass padre. Nuestra objectclass debe ser del mismo tipo que la objectclass elegida como padre. La formula mas sencilla de definir un atributo es indicar que usa el mismo tipo de dato que uno existente, de forma que solo deberemos definir el OID y nombre d el atributo y si en uni o multi valuado. cat /opt/openldap/etc/openldap/schema/ropa.schema attributetype ( 3.0.0.1.1 NAME 'cursoTallaSudadera' DESC 'talla de sudadera para encargar en navidades' SUP name SINGLE-VALUE ) attributetype ( 3.0.0.1.2 NAME 'cursoTallaPantalon' DESC 'Numero de pantalones para encargar en navidades' SUP name SINGLE-VALUE ) attributetype ( 3.0.0.1.3 NAME 'cursoUnidadesSudadera' DESC 'talla de sudadera para encargar en navidades' SUP uidNumber SINGLE-VALUE ) attributetype ( 3.0.0.1.4 NAME 'cursoUnidadesPantalon' DESC 'numero de pantalones para encargar en navidades' SUP uidNumber SINGLE-VALUE ) objectclass ( 3.1.0.1.1 NAME 'cursoRopaNavidades' DESC 'Informacion de ropa a comprar a los empleados por Navidades' SUP person STRUCTURAL MUST ( cn $ sn ) MAY ( cursoTallaPantalon $ cursoTallaSudadera $ cursoUnidadesSudadera $ cursoUnidadesPantalon ) ) VER SCHEMAS CARGADOS /opt/openldap/bin/ldapsearch -LL -D "cn=Manager,dc=curso,dc=esp" -w secret -b " cn=subschema" -s base objectclass=* + | less # ESTA ES MI AMPLIACION DEL SCHEMA include /opt/openldap/etc/openldap/schema/ropa.schema 3.- Buscar y modificar los datos ---------------------------1.1 - LDIF ---------------------------dn: dc=curso,dc=esp objectclass: top objectclass: dcObject objectclass: organization objectclass: nisDomainObject dc: curso o: curso.esp nisDomain: curso.esp dn: ou=people,dc=curso,dc=esp objectclass: top objectclass: organizationalUnit ou: people dn: ou=groups,dc=curso,dc=esp

objectclass: top objectclass: organizationalUnit ou: groups dn: uid=ldap1,ou=people,dc=curso,dc=esp objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson objectclass: posixAccount objectclass: shadowAccount uid: ldap1 cn: ldap1 sn: ldap1 givenName: ldap1 uidNumber: 123 gidNumber: 1 homeDirectory: /export/home/ldap1 gecos: usuario de LDAP loginShell: /bin/bash shadowLastChange: -1 shadowMin: -1 shadowMax: 99999 shadowWarning: -1 shadowInactive: -1 shadowFlag: 0 userPassword: {CRYPT}rAdOvTxqV8tWs 1.2 - Uso de ldapsearch ---------------------------1.3 - Uso de ldapmodify ---------------------------1.4 - configuracin de ndices y logs ---------------------------NIVELES DE LOG por defecto los mensajes salen por pantalla y no quedan registrados en ningun fi chero. para que guarde los sms en fichero logfile /opt/openldap/var/slapd.log ahora faltaria determinar que datos queremos guradar en log. para saber los niveles: man -M /opt/openldap/share/man slapd.conf sinonimos loglevel 129 loglevel 128 1 loglevel acl trace hay 2 palabras reservadas --> none --> no login --> any --> login de todo es necesario configurar syslog para recibir mensajes de tipo local4 INDICES hay 3 tipos de indices, principalmente: pres --> para saber si el atributo existe, independientemente del valor --> util cuando el filtro de busqueda es por ejemplo: uid=*

eq --> para saber si un atributo tiene un valor concreto --> util cuando el filtro de busqueda es por ejemplo: uid=jasanchez sub --> para saber si un atributo contiene ciertos caracteres --> util cuando el filtro de busqueda es por ejemplo: uid=*as* subinitial --> para saber si un atributo contiene ciertos caracteres pero los in iciales no se conocen --> util cuando el filtro de busqueda es por ejemplo: uid=*sanchez subfinal --> para saber si un atributo contiene ciertos caracteres pero los de l final no se conocen --> util cuando el filtro de busqueda es por ejemplo: uid=ja* EN FICHERO slapd.conf, AL FINAL DEL FICHERO index objectClass eq index cn,uid eq,pres,sub index userPassword eq,pres CARGAR LOS INDICES: Hay que parar el servidor: pkill -9 slapd TODOS /opt/openldap/sbin/slapindex -q -b "dc=curso,dc=esp" /opt/openldap/sbin/slapindex -v ---> FUNCIONA?? CONCRETOS /opt/openldap/sbin/slapindex -q -b "dc=curso,dc=esp" uid VER QUE INDICES SE ESTAN USANDO no se puede, en caso de duda, para y reindexar 4.- Control de Acceso ---------------------------1.1 - ACLs ---------------------------If no access controls are present, the default policy allows anyone and everyo ne to read anything but restricts updates to rootdn. access --> entrada y/o atributo/s by --> a quien afecta y con que permiso (none,auth,read,write) cada access puede tener infinitos by. puedes tener infinitos access. Solo se miran los by que pertenen al siguiente access si no se ha podido aplicar ningun by del access anterior. Dentro del mismo access, por defecto, si se puede aplicar un by no se mirara el siguiente, salvo que finalices el by con continue. Si dentro del mismo access, al tener continues en los by, hay difenrentes by que se pueden aplicar, se aplicara el ultimo by. Si necesitas mirar los by de varios access, porque cada access te da un permiso diferente pero complementario, es necesario que el ultimo by del access termine con break. Mi recomendacion inicial, en principio, es que tanto los access como los by

dentro del access esten colocados de + concreto/restrictivo a -. LAconfiguracion INICIAL que usaremos para el curso sera: --> los usuarios pueden leer unicamente su propia entrada y solo pueden modificar su password. #todo el muno puede leer root DSE access to dn.base="" by * read #todo el muno puede leer los schemas access to dn.base="cn=Subschema" by * read #para acceder, mirar el resto de access access to * by * break #todos los que tengan password pueden autenticarse y cada usuario puede modifica rse su password access to attrs=userPassword by anonymous auth by self write by * none break #todo el mundo puede leer los atributos de su entrada #proxyagent puede leer todas la entradas por el native LDAP, access to dn.subtree="dc=curso,dc=esp" by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth COMPROBAR LAS ACIs /opt/openldap/sbin/slapacl -D "cn=proxyagent,ou=profile,dc=curso,dc=esp" -b "uid =ldap1,ou=people,dc=curso,dc=esp" "uid/write" authcDN: "cn=proxyagent,ou=profile,dc=curso,dc=esp" write access to uid: DENIED /opt/openldap/sbin/slapacl -D "cn=proxyagent,ou=profile,dc=curso,dc=esp" -b "uid =ldap1,ou=people,dc=curso,dc=esp" "uid/read" authcDN: "cn=proxyagent,ou=profile,dc=curso,dc=esp" read access to uid: ALLOWED 1.2 - Politicas de contrasea ---------------------------primero configurar slapd para que pueda usar las politicas include /opt/openldap-2.4.23/etc/openldap/schema/ppolicy.schema .... moduleload ppolicy Si queremos que exista una politica por defecto para todas las entradas que tengan el atributo userPassword para un sufijo concreto situamos debajo de la se ccion database: overlay ppolicy ppolicy_default "cn=debil,ou=politicas,dc=curso,dc=esp" reiniciar slapd pkill -HUP slapd Crear el contenedor y sus politicas en fichero ldif y luego cargarlo con ldapmodify -a

cat /opt/openldap-2.4.23/ldif/politicaPassword.ldif.txt dn: ou=politicas,dc=curso,dc=esp objectclass: top objectclass: OrganizationalUnit ou: politicas dn: cn=fuerte,ou=politicas,dc=curso,dc=esp objectclass: top objectclass: person objectclass: pwdPolicy cn: fuerte sn: fuerte pwdAttribute: userPAssword pwdMinAge: 10080 # 1 semana en segundos pwdMaxAge: 129600 # 3 meses en segundos pwdExpireWarning: 10080 # avisa una semana antes de caducar la password, siempre que uses la cuenta pwdMinLength: 7 pwdInHistory: 3 pwdLockout: TRUE # la cuenta se bloquea si reintento fallido de login pwdMaxFailure: 5 # despues de 5 intentos fallidos de login pwdLockoutDuration: 300 # el bloqueo de la cuenta dura 5 minutos pwdFailureCountInterval: 600 # el contador de intentos fallidos, si nose hizo login, se resetea a 0 pasados 10 minutos pwdAllowUserChange: TRUE # los usuarios pueden modificarse sus passwords pwdSafeModify: TRUE # se debe ingresar la password actual para modificarla, eso implica que es obligatorio usar el comando: /opt/openldap/bin/ldappasswd -D "uid=julio,ou=people,dc=curso,dc=esp" -w ldap1 -a ldap1 -s julio uid=julio,ou=people,dc=curso,dc=esp dn: cn=debil,ou=politicas,dc=curso,dc=esp objectclass: top objectclass: person objectclass: pwdPolicy cn: debil sn: debil pwdAttribute: userPAssword pwdMaxAge: 525600 # 1 anio en segundos pwdExpireWarning: 53200 # avisa un mes antes de caducar la password pwdMinLength: 4 pwdInHistory: 3 pwdLockout: FALSE # la cuenta no se bloquea si reintento fallido de login pwdAllowUserChange: TRUE # los usuarios pueden modificarse sus passwords pwdSafeModify: FALSE # no se debe ingresar la password actual para modificarla para asignar una politica a un usuario: asignar a la entrada del usuario el atributo pwdPolicy dn: uid=julio,ou=people,dc=curso,dc=esp changetype: modify add: pwdPolicySubentry pwdPolicySubentry: cn=fuerte,ou=politicas,dc=curso,dc=esp Atributos operacionales Si la cuenta se bloquea por reintentos fallidos de login, podemos verlo en los atributos: -> pwdFailureTime: 20120103120053Z -> pwdFailureTime: 20120103120117Z -> pwdFailureTime: 20120103120125Z -> pwdFailureTime: 20120103120135Z

-> pwdFailureTime: 20120103120140Z tantos valores como intentos fallidos -> pwdAccountLockedTime: 20120103120140Z la cuenta se ha bloqueado al llegar a maximo numero de intentos, y como se desbloquea pasados 5 minutos, ese es el valor que nos indica el atributo. 1.3 - SSL ---------------------------CREAR CA mkdir /opt/openldap/SSL cd /opt/openldap/SSL Lo primero es PERSONALIZAR el script para ello lo copiamos y modificamos: cp /etc/pki/tls/misc/CA.pl /etc/pki/tls/misc/CA.pl.orig vi /etc/pki/tls/misc/CA.pl $CATOP="../../CA"; a $CATOP="./CA"; CA.pl -newca CREAR UNA PETICION DE CERTIFICADO PARA QUE LA FIRME NUESTRA RECIEN CREADA CA PERO SIN FRASE DE PASO PARA LA CLAVE PRIVADA PORQUE SINO NO FUNCIONA #COMANDO CA.pl -newreq-nodes QUE LA CA FIRME EL CERTIFICADO mv /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf.orig vi /etc/pki/tls/openssl.cnf --> cambiar en la seccion [ ca ] para que la CA por defecto sea CA --> cambiar el nombre de la seccion [ CA_default ] por [ CA ] que es nuestra nue va CA por defecto --> cambiar dir a ./CA en la seccion [ CA ] pwd /opt/openldap/SSL #COMANDO CA.pl -signreq PONER LA FRASE DE PASOA VACIA PARA QUE NO LA PIDACADA VEZ QUE LEVANTEMOS ES SERV IDOR (NO DEBERIA SER NECESARIO) openssl rsa < newkey.pem > newclearkey.pem EDITAR FICHERO slapd.conf PARA QUE ENCUENTRE LOS DATOS DE LOS CERTIFICADOS DIGIT ALES vi slapd.conf --> incluir las siguientes lineas antes de la seccion # BDB database definitions ############################################################################## # SSL/TLS por JULIO ############################################################################## TLSCACertificatePath TLSCertificateFile TLSCertificateFileKey /opt/openldap/SSL/CA /opt/openldap/SSL/newcert.pem /opt/openldap/SSL/newclearkey.pem

CONFIGURAR EL CLIENTE PARA QUE QUE TENGA ACCESO A LA CA Y PUEDA CONFIAR EN EL CE RTIFICADO QUE LE PRESENTA EL SERVIDOR vi ldap.conf --> incluir al final del fichero las siguientes lineas TLS_CACERTDIR /opt/openldap/SSL/CA TLS_REQCERT allow

ESCUCHAR EN PUERTO 389 (PARA TLS) Y 636 (PARA SSL) slapd -d any -h "ldap:/// ldaps:///" LANZAR PETICIONES POR TLS /opt/openldap/bin/ldapsearch -LL -ZZ -D "cn=Manager,dc=curso,dc=esp" -w secret -b "dc=curso,dc=esp" cn=proxyagent dn LANZAR PETICIONES POR SSL /opt/openldap/bin/ldapsearch -LL -H ldaps://10.164.3.104/ -D "cn=Manager,dc=cur so,dc=esp" -w secret -b "dc=curso,dc=esp" cn=proxyagent dn 5.- Configurar la replicacin ---------------------------Master-slave: metodo 1 - PUSH - el maestro envia la info. a los esclavos era el unico metodo soportado por slurpd. metodo 2 - PULL - los esclavos se conectan periodicamente al maestro y si hay ca mbios, traerselos la replicacion se ha modificado internamente, sustituyendo a slurpd por sync-rep l (Sinchronzation-Replication) en el escenario PULL (refresh-only operation), el esclavo le pide al maestro los cambio realizados desde la ultima comunicacion, y si hay cambios, el maestro se los envia. en el escenario PUSH (refresh and persist), el esclavo se conecta al master, le pide las modificaciones y deja la comunicacion establecida. el maestro envia las modificaciones y, como la comunicacion sigue abierta, cuand o hay modificaciones se las envia al esclavo por esa conexion. si se cierra la conexion, el maestro no envia los datos al esclavo, pero el escl avo puede volver a establecer la conexion y se iniciaria la replicacion al estil o PULL, le pide los datos desde la ultima conexion, el maestro los envia y conti nua como push, cuando hay cambios, el maestro usa la conexion para enviar los da tos al esclavo. MultiMaster: cada servidor es a la vez master y slave 1.1 - Maestro/esclavo ---------------------------en Master: crear usuario que utilizara el master2 para conectarse dn: cn=repl_user1,dc=curso,dc=esp objectClass: top objectClass: person cn: proxyagent sn: proxyagent userPassword:: e1NTSEF9S01EQnJ6UUFBZngyQmpGRyt2NVI2RkhoektqS1RtU0E= darle acceso en slapd.conf modificamos la aci: access to dn.subtree="dc=curso,dc=esp" by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth para que quede asi:

access to dn.subtree="dc=curso,dc=esp" by dn="cn=repl_user1,dc=curso,dc=esp" read by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth En slave: Configurar slapd.conf para comunicarme con el master ############################################ # REPLICAION SLAVE COMUNICANDO CON MASTER ############################################ index entryCSN,entryUUID eq serverID 003 moduleload syncprov overlay syncprov syncRepl rid=3 provider=ldap://10.164.3.104 type=RefreshAndPersist binddn="cn=repl_user1,dc=curso,dc=esp" credentials=cangetin bindMethod=simple searchBase="dc=curso,dc=esp" scope=sub attrs="*,+" retry="5 5 300 +" 1.2 - Maestro/Maestro ---------------------------en Master 1: crear usuario que utilizara el master2 para conectarse dn: cn=repl_user1,dc=curso,dc=esp objectClass: top objectClass: person cn: proxyagent sn: proxyagent userPassword:: e1NTSEF9S01EQnJ6UUFBZngyQmpGRyt2NVI2RkhoektqS1RtU0E= darle acceso en slapd.conf modificamos la aci: access to dn.subtree="dc=curso,dc=esp" by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth para que quede asi: access to dn.subtree="dc=curso,dc=esp" by dn="cn=repl_user1,dc=curso,dc=esp" read by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth configurar la replicacion al final del fichero slapd.conf ############################################ # REPLICAION MASTER1 COMUNICANDO CON MASTER2 ############################################ index entryCSN,entryUUID eq serverID 001

moduleload syncprov overlay syncprov syncRepl rid=1 provider=ldap://10.164.3.105 type=RefreshAndPersist binddn="cn=repl_user2,dc=curso,dc=esp" credentials=cangetin bindMethod=simple searchBase="dc=curso,dc=esp" scope=sub attrs="*,+" # si hay problemas de comunicacion, reintenta la comunicacion cada 5seg la 10 pr imeras veces, depues del decimo intento, reintenta la comunicacion cada 300seg s in parar de intentarlo (+). retry="5 10 300 +" #para permitir escribir mirrormode TRUE --------------------------------en Master 2: crear usuario que utilizara el master1 para conectarse dn: cn=repl_user2,dc=curso,dc=esp objectClass: top objectClass: person cn: proxyagent sn: proxyagent userPassword:: e1NTSEF9S01EQnJ6UUFBZngyQmpGRyt2NVI2RkhoektqS1RtU0E= darle acceso en slapd.conf modificamos la aci: access to dn.subtree="dc=curso,dc=esp" by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth para que quede asi: access to dn.subtree="dc=curso,dc=esp" by dn="cn=repl_user2,dc=curso,dc=esp" read by dn="cn=proxyagent,ou=profile,dc=curso,dc=esp" read by self read by anonymous auth configurar la replicacion al final del fichero slapd.conf ############################################ # REPLICAION MASTER2 COMUNICANDO CON MASTER1 ############################################ index entryCSN,entryUUID eq serverID 002 moduleload syncprov overlay syncprov syncRepl rid=2 provider=ldap://10.164.3.104 type=RefreshAndPersist binddn="cn=repl_user1,dc=curso,dc=esp"

credentials=cangetin bindMethod=simple searchBase="dc=curso,dc=esp" scope=sub attrs="*,+" # si hay problemas de comunicacion, reintenta la comunicacion cada 5seg la 10 pr imeras veces, depues del decimo intento, reintenta la comunicacion cada 300seg s in parar de intentarlo (+). retry="5 10 300 +" #para permitir escribir mirrormode TRUE 6.- Native LDAP ---------------------------1.1 - redhat ---------------------------Crear usuario en servidor para centralizar la peticiones de los rhel como client es dn: ou=profile,dc=curso,dc=esp objectclass: top objectclass: organizationalUnit ou: profile dn: cn=proxyagent,ou=profile,dc=curso,dc=esp objectclass: top objectclass: person cn: proxyagent sn: proxyagent userPassword: {CRYPT}qRj5n02HYnUqY instalar paquetes en el rhel cliente: rpm -ivh openldap-i386 openldap-clients.i386 nss_ldap.i386 editar /etc/nsswitch.conf passwd: files ldap shadow: files ldap group: files ldap Configurarlo vi /etc/ldap.conf base dc=curso,dc=esp uri ldap://10.164.3.104/ binddn cn=proxyagent,ou=profile,dc=curso,dc=esp bindpw cangetin scope sub timelimit 120 bind_timelimit 120 idle_timelimit 3600 pam_filter objectclass=posixAccount pam_login_attribute uid nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5 1.2 . solaris ----------------------------

Вам также может понравиться