Anthonix.fr – High Tech/Informatique : Tutoriels & actualité, insolite, geek !
22Nov/094

Tutoriel – Mise en place serveur SMTP (exim4) en ayant comme FAI orange

Dans ce tuto, nous allons voir comment mettre en place un serveur smtp (exim4 dans notre cas) + serveur DNS (bind9) pour pouvoir envoyer des mails depuis votre "domaine".

Problématique : Mon fournisseur d'accès à Internet (FAI) est orange et je souhaite envoyer des mails depuis mon serveur (situé sur mon LAN biensûr) afin de m'envoyer des notifications de certains programmes via une adresse du genre "webmaster@mondomaine.com".

Premier cas : DNS par défaut + exim4

Pour ceci rien de très compliqué :

  • Installer exim4

apt-get update && apt-get install exim4 exim4-base exim4-config exim4-daemon-light

  • Configurer celui ci

nano /etc/exim4/update-exim4.conf.conf # et remplir comme suit :

dc_eximconfig_configtype='smarthost' # Type de configuration
dc_other_hostnames=''
dc_local_interfaces='' # interface (IP de celle ci) sur lequel exim4 écoutera, si vous n'avez qu'une interface réseau, vous pouvez laisser vide
dc_readhost='foo.bar' # votre nom de domaine qui servira pour vos mails (exemple : blah@foo.bar)
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='192.168.0.0/24' # Le réseau qui sera autorisé à se connecter au serveur (dans notre cas, le réseau local)
dc_smarthost='smtp.orange.fr' # Le serveur smtp qui va être utilisé en tant que relais
dc_use_split_config='false'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

  • Il ne nous reste plus qu'à tester en envoyant un mail :

mail votremail@mail.com
Subject : bonjour
test
.
Cc:
$

  • Votre mail est maintenant envoyé... pour vérifier l'envoi :

tail /var/log/exim4/mainlog

2009-11-22 01:15:01 message <= user@foo.bar U=user P=local S=549
2009-11-22 01:15:02 message => user@foo.bar R=smarthost T=remote_smtp_smarthost H=smtp.foo.bar [80.xx.xx.xx]
2009-11-22 01:15:02 message Completed

  • Inutile de mettre en place l'authentification étant donné que ce serveur ne sera utilisé que par des machines du réseau local.

Second cas : DNS personnalisé + exim4

En tant que DNS, nous utilisons dans ce cas notre serveur DNS bind9, donc nous allons devoir faire quelques changement dans la configuration de exim4. À noter que seul la partie liée à notre problème sera configurée dans le dns, le reste étant considéré comme configurer (un tutoriel sera en place dans les moments qui viennent pour la configuration de bind9).

  • Dans un premier lieu, on va essayer d'envoyer un mail avec la configuration précédente en prenant soin de modifier le DNS primaire dans /etc/resolv.conf en spécifiant l'adresse du serveur BIND9.
  • Après, essayons d'envoyer un mail et regardons les logs :

2009-11-21 07:39:56 message ** user@foo.bar R=smarthost T=remote_s
mtp_smarthost: SMTP error from remote mail server after RCPT TO:<user@foo.bar>: host smtp.orange.fr [193.**.**.**]: 554 5.7.1 <user@foo.bar>: Recipient address rejected: Missing Authentication

Soit ça fonctionne, et vous pouvez donc vous arrêter là. Soit une erreur d'authentification apparait (ce qui s'est passé dans mon cas) et vous pouvez lire la suite afin de résoudre le problème.

À savoir que l'utilisation du smtp chez orange est filtrée par IPs et non par login/password.

En jetant un oeil sur les logs du mail qui a été envoyé en utilisant le DNS de la livebox, nous remarquons que l'ip du smtp (H=smtp.foo.bar [80.xx.xx.xx]) n'est pas la même que celle attribuée par notre serveur smtp locale via le DNS BIND9 (host smtp.orange.fr [193.**.**.**]).

Pour palier à ce problème, j'ai trouvé la solution, il suffit de faire pointer un champ MX sur la première IP (celle avec qui l'envoi de mail fonctionné).

  • Rendez vous donc dans votre /etc/bind/db.foo.bar et ajouter la ligne suivante

IN MX 10 smtp
smtp IN A 80.xx.xx.xx # IP à remplacer par celle avec qui l'envoi du mail fonctionné.

Maintenant, vous n'avez plus qu'à modifier dans /etc/exim4/update-exim4.conf.conf le relais smtp par smtp.foo.bar et envoyer un mail.

Tout devrait bien se passer.

Félicitation, vous savez maintenant envoyer un mail avec domaine personnalisé depuis chez vous en étant abonné chez orange 🙂

Trucs et astuces:

  • exim -bpc : vous donne le nombre de mails en attente d'envois
  • exim -qff : vous envois les mails en attentes
  • Si vous ne voulez pas recevoir de mail de cron, vous devez simplement ajouter "> /dev/null" à la fin de votre commande dans votre session crontab.

Posted by antho