Postfix y SASL2 me traen frito

Mira que he mirado manuales y howtos, pero nada. Configuro Postfix2 y SASL2, la autentificación de este ultimo contra LDAP va perfecta (comprobado con testsaslauthd), pero sin embargo Postfix me dice que nanai, que siempre la autentificación es errónea.
Uso Debian Sid, con los paquetes postfix y postfix-tls instalados. Los métodos de autentificación los he dejado en plain y login, postfix corre enjaulado, pero he hecho un enlace duro cd /var/run/saslauthd (creo recordar) a /var/spool/postfix/var/run/saslauthd (están en la misma partición).
¿Alguna librería que enlazar en algún lado? Ferdy, una mas tío, esta será la penúltima X-D
Uhm... no se cómo estará construido tu postfix, pero el mío:

ferdy@tungsteno ferdy $ ldd /usr/lib/postfix/smtpd
        libpostfix-master.so.1 => /usr/lib/libpostfix-master.so.1 (0x40019000)
        libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x40020000)
        libpostfix-dns.so.1 => /usr/lib/libpostfix-dns.so.1 (0x40042000)
        libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x40046000)
        libssl.so.0.9.6 => /usr/lib/libssl.so.0.9.6 (0x40068000)
        libcrypto.so.0.9.6 => /usr/lib/libcrypto.so.0.9.6 (0x40095000)
        libsasl.so.7 => /usr/lib/libsasl.so.7 (0x40155000)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        libdb3.so.3 => /usr/lib/libdb3.so.3 (0x40160000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40208000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x4021c000)
        libc.so.6 => /lib/libc.so.6 (0x4022d000)
        libdl.so.2 => /lib/libdl.so.2 (0x4034a000)
        libdb2.so.2 => /lib/libdb2.so.2 (0x4034d000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x4038e000)
        libpam.so.0 => /lib/libpam.so.0 (0x403bb000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


Como ves el mío no está construido contra sasl2 si no contra sasl1. Comprueba eso antes de intentar otra cosa

Salu2.Ferdy
Esta construido con SASL2:

root@Puesto1:~# ldd /usr/lib/postfix/smtpd
libpostfix-master.so.1 => /usr/lib/libpostfix-master.so.1 (0x40028000)
libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1 (0x4002e000)
libpostfix-dns.so.1 => /usr/lib/libpostfix-dns.so.1 (0x40051000)
libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1 (0x40056000)
libssl.so.0.9.7 => /usr/lib/i686/cmov/libssl.so.0.9.7 (0x4007a000)
libcrypto.so.0.9.7 => /usr/lib/i686/cmov/libcrypto.so.0.9.7 (0x400ab000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x401a8000)
libdb-4.2.so => /usr/lib/libdb-4.2.so (0x401bd000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40293000)
libresolv.so.2 => /lib/libresolv.so.2 (0x402a9000)
libgdbm_compat.so.3 => /usr/lib/libgdbm_compat.so.3 (0x402bb000)
libc.so.6 => /lib/libc.so.6 (0x402be000)
libdl.so.2 => /lib/libdl.so.2 (0x403f1000)
libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0x403f4000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

El archivo /usr/lib/libsasl2.so.2 existe.
El error es este:

Nov 3 12:58:36 Puesto1 postfix/smtpd[1299]: warning: SASL authentication failure: Password verification failed
Nov 3 12:58:36 Puesto1 postfix/smtpd[1299]: warning: Puesto1[127.0.0.1]: SASL PLAIN authentication failed
Nov 3 12:58:36 Puesto1 postfix/smtpd[1299]: lost connection after AUTH from Puesto1[127.0.0.1]

Esto me sale al intentar enviar un correo desde localhost. Si le quito la autentificacion SMTP a Kmail me sale perfecto, pero si la activo no, usando el mismo user/pass que con testsaslauthd, con el cual me sale perfecto.
Debe ser un problema de librerías o algo parecido, porque no le encuentro explicación.
Si no recuerdo mal, sasl2 deja información AUTH_LOG en syslog.

De paso postea la configuración que uses; es que ese error puede ser causado por MUCHAS (demasiadas) cosas.

Salu2.Ferdy
Pues nada, en syslog me deja la misma información que en mail.info. De paso esta es la configuración:

root@Puesto1:~# postconf -n
append_dot_mydomain = yes
biff = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
header_checks = regexp:/etc/postfix/header_checks
local_transport = local
mailbox_size_limit = 12288000
message_size_limit = 8192000
mydestination = $myhostname, localhost.$mydomain, smtp.$mydomain
mydomain =
myhostname =
mynetworks = 127.0.0.1/32 192.168.2.0/24
myorigin = $mydomain
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_restrictions = reject_rbl_client relays.ordb.org reject_rhsbl_client relays.ordb.org reject_unknown_client
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_sasl_application_name = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = reject_rhsbl_client relays.ordb.org
virtual_gid_maps = static:1003
virtual_mailbox_base = /home/vmail/
virtual_mailbox_domains = $virtual_mailbox_maps hash:/etc/postfix/vmaildomains
virtual_mailbox_maps = ldap:ldapvirtualmap
virtual_minimum_uid = 100
virtual_transport = virtual
virtual_uid_maps = static:1003

No se tio, estoy loco. Los enlaces en la jaula chroot de Postfix parecen correctos. Es problema de integración Postfix-SASL, pero no se donde puede estar el error.
Gracias de todas formas Ferdy.
Quizá sea problema del master.cf péga las partes necesarias.

Cuando te dije que dejaba información AUTH_LOG en syslog me refería a que en auth.log suele haber información interesante. Échale un ojo

Salu2.Ferdy
Pues nada tio. Lo único que se me ocurre es que haya algun fallo en los paquetes de Debian Sid.
Voy a intentar compilarlo a manubrio, a ver que tal sale.
Gracias por todo.
El master como lo tienes ?

Salu2.Ferdy
Este es mi master.cf:

# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - - - - smtpd
# -o smtpd_etrn_restrictions=reject
#628 inet n - - - - qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - - 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil

maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}

# only used by postfix-tls
#tlsmgr fifo - - n 300 1 tlsmgr
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes

#Para amavis
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes

Bueno, pues ese es. Ahora mismo tengo el demonio smtpd sin chroot, pero antes lo tenia "enjaulado" y tampoco.
Gracias por todo Ferdy.
Es que creo que el problema está en cómo has hecho la jaula... AFAIK postfix te permite enjaular los procesos sin enjaular el demonio entero (de ahí el flag chroot). Tu estás haciendo la jaula del demonio entero así que todas las flags chroot deberían ser 'n' (AFAIK claro...)

Intenta aumentar el debug para ver exactamente donde falla si en la verificación de la password o al intentar "hablar" con SASL.

PD: No desesperar y no tirar la toalla son la clave para poner estas cosas en marcha :P

Salu2.Ferdy
Espero que te sirva esta web:

http://ezine.daemonnews.org/200306/postfix-sasl.html

Yo lo hice para configurar mi servidor(el mio es freebsd) y me fue perfecto.

Un saludo
Ya como ultimo recurso antes de probar con Suse pego la salida de smtpd -v. Nada está en chroot:

ubuntu postfix/smtpd[10888]: > localhost.localdomain[127.0.0.1]: 220 ubuntu ESMTP Postfix
ubuntu postfix/smtpd[10888]: watchdog_pat: 0x807ac68
ubuntu postfix/smtpd[10888]: < localhost.localdomain[127.0.0.1]: auth plain omF2aXZpLm5ldABqjXZpdmkubmV0DDkyMDA=
ubuntu postfix/smtpd[10888]: smtpd_sasl_authenticate: sasl_method plain, init_response omF2aXZpLm5ldABqjXZpdmkubmV0DDkyMDA=
ubuntu postfix/smtpd[10888]: smtpd_sasl_authenticate: decoded initial response javivi.net
ubuntu postfix/smtpd[10888]: warning: SASL authentication failure: Can only find author/en (no password)
ubuntu postfix/smtpd[10888]: warning: localhost.localdomain[127.0.0.1]: SASL plain authentication failed
ubuntu postfix/smtpd[10888]: > localhost.localdomain[127.0.0.1]: 535 Error: authentication failed
ubuntu postfix/smtpd[10888]: watchdog_pat: 0x807ac68

Elimino la fecha/hora para que quede mas legible.
Y la salida de debug de saslauthd no muestra que se haga ninguna autentificación, por lo que deduzco que debe ser algún problema de encontrar las librerías en el sitio adecuado o algo así.

P.D.: klian, muchas gracias, pero todo lo que ponía en ese manual lo tenía ya hecho. Ni por esas. ratataaaa pa mi
11 respuestas