Configuration de sendmail

Présentation

Le programme sendmail est un MTA (Mail Transport Agent). Il a la charge de recevoir le courrier en provenance de l'extérieur pour le distribuer aux utilisateurs locaux ou le renvoyer vers le destinataire. Il a également la charge de récupérer les mails à envoyer et de se charger de leur acheminement.

Sa configuration passe le fichier /etc/mail/sendmail.cf. Ce dernier étant particulièrement difficile à manipuler, les administrateurs passent généralement par une version simplifiée rédigée à l'aide de macros M4 (/etc/mail/sendmail.mc). M4 est un langage de macros comparable (mais bien plus puissant) au pré-processeur du langage C.

Envoyer et recevoir des mails en local sur les clients

  • Placez-vous sur un client.
  • Commencez par vérifier la présence de Sendmail :
    # stop firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    
    dnf -y install sendmail sendmail-cf mailx
    systemctl restart sendmail
    systemctl enable sendmail
    
  • A ce stade, vous devez être capable d'envoyer et de recevoir des mails entre utilisateurs locaux de la machine. Pour tester cette fonction, le plus simple est d'utiliser la commande mail :
    mail -v -s "mon sujet" utilisateur
    
  • Vous pouvez lister les mails en partance avec la commande mailq (ils sont dans /var/spool/mqueue).

Les mails sur le réseau privé interne

Vous allez maintenant échanger des mails entre deux machines du réseau privé interne (nos clients clientX.idl.fr). Pour que sendmail accepte les mails en provenance d'une autre machine, vous devez changer la configuration par défaut (sur deux postes clients) :

  1. ouvrez /etc/mail/sendmail.mc,
  2. repérez la ligne à modifier et modifiez là ! (clause DAEMON_OPTIONS),
  3. recalculez le fichier sendmail.cf avec
    make -C /etc/mail
    
  4. redemarrez le service sendmail

Vous devez maintenant être capable d'échanger des mails entre machines du réseau privé. Vous pouvez suivre le trafic dans les fichiers de trace (/var/log/maillog).

Les mails vers le serveur

  • Configurez également sendmail sur le serveur.
  • Normalement, à ce stade, l'envoi de message d'un client vers le serveur ne fonctionne pas (le serveur ne sait pas qu'il s'appelle srv.idl.fr).
  • Ajoutez au fichier /etc/mail/local-host-names le nom du serveur srv.idl.fr et redémarrez le service sendmail. L'envoi de mail des clients vers le serveur doit fonctionner.

Les mails depuis le serveur

Le serveur n'est toujours pas capable d'envoyer des messages vers les clients (à vérifier). Pour ce faire, nous allons changer le nom du serveur et ajouter le serveur de noms que nous avons configuré à l'étape précédente.

  • Avec la commande nmtui, changez le nom du serveur en srv.idl.fr.
  • Avec la même commande, modifiez la connexion vers le réseau privé et ajoutez le serveur de nom 127.0.0.1 (le serveur DNSMASQ qui tourne sur VM).
  • Redémarrez votre poste VM.
  • Le nom doit être correct (commande hostname),
  • Dans /etc/resolv.conf vous devez trouver les deux serveurs de noms.
  • dig client1.idl.fr doit fonctionner
  • L'envoi de mail du serveur vers les clients doit fonctionner.

Ajouter des aliases

Le fichier /etc/aliases permet de mettre en place des alias (surnom) dans la gestion des courriers électroniques. Ajoutez des alias à ce fichier (il est très souvent dejà rempli) et informez sendmail avec la commande newaliases. Vous pouvez maintenant les utiliser dans des adresses de destination.