[postfix-es] problema postfix+sasl

Alvaro alvaro en haztelotumismo.net
Mar Abr 6 11:42:01 CEST 2004


Perdon por el mensaje anterior, ya que le faltaban un par de espacios
donde eran necesarios. Aqui va correcto.


Buenas,

En primer lugar pido disculpas por mandar un mensaje tan extenso, pero
para ofrecer toda la información del problema que tengo con postfix ha
sido preciso hacerlo asi. La ventaja es que toda la informacion que
podría echarse en falta referente a paquetes instalados en el sistema
junto con configuración ha sido incluida en el mensaje, con el fin de
dar las mayores facilidades para poder ser ayudado con el problema que
presento a continuacion. Gracias.

Desde hace algun tiempo estoy usando postfix como servidor de correo en
un sistema Debian stable (woody). Para instalarlo seguí al pie de la
letra este manual:

http://bulma.net/body.phtml?nIdNoticia=1621
y este otro:
http://laurel.datsi.fi.upm.es/postfix/Tutorial2.pdf


En ellos sobre todo en el de Bulmalug.net se explica como montar un
potente sistema de correo con postfix, courier, mysql y sasl. Con los
usuarios y contraseñas guardados en mysql.

Despues de realizar las operaciones que describe el articulo de Bulma de
la dirección que he mencionado, conseguí montar postfix recibiendo
correo y enviandolo SOLO desde la propia maquina (permit_mynetworks).
El problema en cuestión esta en la autenticación por smtp que viene
descrita en ese articulo, que pretendo hacerla con sasl. 

Hay que decir que este manual o receta de bulma que escribo mas arriba
esta basado en las ramas testing y unstable de debian. Pero para la rama
estable debian woody existen algunos problemas de uso de sasl1 y sasl2. 

Por lo que he leido, hay un problema de versioning con dichas librerias.
De manera que es complicado hacer compatible postfix con el soporte para
ambas librerías.

http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00962.html


Segun algo de documentación que he leido, el paquete de postfix en
woody, esta compilado con soporte para sasl1, y no para sasl2. Esto
parece que podria ser el principal problema. 

¿Es este el problema?

En un intento de solucionarlo, buscando en http://apt-get.org me baje
los paquetes de postfix y algunos paquetes mas de este repositorio no
oficial:

deb http://debian.cli.unipi.it/debian/ woody sherpya 
deb-src http://debian.cli.unipi.it/debian/ woody sherpya


En este repositorio se pueden bajar paquetes compilados con las opciones
con las que esta compilado en unstable (sid) pero compilados tambien de
manera que puedan ser instalarlos en woody. Es decir con postfix
enlazado con sasl2. Por esta razon y basandome en el articulo de bulma
antes mencionado decidí instalarlos.

Nunca he conseguido que me funcione el "smtp auth" con postfix, ni con
los paquetes originales de debian, ni con los de este repositorio.
Siempre lo he intentado con el metodo de consulta del usuario y
conteraseña en mysql en texto plano (que es en principio como tengo
preferencia a la hora de hacerlo).

El fichero desde donde se hace la consulta en la bbdd es el fichero:

/etc/postfix/sasl/smtpd.conf

El contenido del fichero es este:

mysql_user: user
mysql_passwd: xxxxxxxx
mysql_hostnames: localhost
mysql_database: mydatabase
mysql_statement: select clear from users where id='%u' and domain='%r'
pwcheck_method: auxprop
auxprop_plugin: mysql

La configuración de este fichero ha sido practicamente sacada de
diferentes manuales y mensajes encontrados en Internet. Aun no he
conseguido tener claro, si es absolutamente necesario utilizar el
demonio saslauthd y los modulos de pam para acceder a la bbdd, es capaz
la propia librería de hacerlo sola.  Aunque entiendo que al estar la
password en claro junto con la contraseña en bbdd el demonio no hace
falta. ¿Es cierto?

El problema se presenta cuando trato de validarme contra el servidor,
desde un programa como evolution, me pide la contraseña para ese usuario
y una vez introducida, lanza un mensaje en el log /var/log/mail.info
como este:

Apr  5 00:27:42 nombre_maquina postfix/smtpd[15559]: warning:
192.168.1.5: hostname privadas.nuria.telefonica-data.net verification
failed: Host not found
Apr  5 00:27:42 nombre_maquina postfix/smtpd[15559]: connect from
unknown[192.168.1.5]
Apr  5 00:27:46 nombre_maquina postfix/smtpd[15559]: warning:
unknown[192.168.1.5]: SASL LOGIN authentication failed

Para ofrecer mas información el usuario y contraseña se guardan en la
bbdd mysql en texto plano, pero nunca llega a hacerse una consulta en la
bbdd mysql, es decir, el proceso de logueo falla antes de hacer la
consulta. Todos los sistemas de autenticación (LOGIN, PLAIN, CRAM-MD5,
DIGEST-MD5 y NTLM / SPA) dan el mismo error, al tratar de validarse.

Una prueba mas clara de que aparentemente todo funciona o al menos en lo
que se refiere a posibilidades de autenticarse es esta:

telnet midominio.loquesea 25
Trying 10.10.10.10...
Connected to nombre_maquina.
Escape character is '^]'.
220 mail.miservidor.net ESMTP Postfix (Debian/GNU)
ehlo miservidor.net
250-mail.miservidor.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME

He probado a leer bastantes mensajes a traves de los grupos de google,
en diferentes listas de debian, y ninguno me aclaró lo suficiente para
aclarar este tema. En general todos hablan de la instalación en woody
usando sasl1 como metodo de autenticacion, contra un fichero binario en
el que se guardarian los usuarios y contraseñas (sasldb). 

Despues de esto, las preguntas es:

¿Se puede considerar imprescindible actualizar a testing (sarge) o
unstable (sid) como unica solución a este problema? 
Esta claro, que pasaria a un conjunto de paquetes que teóricamente
permiten resolver el problema, pero hasta que no encuentre alguien que
me convenza de que es la unica manera, no me lo planteare ya que me
gusta mantener el servidor en la version estable del sistema operativo.

¿Es necesario configurar algo más en algun fichero? ¿Quiza el demonio
saslauthd? Esto segun la documentación solo es preciso si las
contraseñas no estan en claro, en la bbdd. ¿Es cierto?

Otra solución pasa por realizar una compilación de postfix y las
librerias "adyacentes" que dan el soporte para realizar la autenticación
que mencionaba por smpt. ¿Pensais que esta es la unica solución posible
o mas idonea si no subiera a sarge el software del servidor?
https://listas.linux.org.ar/pipermail/lugar-conf/2003-May/016637.html


Despues de leer algunos mensajes, parece que la idea de compilar
postfix, no es solo cuestion de compilarlo si no hacerlo en conjunto de
librerias, y parece que existen algunas dificultades al hacerlo, ya que
hay problemas y conflictos con las librerias adyacentes al hacerlo.

Aqui por ejemplo explican en un mensaje que es imposible hacer lo que
pretendo si no usas sasl1 (usando sasldb) o si no subes a sarge:
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00962.html

Por otro lado me gustaria saber si es posible ponerle mas "verbose" a
SASL para saber donde realmente da error, mientras lleva a cabo el
proceso de autenticación. He probado a aumentar el verbose de postfix
pero sigue dandome el mismo mensaje. ¿Alguien puede decime como hacerlo?

Para terminar dejo aqui algo de información acerca de los paquetes y la
instalación hecha en la maquina, junto con la configuración de postfix y
todos los mensajes ymanuales y documentacion encontrada al respecto.
Acepto todo tipo de sugerencias. Si resolver el problema no es viable en
woody terminaré pasando a testing(sarge) pero antes de eso quiero tener
el consejo de la gente de esta lista :)


Estos son los paquetes instalados de postfix:

ii  postfix        1.1.11.0-3sher A high-performance mail transport
agent
ii  postfix-ldap   1.1.11.0-3sher LDAP map support for Postfix
ii  postfix-mysql  1.1.11.0-3sher MYSQL map support for Postfix
ii  postfix-pcre   1.1.11.0-3sher PCRE map support for Postfix
ii  postfix-tls    1.1.11.0-3sher TLS and SASL support for Postfix
snapshots

Estos son los paquetes instalados de SASL:

ii  libsasl-digest 1.5.27-3        DIGEST-MD5 module for SASL
ii  libsasl-module 1.5.27-3       Basic Pluggable Authentication Modules
for S
ii  libsasl2       2.1.17-1       Authentication abstraction library
ii  libsasl2-dev   2.1.17-1       Development files for authentication
abstrac
ii  libsasl2-modul 2.1.17-1       Pluggable Authentication Modules for
SASL
ii  libsasl7       1.5.27-3       Authentication abstraction library.
ii  sasl-bin       1.5.27-3       Programs for manipulating the SASL
users dat
ii  sasl2-bin      2.1.17-1       Programs for manipulating the SASL
users dat


Este es un vistazo a las librerias enlazadas a postfix:

ldd /usr/sbin/postfix
libpostfix-global.so.1 => /usr/lib/libpostfix-global.so.1
(0x40017000)
libpostfix-util.so.1 => /usr/lib/libpostfix-util.so.1
(0x40030000)
libdb3.so.3 => /usr/lib/libdb3.so.3 (0x4004e000)
libnsl.so.1 => /lib/libnsl.so.1
(0x400f6000)
libresolv.so.2 =>
/lib/libresolv.so.2 (0x4010a000)
libgdbm.so.1 =>
/usr/lib/libgdbm.so.1
(0x4011a000)
libc.so.6 =>
/lib/libc.so.6
(0x40120000)
libdl.so.2
=>
/lib/libdl.so.2
(0x4023d000)
/lib/ld-linux.so.2
=>
/lib/ld-linux.so.2
(0x40000000)


Esta es la salida de un postconf -n en la maquina:

postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
default_privs = nobody
mail_owner = postfix
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
maps_rbl_domains = relays.ordb.org        list.dsbl.org
blackholes.mail-abuse.org       dialups.mail-abuse.org
mydestination = nombre_maquina, localhost.localdomain, localhost,
$transport_maps
mydomain = midominio.loquesea
myhostname = mail.midominio.loquesea
mynetworks = 127.0.0.0/8, 192.168.1.0/24
myorigin = /etc/mailname
notify_classes = resource,software
program_directory = /usr/lib/postfix
recipient_delimiter = +
relayhost = 
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_mynetworks       reject_maps_rbl check_relay_domains
reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/postfix/cert.pem     smtpd_tls_key_file =
/etc/postfix/privkey.pem        smtpd_tls_loglevel = 9
smtpd_tls_received_header = yes        smtpd_tls_session_cache_timeout =
3600s       tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom
transport_maps = mysql:/etc/postfix/transport.cf
virtual_gid_maps = mysql:/etc/postfix/gids.cf
virtual_mailbox_base = /var/mail
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virt.cf
virtual_maps = mysql:/etc/postfix/virtual.cf
virtual_uid_maps = mysql:/etc/postfix/uids.cf


Este es el conjunto de enlaces que he visitado hasta llegar a todas
estas conclusiones:

http://small.dropbear.id.au/myscripts/postfixmysql.html
http://killyridols.net/postfixtlssmtpauth.shtml
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200310/msg01802.html
http://www.projektfarm.com/en/support/howto/postfix_smtp_auth_tls.html
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00960.html
http://libertonia.escomposlinux.org/story/2003/11/9/153832/272
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00960.html
http://perso.wanadoo.es/manel3/chuletas/I-postfix-auth
http://www.gentoo.org/doc/es/virt-mail-howto.xml
http://laurel.datsi.fi.upm.es/postfix/postfix.php
http://www.irbs.net/internet/cyrus-sasl/0309/0010.html
http://www.linuxparatodos.net/linux/15-1-como-postfix-sasl.php

http://bulma.net/impresion.phtml?nIdNoticia=1621
http://bulma.net/impresion.phtml?nIdNoticia=1938
http://www.wl0.org/htmlarchives/postfix-es/200303/msg00013.html
http://www.sendmail.org/%7eca/email/mel/SASL_ClientRef.html
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00962.html
http://bhami.com/rosetta.html
http://www.sweeney.demon.co.uk/pfix_imap_virtual.html
http://groups.google.es/groups?hl=es&lr=&ie=UTF-8&threadm=WmeVa.696829%24iM4.1133238%40telenews.teleline.es&rnum=9&prev=/groups%3Fq%3DPostfix%2B%2B%252BSASL%26hl%3Des%26lr%3D%26ie%3DUTF-8%26selm%3DWmeVa.696829%2524iM4.1133238%2540telenews.teleline.es%26rnum%3D9
http://groups.google.es/groups?hl=es&lr=&ie=UTF-8&threadm=rrhiv-tm1.ln1%40debian.fer.org&rnum=3&prev=/groups%3Fhl%3Des%26lr%3D%26ie%3DUTF-8%26selm%3Drrhiv-tm1.ln1%2540debian.fer.org%26rnum%3D3
https://listas.linux.org.ar/pipermail/lugar-conf/2003-May/016637.html
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200304/msg00962.html
http://groups.google.es/groups?hl=es&lr=lang_es&ie=UTF-8&oe=UTF-8&threadm=urftgvsmb10941dd4eeu6u2c2u80d6k2pm%404ax.com&rnum=1&prev=/groups%3Fq%3DSASL%2Bauthentication%2Bfailure:%2Bno%2Bsecret%2Bin%2Bdatabase%26hl%3Des%26lr%3Dlang_es%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3Durftgvsmb10941dd4eeu6u2c2u80d6k2pm%25404ax.com%26rnum%3D1

Muchas gracias.
-
Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO a ella.
.
Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
a majordomo en WL0.org para quitarte de la lista.



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