Table des matières

Installation de Postfix

Installation en mode «Site Internet».

Objectif

Par défaut, postfix réceptionne les messages concernant «mydestination» et les stocke au format «mailbox» orienté POP3. Nous préférons bien sûr le format «maildir» propre à IMAP. Potfix dispose de son propre LDA1), nous lui préférerons celui qui est proposé par Dovecot.

Première configuration

Modification du fichier ''/etc/aliases''.

Ce fichier permet à Postfix de rediriger les e-mails destinés à certains utilisateurs locaux (existants ou non) vers d'autres utilisateurs (locaux ou non, mais existant). Par défaut, ce fichier contient ceci:

# See man 5 aliases for format
postmaster:	root

«postmaster» est à-priori inexistant, mais est redirigé vers «root» et ce n'est pas une bonne idée d'attribuer une BAL à «root». Nous créons pour l'instant un utilisateur «admin» sans droits particuliers et modifions ce fichier /etc/aliases comme suit:

postmaster:	root
root:		admin

Tous les messages qui devraient directement ou non atterrir dans la BAL de «root» iront désormais dans celle de «admin», si l'on n'oublie pas de mettre à jour la base de sonnée /etc/aliases.db avec la commande :

newaliases 

Modifications du fichier ''/etc/postfix/main.cf'':

compatibility_level = 3.9
mydomain = home.nain-t.net
myorigin = $mydomain
smtpd_banner = $myhostname ESMTP $mail_name (Debian)
inet_protocols = all
mynetworks_style = host
mynetworks = 127.0.0.0/8 192.168.60.0/24 [::ffff:127.0.0.0]/104 [::1]/128 [2a01:e0a:875:b1d0::0]/64
mydestination = $myhostname, home.nain-t.net, localhost.home.nain-t.net, , localhost
mailbox_size_limit = 0
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
biff = no
recipient_delimiter = +
relayhost = 
cyrus_sasl_config_path = /etc/postfix/sasl
smtpd_tls_key_file = /etc/letsencrypt/live/home.nain-t.net/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/home.nain-t.net/fullchain.pem
smtpd_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.home.nain-t.net
inet_interfaces = all
home_mailbox = Maildir/

Protections diverses

L'authentification de l'émetteur

Lorsqu'un client doit poster un e-mail, son MUA est configuré pour utiliser un MTA. Typiquement celui proposé par son fournisseur d'accès. Lorsque le client est connecté par l'entremise de son FAI, il dispose d'une adresse qui fait partie des réseaux du FAI et ce dernier peut user de cette particularité pour autoriser le relai de ce message.

En revanche, le client nomade, qui est amené à se connecter au Net par divers autre moyens, ne disposera pas forcément d'une adresse IP appartenant à son FAI. Dans ce cas, plusieurs cas sont possibles:

  1. le client nomade utilise alors un «webmail» et s'authentifie via son adresse e-mail et son mot de passe,
  2. le client nomade modifie son MUA pour utiliser le MTA proposé par le FAI qui le connecte (solution de type «shadoks»2),
  3. le FAI habituel du client nomade a mis à sa disposition le port «submission» qui permet au client d'utiliser TLS pour s'authentifier auprès du MTA avec son mom d'utilisateur (ou son adresse mail) et son mot de passe. Postfix sait faire, en s'appuyant sur le serveur IMAP associé. C'est cette technique que nous mettrons en œuvre.

Les restrictions

Postfix propose une panoplie de restrictions applicables aux mails entrants:

La plus importante étant smtpd_recipient_restrictions qui définit les restrictions applicables sur le contenu de l'en-tête «RCPT TO:»

Les listes noires

(ou «blacklists») sont des listes de MX réputés arroseurs de spams proposées sur le Net. Postfix permet de tester lors d'un message entrant, s'il provient d'un de ces MX.

Cette méthode est à mettre en œuvre avec précautions. Certaines listes sont trop bloquantes et peuvent créer plus de problèmes qu'elles en résolvent. Nous allons utiliser les listes du projet «Spamhaus» et même si nous décidons d'utiliser d'autres méthodes de protection, il reste nécessaire de s'assurer que dans l'autre sens, nous éviterons les situations qui pourraient induire l'ajout de notre MX dans ces mêmes listes noires, car de très nombreux MX utilisent leurs services.

Éviter de s'y retrouver

Première mesure: Ne pas se retrouver en situation de relais ouvert (open-relay). Autrement dit configurer correctement Postfix pour qu'il n'accepte pas de relayer des messages émis pas des gens inconnus. Ceci est déjà en partie réalisé avec le paramètre mynetworks qui; comme son nom l'indique, ne s'intéresse qu'à l'adresse IP de l'émetteur. Ce n'est pas suffisant, une station dans le réseau contaminée par un virus quelconque peut être amené à poster en douce du spam «à gogo». De plus, un client nomade ne pourra pas utiliser notre MX s'il n'est pas connecté à l'un de nos réseaux. Il faudra trouver une astuce.

Deuxième mesure: Le RDNS (reverse DNS) devrait être systématiquement mis en place. Autrement dit, une recherche DNS sur l'adresse IP du serveur doit renvoyer son nom. Ceci induit deux choses:

  1. Le nom attribué au serveur MX doit être par un champ A (IPv4) ou AAAA (IPv6) et en aucun cas par un alias (champ CNAME);
  2. il faut être en mesure de paramétrer le RDNS, ce qui n'est pas toujours possible lorsque l'on passe par un F.A.I et que celui-ci ne propose pas de solution. Free par exemple ne propose qu'une solution pour l'unique IPv4 fournie et actuellement rien pour IPv6. Les zones de définition des champs «IN PTR» ne pouvant se trouver (si elles existent) que sur les DNS du pourvoyeur d'adresses IP et non chez le gestionnaire du nom de domaine.
  3. Au minimum configurer correctement SPF (Sender Policy Framework) autrement dit mettre en place un champ «TXT» sur le DNS du domaine permettant au MX du destinataire que l'émetteur a utilisé un MX dans le domaine de son adresse d'émetteur.

Les utiliser pour les mails entrants

Il est possible de créer ses propres listes noires, il est tout de même intéressant d'utiliser avec discernement des listes publiques. Le projet «spamhaus» faisant référence dans le domaine.

Les «milters»

Mot valise signifiant «Mail Filter» utilisent un protocole développé à l’origine par l’ancêtre Sendmail. Depuis sa version 3.2, Postfix a appris à utiliser cette méthode.

Par ce biais, il est désormais possible de greffer sur Postfix un filtre anti-spam (Spamassassin), un filtre anti-virus (Clamav)sans avoir à passer par les services du démon Amavis.

Rendre Postix plus «sérieux»

Le SMTP d'origine a été conçu pour le monde des bisounours. Porté dans le monde réel, il montre ses faiblesses en termes de sécurité, pouvant être détourné par un tas d'utilisations malveillantes.

Aussi a-t-il été ajouté quelques fonctions qui deviennent indispensables si l'on souhaite construire un MTA reconnu par ses pairs.

Il faudra voir comment mettre tout ceci en œuvre.

1)
Local Delivery Agent