Postfix
📬

Postfix

Le but est de configurer postfix comme serveur SMTP local pour envoyer des mails vers l’extérieur.

🔩 Installation

sudo apt-get update
# choix - internet puis fqdn sciences-physiques.net pour moi
sudo apt-get install postfix -y
sudo apt install mailutils

🛠 Configuration

  • Attention il est INDISPENSABLE pour avoir un score de 10/10 sur mail-tester et ne pas se faire jeter par Google d’avoir un reverse DNS configuré sur votre hostname !
  • Ici l’adresse IP de mon serveur pointe vers mail.sciences-physiques.net
  • Il faut aussi ouvrir une zone de type A dans votre configuration DNS
sudo postconf -e "myhostname = mail.sciences-physiques.net"
sudo postconf -e "mydomain = sciences-physiques.net"
sudo postconf -e "smtp_tls_security_level = may"
sudo postconf -e "smtp_tls_loglevel = 1"
sudo postconf -e "inet_protocols = ipv4"
  • Vérification
postconf mydomain
  • Configuration de /etc/mailname
echo "sciences-physiques.net" | sudo tee /etc/mailname
sudo nano /etc/postfix/main.cf

---> inet_interfaces = loopback-only
---> mydestination = localhost.$mydomain, localhost, $myhostname
---> append_dot_mydomain = yes

sudo systemctl restart postfix
  • Tester le fonctionnement du serveur en envoyant un mail
Test

echo "Bonjour" | mail -s "C'est un test" destinataire@adres.se -aFrom:expediteur@adres.se
  • Sinon lire le log
sudo tail /var/log/mail.log
  • Obtenir un certificat SSL pour sécuriser les connexions entre serveur SMTP (et ne pas se faire jeter)
sudo certbot certonly --standalone -d sciences-physiques.net

🔐 OpenDkim

  • Installation des outils
sudo apt-get install opendkim opendkim-tools -y
sudo adduser postfix opendkim
  • Procéder aux changements suivants
sudo nano /etc/opendkim.conf
Canonicalization     relaxed/simple
Mode                 s
SubDomains           no
# Map domains in From addresses to keys used to sign messages
KeyTable           refile:/etc/opendkim/key.table
SigningTable       refile:/etc/opendkim/signing.table
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod go-rw /etc/opendkim/keys
  • Ajout des tables pour mon nom de domain
sudo nano /etc/opendkim/signing.table
*@sciences-physiques.net     sendonly._domainkey.sciences-physiques.net
  • Création des tables
sudo nano /etc/opendkim/key.table
sendonly._domainkey.sciences-physiques.net    sciences-physiques.net:sendonly:/etc/opendkim/keys/sciences-physiques.net/sendonly.private
  • Création des clés
sudo nano /etc/opendkim/trusted.hosts
127.0.0.1
localhost

*.sciences-physiques.net
sudo mkdir /etc/opendkim/keys/sciences-physiques.net
sudo opendkim-genkey -b 2048 -d sciences-physiques.net -D /etc/opendkim/keys/sciences-physiques.net -s sendonly -v
sudo chown opendkim:opendkim /etc/opendkim/keys/sciences-physiques.net/sendonly.private
  • Afficher la clé
sudo cat /etc/opendkim/keys/sciences-physiques.net/sendonly.txt
  • Tester le fonctionnement de la clé avant ajout dans la bonne zone DNS
sudo opendkim-testkey -d sciences-physiques.net -s sendonly -vvv

🔗 Faire le lien avec Postfix

sudo nano /etc/opendkim.conf
  • Remplacer

Socket local:/var/run/postfix/opendkim/opendkim.sock par

Socket local:/var/spool/postfix/opendkim/opendkim.sock

  • Modification des autorisations
sudo mkdir /var/spool/postfix/opendkim
sudo chown opendkim:postfix /var/spool/postfix/opendkim
  • Si vous ne trouvez pas la ligne suivante dans le fichier /etc/default/opendkim
SOCKET="local:/var/run/opendkim/opendkim.sock"
# ou
SOCKET=local:$RUNDIR/opendkim.sock
  • Changer par
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"
  • Configuration de postfix
sudo nano /etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

🔑 Créer une zone SPF dans les DNS

⚠️

Le SPF (Sender Policy Framework) est un système de validation par courrier électronique pour empêcher les spammeurs d’envoyer des messages au nom de votre domaine. Avec le SPF, une organisation peut publier des serveurs de messagerie autorisés.

TXT  @   v=spf1 mx ip4:xxx.xxx.xxx.xxx ip6:xxxx:xxxx::xxxx:xxxx:xxxx:xxxx ~all

💣 Créer une zone DMARC dans les DNS

⚠️

DMARC est un protocole ouvert d’authentification du courrier électronique qui assure la protection du canal de courrier électronique au niveau du domaine. L’authentification DMARC détecte et empêche les techniques d’usurpation de courrier électronique utilisées dans le phishing, la compromission du courrier électronique professionnel (BEC) et d’autres attaques basées sur le courrier électronique. S’appuyant sur les normes existantes, SPF et DKIM, DMARC est la première et la seule technologie largement déployée qui peut rendre l’en-tête “from” domain fiable. Le propriétaire du domaine peut publier un enregistrement DMARC dans le système de noms de domaine (DNS) et créer une politique pour dire aux destinataires ce qu’ils doivent faire des courriels dont l’authentification échoue.

v=DMARC1; p=reject; rua=; ruf=; fo=1; pct=100; adkim=s; aspf=s

🧪 Tester sur Mail-Tester

image