SASL est un daemon qui permet l’authentification smtp avec Postfix.
L’idée c’est : Postfix => SASL => PAM => MySQL

apt-get install sasl2-bin libsasl2-2 libsasl2-modules libsasl2-modules-sql libpam-mysql

on ajoute dans main.cf

nano  /etc/postfix/main.cf
# Support Authentification SASL
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_local_domain = $myhostname
smtpd_tls_auth_only = no
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_unauth_destination,
	reject_unauth_pipelining,
	reject_non_fqdn_hostname,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_invalid_hostname,
	reject_rbl_client list.dsbl.org,
	reject_rbl_client bl.spamcop.net,
	reject_rbl_client sbl-xbl.spamhaus.org

On rajoute ceci dans le fichier /etc/postfix/sasl/smtpd.conf, histoire que Postfix puisse communiquer avec SASL

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level: 5
allow_plaintext: true
password_format: crypt
auxprop_plugin: mysql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: votre_mot_de_passe
sql_database: postfix
sql_select: SELECT password FROM mailbox WHERE username = '%u'

On modifie le fichier /etc/default/saslauthd pour que SASL communique avec PAM :

START=yes
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

On supprime le répertoire /var/run/saslauthd et on crée un lien symbolique entre /var/spool/postfix/var/run/saslauthd et /var/run/saslauthd

rmdir /var/run/saslauthd/
ln -s /var/spool/postfix/var/run/saslauthd/ /var/run/

Il faut ensuite créer le fichier /etc/pam.d/smtp et mettre ceci dedans pour que PAM communique avec MySQL :

auth	required	pam_mysql.so host=127.0.0.1 user=postfix passwd=votre_mot_de_passe db=postfix table=mailbox usercolumn=name passwdcolumn=password crypt=1
account	sufficient	pam_mysql.so host=127.0.0.1 user=postfix passwd=votre_mot_de_passe db=postfix table=mailbox usercolumn=name passwdcolumn=password crypt=1

On rajoute l’utilisateur postfix au groupe sasl :

adduser postfix sasl

Enfin, on modifie le script de démarrage de Postfix pour qu’il tienne compte du fichier /etc/postfix/sasl/smtpd.conf :

nano /etc/init.d/postfix
FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
etc/nsswitch.conf etc/nss_mdns.config etc/postfix/sasl/smtpd.conf"

et on relance les services saslauthd et postfix

service saslauthd restart
service postfix restart

pour tester la connexion:

testsaslauthd -u fred@domaine.tld

Vous aimerez peut-être: