En ayant marre de devoir reconfigurer mon client de messagerie a chaque fois que je transporte mon portable dans un réseau autre que le mien. En effet, comme tout serveur de messagerie bien configuré qui soit, j'ai bien évidemment interdit l'envoi de mail depuis un réseau autre que le mien afin d'éviter d'en faire un Open Relay pour les Spammeurs !

Afin de contourner ce problème il est possible d'envoyer des mails depuis l'extérieur, sous réserve d'avoir configuré Postfix afin de s'authentifier avant l'envoi du message. Pour cela, plusieurs méthodes existent.. j'ai pour ma part opté pour les librairies SASL

Installation

Ayant déjà un serveur postfix opérationnel, je n'ai eu qu''à installer les librairies et utilitaires SASL Ceci se fait de façon très simple sous debian :

apt-get install  libsasl2 libauthen-sasl-cyrus-perl sasl2-bin postfix-tls libsasl2-modules

Configuration et mise en oeuvre

La partie configuration est un peu plus complexe.. il faut veiller à bien faire les choses dans l'ordre !

Configuration du démon saslauthd

Le fichier **/etc/default/saslauthd** est renseigné de la manière suivante si l'on souhaite utiliser le fichier shadow pour l'authentification. L'ensemble des mécanismes disponibles est donné par la commande suivante :

root@liberty:~# saslauthd -v
saslauthd 2.1.19
authentication mechanisms: sasldb getpwent kerberos4 kerberos5 pam rimap shadow ldap
  • Le fichier /etc/default/saslauthd
# This needs to be uncommented before saslauthd will be run automatically
START=yes
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="shadow"
PARAMS="-r -m /var/spool/postfix/var/run/saslauthd"

Le répertoire /var/spool/postfix/var/run/saslauthd est créé avec les permissions qui vont bien :

mkdir -p /var/spool/postfix/var/run/saslauthd
chown postfix:sasl /var/spool/postfix/var/run/saslauthd

Cela permettra à Postfix de se connecter au démon.

Enfin le démon est démarré :

/etc/init.d/saslauthd start
Configuration de Postfix

Deux fichiers sont à prendre en compte :

On ajoute tout d'abord les ligne qui suivent au fichier /etc/postfix/main.cf :

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,
   permit_mynetworks,
   reject_unauth_destination

Puis le fichier /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login

La configuration est rechargée :

postfix reload

Normalement tout est bon côté serveur, il ne reste plus qu'à configurer le client de messagerie. Pour ce faire, je prendrai le cas concret de celui que j'utilise quotidiennement, à savoir le fabuleux Thunderbird. Les configuration des autres logiciels du marché ne devrait pas beaucoup différer...!

Mise en oeuvre sur le client

Dans la boîte de configuration des comptes (menu Outils/Paramètre des Comptes), il suffit de sélectionner le serveur smtp et de renseigner le nom d'utilisateur avec celui qui correspond à votre adresse (c'est fait automatiquement à la création du premier compte) Il faudra juste le modifier si cela n'est pas juste.

Configuration

Lors de l'envoi du premier mail, une boîte de dialogue apparaît pour que vous saisissiez le mot de passe du compte. Si vous ne sauvegardez pas le mot de passe, celui sera à resaisir à chaque envoi de mail.

Authentification

Voilà, maintenant, il ne me reste plus qu'à tester si ça marche depuis l'extérieur... Je corrigerai les erreurs si nécessaire ! ;-)