Re: Problema con replicación OpenLDAP (no funciona "updateref")

2007-01-24 Por tema Iñaki
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")

2007-01-23 Por tema Leonardo Vizcaya

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")

2007-01-22 Por tema Iñaki
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")

2007-01-22 Por tema Iñaki
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")

2007-01-22 Por tema Angel L. Mateo
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")

2007-01-22 Por tema Iñaki
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")

2007-01-21 Por tema Angel L. Mateo
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")

2007-01-19 Por tema Iñaki
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