BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Postfix + SASL + MySQL

MaX

Holas :-P

He montado este "trío" siguiendo un artículo de BulmaLUG (le falta una cosilla creo, pero ya se lo comentaré al autor).
Basicamente, es un Postfix validado sobre MySQL a traves de SASL :-)

Bueno el tema (a ver si hay alguien que lo haya hecho tambien) es que las contraseñas tienen que ir en claro en MySQL... y como os imaginareis no me hace mucha gracia.

Lo unico que he encontrado en google, es gente que validad el SMTP sobre sasldb2 con las contraseñas cifradas (en vez de MySQL) y el POP/IMAP sobre MySQL. Yo quiero todo sobre MySQL (y contraseñas cifradas claro).
No me digais que mire en la pagina de Postfix, porque no hay lo que busco :-)

¿Alguien lo ha montado de esa manera?

Saludos.

PD: Doc. en proceso sobre esto, y sobre ProFTPD validado en MySQL tambien :)

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
MaX

He leido que hay 2 opciones:

a) Con SASL1 (que no es mi caso) no hay mas remedio que usar PAM por medio.
b) Con SASL2 (que si es mi caso) o uso PAM o aplicoeste o este parche.

MaX

Lo que me respondieron en las ñus: (pasteo)

---------------------------------------------------------------------
Yo lo tengo funcionando pero con el método PAM en vez de con
AUXPROP (necesitas el paquete libpam-mysql, o al menos llamado asi en
debian).

router:~# cat /etc/postfix/sasl/smtpd.conf
pwcheck_method: PAM

router:~# cat /etc/pam.d/smtp
# smtp

auth optional pam_mysql.so host=localhost db=mail user=admin \
passwd=adminpass table=postfix_users usercolumn=email
passwdcolumn=crypt crypt=1
account required pam_mysql.so host=localhost db=mail user=admin \
passwd=adminpass table=postfix_users
usercolumn=email passwdcolumn=crypt crypt=1

El método de cifrado puede ser:

crypt(0) -- Used to decide to use MySQL's PASSWORD() function or
crypt()
0 = No encryption. Passwords in database in plaintext. NOT
recommended!
1 = Use crypt
2 = Use MySQL PASSWORD() function

Para introducir los datos con (1) debes usar la función
encrypt('pass') (llama a la función del sistema crypt()). y para usar
la (2) pues password('pass') (función propia de mysql, q en la
documentación sólo recomiendan para almacenar las contraseñas de
acceso a la propia base de datos, y no para almacenar otras
contraseñas).

Siento no poder ayudarte con el auxprop, pero es que a mi también
se me quedaba grande. De todas formas, si encuentras la manera te
agradecería q la compartieses, porq me preocupa el tema :P

Y una duda... hay alguna manera de cifrar el passwd en los logs del
mysql? Es decir... /var/log/mysql.log almacena todas las consultas
realizadas, apareciendo de la forma:

408 Query select id from users where id='usuario@prueba.es' and
password=PASSWORD('qwerty')

, donde se puede ver claramente que la contraseña es "qwerty".
Quizás esté pecando de paranoico, pero... no hay manera de aparezca ya
cifrada?? (password='SDXCJSJSD867643').

Un saludo!!!
--------------------------------------------------------------------