Re: Problema con replicación OpenLDAP (no funciona "updateref")
El Miércoles, 24 de Enero de 2007 03:04, Leonardo Vizcaya escribió: > Gracias por el dato, la semana que viene me voy a poner en esto > también ya que necesito replicar una 'ou' de mi servidor pero en otra > localidad. > > He estado pensando hacer la replica implementando TLS, de casualidad > lo has hecho?? yo he usado TLS en ldap pero ciertas cosas me han > servido y otras no, si tienes alguna experiencia sobre esto me > gustaría que la comentaras. Me han dicho que es tan sencillo como > decir tls=yes y es todo, voy a tener que probar con esto a ver que > tanto es :-)... Pues casualidades de la vida estuve ayer toda la tarde/noche tratando de añadir TLS a mi OpenLDAP. No fui capaz por fallos en el certificado (me lo tengo que mirar mejor). Parece que openLDAP es muy sensible y no le valen los autofirmados, y luego traté de generar un request, creando antes mi CA, firmarlo, separarlo en key y cert... pero al final no me funcionaba y me fui a la cama. Hasta ahora tengo un OpenLDAP maestro replicándose mediante slurp a otro esclavo sin TLS. Funciona bien y tal. Ahora quiero probar la replicación por Syncrepl, que se supone es un método más nuevo y menos pesado (no hace falta parar el maestro, ni configurar casi anda en él...): http://www.openldap.org/doc/admin23/syncrepl.html Y sí, en teoría habilitar TLS en la réplica (al menos con Slurp) es sólo añadir "tsl = yes". En fin, que por comentar... ;) -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista
Re: Problema con replicación OpenLDAP (no funciona "updateref")
Ahora SI está claro, aunque me ha costado sudor y lágrimas: Allá va la solución: * En el maestro: replogfile /var/lib/ldap/replog replica host=192.168.1.1:389 binddn="cn=slave-replica,dc=dominio,dc=net" credentials=* bindmethod=simple tls=no Sin más, ni tiene que existir un usuario especial ni NADA. * EN el esclavo: updatedn"cn=slave-replica,dc=dominio,dc=net" # ¡¡¡EL USUARIO UPDATEDN ES EL ÚNICO QUE PUEDE MODIFICAR COSAS, SEA DESDE EL MAESTRO O DIRECTAMENTE!!! updateref ldap://192.168.1.100:389 access to * by dn="cn=slave-replica,dc=dominio,dc=net" write by * read # No hace falta que exista ni admin ni nada, sólo "updatedn" es quien puede modificar. Mi fallo era que hacía la replica directamente con "admin", y encima hacía en el esclavo el Bind con "admin", por lo que era el usuario "updatedn" y entonces SI me dejaba hacer cambios. Lo que no consigo es que Kaddressbook (que parece implementar los referral) se loguee en el esclavo para escritura y éste le haga el referral (indicando el maestro) para que Kaddressbook haga en él los cambios. Creo que el bind contra el maestro lo hace SIEMPRE como anónimo ¿?¿?¿? ¿un bug? La replicación maestro->esclavo tira perfecto. Bueno, algo hemos avanzado :) -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista Hola Iñaki. Gracias por el dato, la semana que viene me voy a poner en esto también ya que necesito replicar una 'ou' de mi servidor pero en otra localidad. He estado pensando hacer la replica implementando TLS, de casualidad lo has hecho?? yo he usado TLS en ldap pero ciertas cosas me han servido y otras no, si tienes alguna experiencia sobre esto me gustaría que la comentaras. Me han dicho que es tan sencillo como decir tls=yes y es todo, voy a tener que probar con esto a ver que tanto es :-)... Bueno hasta pronto. -- Att. Leonardo Vizcaya(WhiteLion). Linux user number: 429250 ("`-''-/").___..--''"`-._ `6_ 6 ) `-. ( ).`-.__.`) (_Y_.)' ._ ) `._ `. ``-..-' _..`--'_..-_/ /--'_.' ,' (il),-'' (li),' ((!.-'
Re: Problema con replicación OpenLDAP (no funciona "updateref")
El Lunes, 22 de Enero de 2007 14:05, Iñaki escribió: > ¿Sobre mi otro problema se te ocurre algo? Lo explico de nuevo: > > Resulta que teniendo el esclavo configurado para hacer "updateref" si trato > de modificar/crear alguna entrada DIRECTAMENTE EN EL ESCLAVO me ocurre > esto: > > > 1) Crear nueva entrada: > Me da ERROR (el mismo desde cualquier cliente): > > "Error. Could not add the object to the LDAP server. > LDAP said: Internal (implementation specific) error > Error number: 0x50 (LDAP_OTHER) > Description: " > > Y los logs dicen: > > conn=15 op=1 ADD dn="ou=borrame,ou=addressbook,dc=dominio,dc=net" > Jan 22 13:57:29 server slapd[4092]: No structuralObjectClass for entry > (ou=borrame,ou=addressbook,dc=dominio,dc=net) > Jan 22 13:57:29 server slapd[4092]: conn=15 op=1 RESULT tag=105 err=80 > text=no structuralObjectClass operational attribute > > Me parece más o menos normal, es decir, NO se debe permitir crear algo en > el esclavo pues está configurado el "updateref" (aunque luego los clientes > no hagan caso/no lo implementen). > > > > 2) Borrar una entrada: > ¡¡¡ ME DEJA!!! ¿cómo es posible? > > > 3) Modificar una entrada: > También me deja ¿?¿?¿?¿ > > > EN fin, que no me acaba de cuadrar todo esto, ¿sabéis por qué puede ser? > ¿Cual debería ser la respuesta esperada al tratar de crear/modificar/borrar > algo en el esclavo? supongo que el "updateref", pero no es así. > > > En fin, mil gracias por cualquier ayuda. Ahora SI está claro, aunque me ha costado sudor y lágrimas: Allá va la solución: * En el maestro: replogfile /var/lib/ldap/replog replica host=192.168.1.1:389 binddn="cn=slave-replica,dc=dominio,dc=net" credentials=* bindmethod=simple tls=no Sin más, ni tiene que existir un usuario especial ni NADA. * EN el esclavo: updatedn"cn=slave-replica,dc=dominio,dc=net" # ¡¡¡EL USUARIO UPDATEDN ES EL ÚNICO QUE PUEDE MODIFICAR COSAS, SEA DESDE EL MAESTRO O DIRECTAMENTE!!! updateref ldap://192.168.1.100:389 access to * by dn="cn=slave-replica,dc=dominio,dc=net" write by * read # No hace falta que exista ni admin ni nada, sólo "updatedn" es quien puede modificar. Mi fallo era que hacía la replica directamente con "admin", y encima hacía en el esclavo el Bind con "admin", por lo que era el usuario "updatedn" y entonces SI me dejaba hacer cambios. Lo que no consigo es que Kaddressbook (que parece implementar los referral) se loguee en el esclavo para escritura y éste le haga el referral (indicando el maestro) para que Kaddressbook haga en él los cambios. Creo que el bind contra el maestro lo hace SIEMPRE como anónimo ¿?¿?¿? ¿un bug? La replicación maestro->esclavo tira perfecto. Bueno, algo hemos avanzado :) -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista
Re: Problema con replicación OpenLDAP (no funciona "updateref")
El Lunes, 22 de Enero de 2007 12:29, Angel L. Mateo escribió: > El lun, 22-01-2007 a las 12:14 +0100, Iñaki escribió: > > Gracias por contestar. Yo pensaba que al menos algunos de estos clientes > > LDAP (Kontact, PhpLdapAdmin y ldap-utils) sí que implementarían el > > updateref. > > > > Seguiré investigando porque seguro que es por lo que dices. > > ya te digo... la última vez que miré las opciones del ldap-utils no lo > soportaba. De los otros, no lo se, pero me temo que phpldapadmin por > debajo acabará utilizando las librerías libldap, que también estarán > compiladas sin esa opción. Si tienes mucho interés, tampoco te debe > suponer mucho trabajo bajarte el paquete fuente y modificar el rules > para que tenga esa opción. ¿Sobre mi otro problema se te ocurre algo? Lo explico de nuevo: Resulta que teniendo el esclavo configurado para hacer "updateref" si trato de modificar/crear alguna entrada DIRECTAMENTE EN EL ESCLAVO me ocurre esto: 1) Crear nueva entrada: Me da ERROR (el mismo desde cualquier cliente): "Error. Could not add the object to the LDAP server. LDAP said: Internal (implementation specific) error Error number: 0x50 (LDAP_OTHER) Description: " Y los logs dicen: conn=15 op=1 ADD dn="ou=borrame,ou=addressbook,dc=dominio,dc=net" Jan 22 13:57:29 server slapd[4092]: No structuralObjectClass for entry (ou=borrame,ou=addressbook,dc=aliax,dc=net) Jan 22 13:57:29 server slapd[4092]: conn=15 op=1 RESULT tag=105 err=80 text=no structuralObjectClass operational attribute Me parece más o menos normal, es decir, NO se debe permitir crear algo en el esclavo pues está configurado el "updateref" (aunque luego los clientes no hagan caso/no lo implementen). 2) Borrar una entrada: ¡¡¡ ME DEJA!!! ¿cómo es posible? 3) Modificar una entrada: También me deja ¿?¿?¿?¿ EN fin, que no me acaba de cuadrar todo esto, ¿sabéis por qué puede ser? ¿Cual debería ser la respuesta esperada al tratar de crear/modificar/borrar algo en el esclavo? supongo que el "updateref", pero no es así. En fin, mil gracias por cualquier ayuda. -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista
Re: Problema con replicación OpenLDAP (no funciona "updateref")
El lun, 22-01-2007 a las 12:14 +0100, Iñaki escribió: > Gracias por contestar. Yo pensaba que al menos algunos de estos clientes LDAP > (Kontact, PhpLdapAdmin y ldap-utils) sí que implementarían el updateref. > > Seguiré investigando porque seguro que es por lo que dices. > ya te digo... la última vez que miré las opciones del ldap-utils no lo soportaba. De los otros, no lo se, pero me temo que phpldapadmin por debajo acabará utilizando las librerías libldap, que también estarán compiladas sin esa opción. Si tienes mucho interés, tampoco te debe suponer mucho trabajo bajarte el paquete fuente y modificar el rules para que tenga esa opción. -- Angel L. Mateo Martínez Sección de Telemática Área de Tecnologías de la Información _o) y las Comunicaciones Aplicadas (ATICA) / \\ http://www.um.es/atica_(___V Tfo: 968367590 Fax: 968398337 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Problema con replicación OpenLDAP (no funciona "updateref")
El Lunes, 22 de Enero de 2007 08:49, Angel L. Mateo escribió: > > Veo dos problemas: > > > > 1º) No se está haciendo el "updateref ldap://192.168.1.100:389"; (en los > > logs del maestro no veo siquiera intento de conexión). ¿Por qué puede > > ser? No hay problemas de firewall ni nada así. > > > > 2º) ¿Qué puede influir que exista o no la línea "updateref" en el esclavo > > para que me dé error o no al añadir una entrada directamente en el > > esclavo? o mejor dicho, entiendo que al existir "updateref" tal vez no > > debería si quiera dejarse editar y debería responder al cliente indicando > > que haga los cambios en el maestro. > > Hola, > > El problema puede ser que el updateref es una respuesta que se da al > cliente ldap que intenta realizar la operación. Es el cliente quién se > tiene que preocupar de hacer la actualización en el otro sitio. No se en > los últimos paquetes que habrán hecho, pero la última vez que miré, el > paquete ldap-utils no soportaba los updateref. Puede ser eso. Gracias por contestar. Yo pensaba que al menos algunos de estos clientes LDAP (Kontact, PhpLdapAdmin y ldap-utils) sí que implementarían el updateref. Seguiré investigando porque seguro que es por lo que dices. Gracias y un saludo. -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista
Re: Problema con replicación OpenLDAP (no funciona "updateref")
El vie, 19-01-2007 a las 01:01 +0100, Iñaki escribió: > Hola, he montado 2 servidores OpenLDAP y configurado uno como maestro y otro > como esclavo. > > La sincronización funciona perfectamente cuando hago algún cambio en el > maestro, de tal forma que se propagan los cambios al esclavo y se actualiza. > > Pero trato también de poner el "updateref" en el esclavo para que cuando un > cliente intente hacer algún cambio en el esclavo se le redirija al maestro, y > no hay forma, he leído bastante sobre ello y repasado unas 20 veces. > > > Maestro slapd.conf: > - > replogfile/var/lib/ldap/replog > > replica host=192.168.1.1:389 > binddn="cn=admin,dc=dominio,dc=net" > credentials=secret > bindmethod=simple > - > > > Esclavo slapd.conf: > -- > updatedn "cn=admin,dc=dominio,dc=net" > updateref ldap://192.168.1.100:389 > -- > > (Todo lo demás es idéntico en ambos y lo he comprobado repetidas veces). > > > > Tengo instalado PhpLdapAdmin en el servidor esclavo, y también tengo > configurado una rama del esclavo como agenda de contactos en Kaddressbook con > permiso de escritura. > > Pruebo a añadir un contacto en el esclavo desde consola: > > -- > #> ldapadd -H ldap://127.0.0.1 -D "cn=admin,dc=dominio,dc=net" -w secret -x > -f > file.ldif > > adding new entry "uid=blablabla,ou=addressbook,dc=dominio,dc=net" > ldap_add: Internal (implementation specific) error (80) > additional info: no structuralObjectClass operational attribute > -- > > Exactamente lo mismo me ocurre si trato de añadir un usuario desde > PhpLdapAdmin (en el esclavo) o desde Kaddressbook. > > Nota: Este error no aparece si quito la línea "updateref" en el esclavo. > Nota 2: Lo más curioso es que NO puedo añadir nuevas entradas en el esclavo > (me sale el error de antes) pero SI puedo modificarlas o eliminarlas. ¿?¿?¿ > > > Veo dos problemas: > > 1º) No se está haciendo el "updateref ldap://192.168.1.100:389"; (en los logs > del maestro no veo siquiera intento de conexión). ¿Por qué puede ser? No hay > problemas de firewall ni nada así. > > 2º) ¿Qué puede influir que exista o no la línea "updateref" en el esclavo > para > que me dé error o no al añadir una entrada directamente en el esclavo? o > mejor dicho, entiendo que al existir "updateref" tal vez no debería si quiera > dejarse editar y debería responder al cliente indicando que haga los cambios > en el maestro. > Hola, El problema puede ser que el updateref es una respuesta que se da al cliente ldap que intenta realizar la operación. Es el cliente quién se tiene que preocupar de hacer la actualización en el otro sitio. No se en los últimos paquetes que habrán hecho, pero la última vez que miré, el paquete ldap-utils no soportaba los updateref. Puede ser eso. -- Angel L. Mateo Martínez Sección de Telemática Área de Tecnologías de la Información _o) y las Comunicaciones Aplicadas (ATICA) / \\ http://www.um.es/atica_(___V Tfo: 968367590 Fax: 968398337 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Problema con replicación OpenLDAP (no funciona "updateref")
Hola, he montado 2 servidores OpenLDAP y configurado uno como maestro y otro como esclavo. La sincronización funciona perfectamente cuando hago algún cambio en el maestro, de tal forma que se propagan los cambios al esclavo y se actualiza. Pero trato también de poner el "updateref" en el esclavo para que cuando un cliente intente hacer algún cambio en el esclavo se le redirija al maestro, y no hay forma, he leído bastante sobre ello y repasado unas 20 veces. Maestro slapd.conf: - replogfile /var/lib/ldap/replog replica host=192.168.1.1:389 binddn="cn=admin,dc=dominio,dc=net" credentials=secret bindmethod=simple - Esclavo slapd.conf: -- updatedn "cn=admin,dc=dominio,dc=net" updateref ldap://192.168.1.100:389 -- (Todo lo demás es idéntico en ambos y lo he comprobado repetidas veces). Tengo instalado PhpLdapAdmin en el servidor esclavo, y también tengo configurado una rama del esclavo como agenda de contactos en Kaddressbook con permiso de escritura. Pruebo a añadir un contacto en el esclavo desde consola: -- #> ldapadd -H ldap://127.0.0.1 -D "cn=admin,dc=dominio,dc=net" -w secret -x -f file.ldif adding new entry "uid=blablabla,ou=addressbook,dc=dominio,dc=net" ldap_add: Internal (implementation specific) error (80) additional info: no structuralObjectClass operational attribute -- Exactamente lo mismo me ocurre si trato de añadir un usuario desde PhpLdapAdmin (en el esclavo) o desde Kaddressbook. Nota: Este error no aparece si quito la línea "updateref" en el esclavo. Nota 2: Lo más curioso es que NO puedo añadir nuevas entradas en el esclavo (me sale el error de antes) pero SI puedo modificarlas o eliminarlas. ¿?¿?¿ Veo dos problemas: 1º) No se está haciendo el "updateref ldap://192.168.1.100:389"; (en los logs del maestro no veo siquiera intento de conexión). ¿Por qué puede ser? No hay problemas de firewall ni nada así. 2º) ¿Qué puede influir que exista o no la línea "updateref" en el esclavo para que me dé error o no al añadir una entrada directamente en el esclavo? o mejor dicho, entiendo que al existir "updateref" tal vez no debería si quiera dejarse editar y debería responder al cliente indicando que haga los cambios en el maestro. En fin, le he dado un montón de vueltas y ya no sé por dónde más mirar. ¿A alguien se le ocurre algo? Muchas gracias y un saludo a todos. -- Iñaki Por el bien de todos respetemos las normas de la lista: http://wiki.debian.org/NormasLista