Postfix est un logiciel libre et open-source populaire qui agit comme un agent de transfert de courrier (MTA). Le rôle de Postfix est d'acheminer et de distribuer les e-mails. Outre l'usage classique, Postfix peut également être configuré pour envoyer des e-mails uniquement via des applications locales.
Cette application de Postfix est une astuce utile à déployer dans diverses situations. Par exemple, elle peut être utilisée pour envoyer régulièrement des notifications par e-mail, travailler avec un fournisseur de services de messagerie tiers ayant un trafic sortant limité, etc. Par rapport à n'importe quel serveur SMTP complet, Postfix est une alternative plus légère qui conserve en même temps les fonctionnalités nécessaires.
Dans ce tutoriel, découvrez comment installer et configurer Postfix en tant que serveur SMTP d'envoi uniquement sur Ubuntu.
Prérequis
Pour suivre ce guide, vous devez remplir les prérequis suivants :
-
Vous devez disposer d'un serveur Ubuntu correctement configuré avec un accès à un utilisateur non-root avec privilèges sudo.
-
Vous avez également besoin d'un nom de domaine entièrement enregistré. Pour en savoir plus sur les noms de domaine, consultez notre article sur l'installation d'un certificat SSL à partir d'une autorité de certification commerciale.
-
Enfin, vous aurez besoin d'un enregistrement DNS avec le nom de domaine pointant vers l'adresse IP publique du serveur.
Installation de Postfix
Une fois les conditions préalables remplies, le serveur est prêt à déployer Postfix. La manière la plus simple d'installer Postfix est d'installer le paquet mailutils . Il est directement disponible depuis les dépôts officiels d'Ubuntu.
Tout d'abord, lancez un terminal et mettez à jour la base de données des paquets APT :
|
1 |
sudo apt update |

Ensuite, vous pouvez installer Postfix :
|
1 |
sudo apt install mailutils |

Pendant le processus d'installation, la fenêtre de configuration suivante s'affichera. L'option par défaut est Internet Site. Pour confirmer la sélection, appuyez sur TAB pour déplacer le curseur vers la section suivante. Ensuite, appuyez sur Enter:

L'étape suivante demandera le nom de messagerie du système (System mail name). Ce sera le nom attribué au serveur au moment de sa création. Comme décrit dans le script, si l'adresse e-mail de l'hôte local est « foo@example.org », alors le nom de messagerie du système sera example.org:

Notez que le script de configuration peut également être déclenché à tout moment ultérieurement à l'aide de la commande suivante :
|
1 |
sudo dpkg-reconfigure postfix |
Configuration de Postfix
À cette étape, Postfix sera configuré pour envoyer et recevoir des e-mails uniquement depuis localhost. Cela nécessite que Postfix écoute sur l'interface loopback. C'est l'interface réseau virtuelle que le serveur utilise pour la communication interne. Ensuite, ouvrez le fichier de configuration de Postfix à l'aide de l'éditeur de texte de votre choix :
|
1 |
sudo nano /etc/postfix/main.cf |
Modifiez la valeur de inet_interface par loopback-only:

Une autre directive que vous devez modifier est mydestination. Elle définit la liste des domaines qui sont distribués via le transport de distribution de courrier local_transport . La valeur par défaut ressemblera à ceci :

Modifiez sa valeur par la suivante :
|
1 |
mydestination = localhost.$mydomain, localhost, $myhostname |

Si votre domaine est en réalité un sous-domaine et que vous souhaitez que les e-mails semblent provenir du domaine principal, ajoutez la directive suivante à la fin de la configuration de Postfix. Cela supprimera le sous-domaine de l'adresse e-mail :
|
1 |
masquerade_domains = <main_domain> |

Pour que les modifications prennent effet, redémarrez Postfix :
|
1 |
sudo systemctl restart postfix |
Test du serveur SMTP
En supposant que le processus de configuration s'est déroulé avec succès, il est temps de le tester. Pour ce faire, vérifiez si Postfix peut envoyer un e-mail à un compte de messagerie externe à l'aide de la commande mail. Elle fait partie du paquet mailutils :
|
1 |
echo "Corps de l'e-mail de test" | mail -s "Sujet de l'e-mail" <email_address> |
Le message devrait arriver à l'adresse e-mail spécifiée. À ce stade, tous les e-mails envoyés ne sont pas chiffrés. Les fournisseurs de services classeront généralement ces e-mails comme spam, veillez donc à vérifier la section spam pour l'arrivée de l'e-mail.
Si la commande mail signale une erreur ou si l'e-mail n'est pas arrivé après une période prolongée, vérifiez à nouveau la configuration de Postfix et assurez-vous que le nom du serveur et le nom d'hôte sont correctement définis. Avec cette configuration, les e-mails sembleront être envoyés depuis l'adresse suivante :
|
1 |
<username>@<domain> |
Ici, le nom d'utilisateur sera le nom d'utilisateur de l'utilisateur du serveur qui a exécuté la commande mail.
Redirection des e-mails système
Nous avons vérifié avec succès que le serveur de messagerie est correctement configuré et fonctionnel. Maintenant, il doit être configuré pour rediriger les e-mails pour root. Tous les messages générés par le système envoyés au serveur seront redirigés vers une adresse e-mail externe. Pour les destinataires d'e-mails, le fichier /etc/aliases contient la liste des noms alternatifs. Ouvrez-le en utilisant l'éditeur de texte de votre choix :
|
1 |
sudo nano /etc/aliases |
Par défaut, il ressemblera à ceci :

À la fin du fichier, ajoutez la ligne suivante :
|
1 |
root: <adresse_email> |

Cela indique que les e-mails envoyés à root seront redirigés vers une adresse e-mail. Pour que la modification prenne effet, exécutez la commande suivante. Elle reconstruira la base de données d'alias que la commande mail utilise :
|
1 |
sudo newaliases |
![]()
Ensuite, vous devez tester si la modification a réussi. Envoyez un e-mail de test à root:
|
1 |
echo "Corps de l'e-mail de test root" | mail -s "Ligne d'objet" root |
L'e-mail devrait arriver à l'adresse e-mail spécifiée. N'oubliez pas de vérifier le dossier spam car aucun chiffrement n'est encore configuré.
Activation du chiffrement SMTP
L'envoi d'e-mails au format non chiffré est une démarche risquée. Pour garantir la sécurité, il est nécessaire d'activer le chiffrement SMTP. Pour y parvenir, nous allons demander un certificat TLS gratuit auprès de Let’s Encrypt pour votre domaine.
Pour Ubuntu, c'est l'outil Certbot qui fait le travail. Heureusement, il est directement disponible dans le dépôt officiel d'Ubuntu. Installez Certbot avec la commande suivante :
|
1 |
sudo apt install certbot |

En supposant que le serveur dispose d'UFW configuré, il est nécessaire d'avoir le port 80 ouvert afin que la vérification du domaine puisse avoir lieu. Exécutez la commande suivante pour l'activer :
|
1 |
sudo ufw allow 80 |

Maintenant, exécutez Certbot pour générer un certificat. Cela ordonne à Certbot de délivrer des certificats avec une clé RSA de 4096 bits. La vérification aura lieu via le port 80 (HTTP) :
|
1 |
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d <domain> |
La sortie ressemblera à ceci :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Sauvegarde du journal de débogage dans /var/log/letsencrypt/letsencrypt.log Plugins sélectionnés: Authentificateur standalone, Installateur None Obtention d'un nouveau certificat Exécution des défis suivants: http-01 défi pour '<domain>' Attente de vérification... Nettoyage des défis IMPORTANT NOTES: - Félicitations! Votre certificat et chaîne ont été enregistrés à: /etc/letsencrypt/live/<domaine>/fullchain.pem Votre clé fichier a été enregistré à: /etc/letsencrypt/live/<domaine>/privkey.pem Votre certificat va expirer le 2020-07-11. Pour obtenir une nouvelle ou modifiée version de ce certificat dans le futur, simplement exécutez certbot à nouveau. Pour non-interactivement renouveler *tous* de vos certificats, exécutez "certbot renew" - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en: faisant un don à ISRG / Let's Encrypt: https://letsencrypt.org/donate faisant un don à EFF: https://eff.org/donate-le |
La clé sera stockée dans le répertoire suivant :
|
1 |
/etc/letsencrypt/live/<domaine> |
Maintenant que votre certificat est généré, ouvrez le fichier de configuration de Postfix dans un éditeur de texte :
|
1 |
sudo nano /etc/postfix/main.cf |
Trouvez la section TLS paramètres:

Après cela, modifiez la valeur des directives smtpd_tls_cert_file et smtpd_tls_key_file:

Ensuite, enregistrez et fermez le fichier. Pour que les modifications prennent effet, redémarrez Postfix :
|
1 |
sudo systemctl restart postfix |
Enfin, envoyez à nouveau un e-mail fictif à une adresse e-mail cible :
|
1 |
echo "Ceci est le corps de l'e-mail" | mail -s "Sujet de l'e-mail" <email> |
L'e-mail devrait maintenant apparaître normalement comme les autres e-mails. Si vous vérifiez les informations techniques de l'e-mail, il apparaîtra comme chiffré.
Dernières réflexions
Félicitations ! Vous avez configuré avec succès un serveur de messagerie d'envoi uniquement, propulsé par Postfix. Les transactions d'e-mails sont également sécurisées à l'aide d'une clé de chiffrement appropriée.
Pour découvrir d'autres moyens d'optimiser le transfert d'e-mails, consultez ce tutoriel Les meilleures façons d'utiliser le serveur SMTP de Google.
Bonne informatique !
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.