Ce tutoriel a pour but de vous permettre d’installer rapidement un serveur SMTP par authentification se basant sur l’outil Postfix en configuration pour une distribution centos 6.

Installation de Postfix et de SASL sur CentOS :

# yum install postfix
# yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5

Occupons nous de la configuration, Ci dessous une configuration du modèle par default pour
/etc/postfix/main.cf :

# cat /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name

myhostname = example.tld
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = example.tld
mydestination = example.tld, localhost.localdomain, localhost
transport_maps =
relayhost =
mynetworks = 127.0.0.1/32
#mynetworks = hash:/etc/postfix/networks

smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = example.tld
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

recipient_delimiter = +
inet_interfaces = all

smtpd_recipient_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination,
        reject_rbl_client opm.blitzed.org,
        reject_rbl_client list.dsbl.org,
        reject_rbl_client sbl.spamhaus.org,
        reject_rbl_client cbl.abuseat.org,
        reject_rbl_client dul.dnsbl.sorbs.net

Utilisez smtpd_recipient_restrictions pour vous assurer que votre serveur ne soit pas en Open Relay n’acceptant pas ainsi les spams généraux. Cela permettra d’accepter les connexion sans authentification uniquement que depuis le localhost. En dehors de ce réseau, toutes les connexions se feront par authentification.

Nous allons maintenant relier le processus ( daemon ) Postfix avec celui de Sasl
Dans /etc/postfix/master.cf :

# cat /etc/postfix/master.cf
submission inet n       -       n       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=example.tld
  -o header_checks=
  -o body_checks=
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination
  -o smtpd_sasl_security_options=noanonymous,noplaintext
  -o smtpd_sasl_tls_security_options=noanonymous

Maintenant, nous allons ajouter un utilisateur à la base de donnée Sasl

# saslpasswd2 -c -u $hostname $user

Pour éviter tout problème, nous allons modifier les permissions de la base de donnée Sasl, autorisant ainsi Postfix à lire et écrire dans cette dernière.

# chown postfix:postfix /etc/sasldb2
# chmod 660 /etc/sasldb2

Configuration du daemon Sasl

 

# cat /usr/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
# cat /usr/lib/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5

Il ne nous reste plus qu’à redémarrer les processus Sasl et Postfix.

# /etc/init.d/sasld restart
# /etc/init.d/postfix restart

Prêt à être utilisé !

 

Afin de valider le fonctionnement, utilisez les comptes crées dans la base de donnée Sasl, en vérifiant les logs présents dans : /var/log/mailog.

Afin de le faire fonctionner sous Centos 7:

– le fichier SMTPD.CONF doit être crée dans “/etc/sasl2”.

– SYSTEMCTL doit utlisé pour gérer le service SASL : saslauthd.