Configurer postfix comme relais SMTP

Pour lutter contre le spam, en s’assurant que les ordinateurs de leurs clients victimes de malwares ne se transforment en robots envoyant massivement du spam, certains opérateurs bloquent les requêtes sortantes à destination d’un serveur SMTP non authentifié (port 25). Une mesure efficace pour l’utilisateur lambda, mais gênante pour l’utilisateur avancé qui souhaite héberger son propre serveur mail. La solution ? Mettre en place un relais SMTP authentifié.

C’est ce que je fait depuis quelques temps déjà, après avoir configuré postfix sur un de mes serveurs OVH, avec une authentification via SASL.

Prérequis

Pour commencer, il vous faudra un serveur sous Ubuntu Server 12.04 LTS, sur lequel vous êtes connecté avec une session root (ça évitera de coller un sudo devant chaque commande…).

La configuration est sans doute similaire sur d’autres distributions, mais pourra éventuellement nécessiter quelques adaptations.

Installation des paquets

La mise en place du relais va nécessiter l’installation de trois paquets et de leurs dépendance : postfix, sasl2-bin et libsasl2-modules.

Pour ce faire, apt-get est notre ami :

L’installation de postfix va vous demander quelques réglages mineurs. Sur le premier écran, sélectionnez « Internet Site » :

Installation de postfix

Sur le second écran, saisissez l’adresse de votre serveur mail. Comme il va être utilisé uniquement comme relais, ce paramètre n’a aucune importance :

Installation de postfix

Et voilà, tout le nécessaire est (déjà !) installé, il n’y a plus qu’à configurer 🙂

Configuration de SASL

L’authentification SASL va être gérée par le daemon saslauthd, avec une base d’identifiants sasldb. Quelques modifications s’imposent dans la configuration du daemon. Éditez le fichier /etc/default/saslauthd et cherchez les trois lignes suivantes (elles ne sont pas forcément consécutives) :

Remplacez les par :

La première ligne indique que le daemon saslauthd doit démarrer, la seconde lui indique qu’il doit utiliser une authentification via la base sasldb plutôt que via l’authentification PAM intégrée au système. La troisième permet de déplacer la socket de communication de saslauthd vers l’environnement chrooté de postfix.

Démarrez ensuite saslauthd :

Puis créez un compte utilisateur avec saslpasswd2 :

En remplaçant bien sûr domaine et utilisateur par les valeurs de votre choix. L’identifiant à utiliser pour la connexion sera alors utilisateur@domaine.

Configuration de postfix

Par défaut, le daemon SMTP de postfix n’écoute que sur le port 25. Pour remédier à ça, direction le fichier /etc/postfix/master.cf, dont les premières lignes doivent ressembler à peu près à ça :

Pour rajouter une écoute sur le port 587 (port par défaut pour le SMTP authentifié) avec authentification via SASL, retirez simplement le # au début de la ligne « submission« . Au passage, ajoutez un # au début de la ligne « smtp » si vous n’avez pas besoin que votre serveur puisse recevoir des mails entrants.

Si vous voulez utiliser un autre port, procédez de la même façon, mais remplacez le mot « submission » par le numéro de port à utiliser.

Dans les deux cas, assurez vous que la 4ème colonne contient bien un – ou un y, pour indiquer à postfix que son daemon SMTP doit tourner dans un environnement chrooté.

Il reste maintenant à configurer postfix pour qu’il utilise SASL. Pour commencer, ajoutez les cinq lignes suivantes à la fin du fichier /etc/postfix/main.cf :

La dernière ligne est particulièrement importante : c’est elle qui indique que toute connexion par un utilisateur non authentifié via SASL doit être rejetée.

Ensuite, créez le fichier /etc/postfix/sasl/smtpd.conf avec le contenu suivant, pour permettre la communication entre postfix et saslauthd :

On y est presque 🙂

Il ne reste plus que deux petites commandes à taper : une première pour ajouter l’utilisateur postfix au groupe sasl (ce qui permet à postfix d’interagir avec le daemon saslauthd), une seconde pour redémarrer postfix.

Configuration de votre serveur mail

La dernière étape est la configuration de votre serveur mail pour utiliser le relais. Cette configuration dépend du serveur que vous utilisez.

Vous pouvez bien sûr aussi utiliser votre serveur relais avec votre client mail favori, pour envoyer directement vos mails via le relais.

Une réflexion sur « Configurer postfix comme relais SMTP »

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.