[Postfix-es] Problemas en la configuracion con My-SQL

Daniel Firvida daniel.firvida en hispalinux.es
Jue Feb 2 12:28:37 CET 2006


Hola a todos

Bueno el "problema" que tengo consiste en la autenticacion contra MySQL no funciona todo lo bien que debiera.. he probado distintas configuraciones que ahora os detallo pero no consigo dar con una que cumpla todos los requisitos que quiero.. el caso es que tiene que fallar alguna cosa pequeña.. y no consigo dar con la "tecla" correcta para que todo funcione como deseo

Despues de leer un monton de manuales de todo tipo con cada uno una configuracion de su madre y de su padre, y muchos desactualizados, de googlear un monton y de utilizar la tecnica de prueba error (la que mejor resultado da siempre).. he conseguido montarme mi propia.."ensalada de correo" y mis conclusiones y mi problema son los siguientes

El sistema de autenticacion contra MySQL que uso.. con tanto batiburrillo de manual y demas ya no se si es SASL, cyrus–sasl, SASL2, PAM, o su puta madre.. tanto lio para hacer una conexion de mierda a una BBDD... los temas de versiones y demas.. no creo que apliquen mucho.. decir eso si que uso Debian y que el sistema montado es Postfix con MySQL y Courier como servidor POP

Con esta configuracion he conseguido que la autenticacion contra MySQL funcione, que lea correctamente la contraseña del campo cifrado de la BBDD pero no que machee correctamente el campo smtpacces (valores 'Y','N')

la conf de main.cf... no creo que falle por ahi.. de todas maneras la parte que aplica.. 

smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =  $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_sasl_authenticated_header = yes

los.. virtual_mailbox_maps.cf ...

user=mail
password=xxx
dbname=mail
hosts=localhost
table=users
where_field=address
select_field=maildir

el fichero.. /etc/default/saslauthd

START=yes
MECHANISMS="pam"

y la madre de todas las madres.../etc/postfix/sasl/smtpd.conf

mysql_user: mail
mysql_passwd: xxx
mysql_hostnames: localhost
mysql_database: mail
mysql_statement: SELECT crypt FROM users WHERE address='%u@%r' AND  smtpaccess='Y'
pwcheck_method: saslauthd
saslauthd_path: /var/run/saslauthd/mux

Asi, funciona todo correctamente... excepto que se pasa completamente por alto la restriccion que le quiero poner de " AND  smtpaccess='Y' " .. da igual el valor que tenga en la BBDD.. SIEMPRE admite el envio de email..

He intentado hacer que funcione de otra manera.. en el fichero virtual_mailbox_maps.cf añadiendo " additional_conditions = AND smtpaccess = 'Y' " y nada... pasa de mi completamente..

Googleando.. encontre otra manera de hacerlo..

Modificando el fichero.. /etc/postfix/sasl/smtpd.conf

pwcheck_method:auxprop
auxprop_plugin: sql
mech_list: plain login digest-md5 cram-md5
sql_engine: mysql
sql_hostnames: localhost
sql_user: mail
sql_passwd: xxx
sql_database: mail
sql_select: select clear from users where address='%u@%r' and smtpaccess='Y'

Ahora todo funciona correctamente.. la restriccion de que el campo smtpaccess tenga el valor Y en BBDD para poder enviar mails se cumple perfectamente.. pero si os fijais.. valida la contraseña del usuario con el campo clear.. la contraseña en claro.. y quiero que lo haga con el campo de la BBDD crypt que contiene la contraseña cifrada.. se que soy muy quisquilloso.. pero intento darle el maximo posible de seguridad

Bien.. pues no he conseguido que valide contra crypt.. he intentado modificar un monton de cosas.. y nada nunca funciona
El log del error con esta configuracion es

Feb  2 20:57:24 localhost postfix/smtpd[1185]: TLS connection established from unknown[172.50.10.19]: SSLv2 with cipher DES-CBC3-MD5 (168/168 bits)
Feb  2 20:57:24 localhost postfix/smtpd[1185]: warning: unknown[172.50.10.19]: SASL LOGIN authentication failed
Feb  2 20:57:24 localhost postfix/smtpd[1185]: warning: Read failed in network_biopair_interop with errno=0: num_read=0, want_read=2
Feb  2 20:57:24 localhost postfix/smtpd[1185]: lost connection after AUTH from unknown[172.50.10.19]
Feb  2 20:57:24 localhost postfix/smtpd[1185]: disconnect from unknown[172.50.10.19]

Googleando tambien encontre otra configuracion un poco distinta en ese mismo fichero.. 

pwcheck_method: auxprop
auxprop_plugin: mysql
mysql_user: mail
mysql_passwd: xxx
mysql_hostnames: localhost
mysql_database: mail
mysql_statement: select clear from users where address='%u@%r' and smtpaccess='Y'

Y con esta configuracion.. ya ni consigo que funcione con el campo clear de la BBDD.. no se que diferencia tiene con la anterior que he puesto.. pero no funciona.. y el log, es el mismo.. 

No se si me falta por poner alguna informacion para que me ayudeis.. o necesitais algo mas para saber que puede faltarme, cualquier cosa pues me decis y os digo lo que tengo puesto

Un saludo y muchas gracias de antemano.
------<><><><><><><>------
Daniel Firvida
Linux user #279011
------<><><><><><><>------


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