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 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='[EMAIL PROTECTED]' 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='[EMAIL PROTECTED]' 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='[EMAIL PROTECTED]' 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
------<><><><><><><>------

Responder a