[Postfix-es] postfix + virtual users + mail routing con ldap

Pablo Vargas pvr.mza en gmail.com
Lun Ago 21 17:13:06 CEST 2006


Hola X-IP: yo tengo armado en postfix+ldap que hace mas o menos lo que
vos queres. Tengo configurado dos servidores fisicamentes en edificios
diferentes con dos conexiones a inet diferentes, donde uno es el
principal (el de casa matriz) y el otro es el servidor secundario.

por un lado tengo configurado el dns para mi dominio con dos registros MX:

dominio.edu.ar mail exchanger = 10 primario.dominio.edu.ar.
dominio.edu.ar mail exchanger = 15 secundario.dominio.edu.ar.

para que los dos reciban correos para mi domino, y en caso de que uno
falle, los reciba el otro.

por otro lado, el servidor primario tiene el arbol de LDAP con todos
mis usuarios de correo y se replica al servidor secundario:
///////////////////////////////////////////////
///// slapd.conf primario
replogfile      /var/lib/ldap/replog-dominio.edu.ar

replica uri=ldap://secundario.dominio.edu.ar:389
        binddn="cn=replica,dc=dominio,dc=edu,dc=ar"
        bindmethod=simple credentials=123456

///// slapd.conf secundario

updatedn "cn=replica,dc=dominio,dc=edu,dc=ar"
updateref "ldap://primario.dominio.edu.ar"
///////////////////////////////////////////////

en cada uno de los usuarios, al momento de cargar los datos en el LDAP
le agrego un atributo mas que me indica en que maquina tiene su
correo, eso lo hago con el atributo "defaultdelivery", quedandome algo
asi como:

# Entry 1: uid=usuario,ou=people,dc=dominio,dc=edu,dc=ar
dn:uid=usuario,ou=people,dc=dominio,dc=edu,dc=ar
uid: usuario
sn: usuario
objectClass: person
objectClass: shadowAccount
objectClass: CourierMailAccount
objectClass: posixAccount
objectClass: top
mail: usuario en dominio.edu.ar
mailbox: /home/vmail/usuario/Maildir/
quota: 0
userPassword: {crypt}calve
loginShell: /bin/false
uidNumber: 503
gidNumber: 503
homeDirectory: /home/samba/staff/usuario
cn: Nombre Usuario
defaultdelivery: secundario.dominio.edu.ar
gecos: Nombre Usuario

///////////////////////////////////////

y luego en la configuracion del postfix de cada servidor lo configuro
de la siguiente forma:

myhostname = secundario.dominio.edu.ar
mydestination = localhost, localhost.localdomain, secundario.dominio.edu.ar
virtual_mailbox_domains = dominio.edu.ar
transport_maps = ldap:ldaptransport
virtual_mailbox_maps = ldap:vuser
virtual_mailbox_base = /
ldap:virtual_uid_maps = ldap:uidldap

#Virtual User
vuser_server_host = 127.0.0.1
vuser_search_base = ou=people,dc=dominio,dc=edu,dc=ar
vuser_query_filter = (&(mail=%s)(!(quota=-1))(objectClass=CourierMailAccount))
vuser_result_attribute = mailbox
vuser_bind = no

#Virtual User uid
uidldap_server_host = 127.0.0.1
uidldap_search_base = ou=people,dc=dominio,dc=edu,dc=ar
uidldap_query_filter = (&(mail=%s)(!(quota=-1))(objectClass=CourierMailAccount))
uidldap_result_attribute = uidNumber
uidldap_bind = no

#Transport
ldaptransport_server_host = 127.0.0.1
ldaptransport_search_base = ou=people,dc=dominio,dc=edu,dc=ar
ldaptransport_query_filter =
(&(mail=%s)(defaultdelivery=*)(!(defaultdelivery=$myhostname)))
ldaptransport_result_attribute = defaultdelivery
ldaptransport_result_filter = smtp:[%s]
ldaptransport_bind = no

////////////////////////////
De esta manera, es que cada uno de los server recibe correo para mi
dominio, y segun el atributo defaultdelivery lo deja local o lo
entrega al siguiente servidor.

No es precisamente lo que vos estas buscando, pero te puede ayudar.

Saludos
                                          Pablo


2006/8/14, x-ip <xip.linux en gmail.com>:
> Buenas:
> Estoy tratando de integrar ldap con usuarios virtuales. Primeramente
> levanté postfix, armé el árbol ldap, configure ldap y postfix para que
> haga relay local a los usuarios locales y los que no son locales,
> busque en ldap y si los encuentra envie el email al correspondiente
> mailbox. Quedó funcionando hermosamente.
> Ahora bien, por cuestiones de facilidad en la administración y porque
> este problema se ha tornado en un asunto personal, alguien me podría
> tirar un postconf de como integrar virtual users y que a su vez siga
> buscando donde routear los emails en ldap ?
>
> El problema que tengo es que cuando junto los 2 tipos de
> configuración, en el mejor de los casos o me agarra el transport que
> le indica ldap o me toma los usuarios virtuales alojados en ldap pero
> el result_format de los virtual users me devuelve el mailhost de cada
> uno y el result_format del mail routing me devuelve smtp:[%s] y yo
> precisaría ámbos :S por una cuestion de que tengo repartido los
> mailboxes en distintas máquinas.
>
> En fin, espero poder haber sido claro, me despido expectante, un salu2 ^^.
> _______________________________________________
> List de correo Postfix-es para tratar temas del MTA postfix en español
> Postfix-es en lists.wl0.org
> http://lists.wl0.org/mailman/listinfo/postfix-es
>


Más información sobre la lista de distribución Postfix-es