Configuration de Postfix sur Ubuntu 24.04
Guide détaillé pour recevoir tous les mails et restreindre l'envoi local
Highlights
- Réception globale des mails : Configurez Postfix pour accepter les e-mails destinés à tous vos domaines en indiquant correctement les options mydestination et inet_interfaces.
- Envoi limité au serveur local : Restreignez l'envoi des e-mails aux processus locaux grâce aux options mynetworks, smtpd_relay_restrictions et smtpd_recipient_restrictions.
- Empêcher le relais : Désactivez le relais en configurant relay_domains de manière à ce que seuls les mails provenant du serveur soient envoyés.
Introduction
Postfix est un agent de transfert de courriel (MTA) puissant et flexible qui est souvent utilisé sur Ubuntu pour gérer l'envoi et la réception de courriels. Dans le contexte de l'administration système, il est souvent nécessaire de configurer Postfix pour qu'il reçoive tous les e-mails pour un ou plusieurs domaines, tout en empêchant toute utilisation abusive en n’autorisant l'émission de courriels qu’à partir du serveur local. Cette configuration limite les risques de relais non autorisé et permet de conserver un contrôle strict sur les communications par e-mail.
Le principe fondamental ici est de s'assurer que le serveur puisse recevoir les e-mails envoyés à tous les domaines configurés sans servir de relais externe, ce qui pourrait être exploité pour l’envoi massif de spam. Nous allons détailler la configuration de Postfix sur Ubuntu 24.04 en abordant à la fois la réception d’emails et la restriction d’envoi aux seuls processus locaux.
Étapes de configuration détaillées
1. Mise à jour du système et installation de Postfix
Avant de procéder aux modifications de configuration, il est impératif de mettre à jour votre système pour vous assurer que vous disposez des dernières mises à jour de sécurité et des paquets. Utilisez les commandes suivantes :
# Mettre à jour la liste des paquets et le système
sudo apt update && sudo apt upgrade -y
# Installation de Postfix
sudo apt install postfix -y
Durant l'installation de Postfix, il vous sera demandé de choisir un type de configuration. Choisissez « Internet Site » et renseignez votre nom de domaine ou le nom d'hôte qui servira d'identifiant pour le serveur de messagerie.
2. Configuration de la réception des mails
Pour recevoir tous les e-mails destinés à votre serveur, il faut configurer correctement certains paramètres cruciaux dans le fichier de configuration de Postfix (/etc/postfix/main.cf). Les principaux paramètres à vérifier sont :
a. Définir les destinations de réception (mydestination)
La directive mydestination définit les domaines pour lesquels votre serveur est responsable de la réception de mails. Une configuration typique pourrait ressembler à :
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Ici, $myhostname représente le nom d'hôte de votre serveur, et $mydomain représente le domaine associé. En incluant localhost et localhost.$mydomain, vous vous assurez que les mails locaux ainsi que ceux adressés à votre domaine sont pris en compte.
b. Écouter sur toutes les interfaces (inet_interfaces)
Pour que Postfix puisse recevoir des e-mails sur toutes les interfaces réseau de votre serveur, modifiez ou assurez-vous que la ligne suivante est présente :
inet_interfaces = all
Cela permet à Postfix de répondre aux requêtes provenant de n'importe quelle interface réseau, essentielle pour un serveur qui reçoit des mails de différentes sources.
3. Restriction de l'envoi aux seuls mails locaux
L'objectif ici est d'empêcher toute tentative d'utiliser votre serveur comme relais pour l'envoi d'e-mails non autorisés. Pour cela, il faut restreindre l’accès aux fonctionnalités d'envoi afin que seuls les processus ou clients locaux (loopback) puissent initier l'envoi d'e-mails.
a. Configurer mynetworks
Le paramètre mynetworks définit les adresses IP ou les réseaux autorisés à utiliser votre serveur pour envoyer des e-mails. Pour limiter l'accès à la boucle locale, modifiez ou ajoutez :
mynetworks = 127.0.0.0/8
Vous pouvez également étendre cette configuration pour inclure les adresses IPv6 locales si nécessaire :
mynetworks = 127.0.0.0/8 [::1]/128
b. Définir smtpd_relay_restrictions
La directive smtpd_relay_restrictions contrôle de manière fine qui peut relayer des e-mails via votre serveur. Elle doit être configurée pour autoriser uniquement les réseaux locaux et rejeter toute autre tentative :
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
L'option permit_mynetworks autorise les clients de la plage d'adresses définies dans mynetworks, tandis que reject_unauth_destination empêche tout autre hôte d'utiliser le serveur comme relais.
c. Paramétrer smtpd_recipient_restrictions
Pour renforcer la protection contre le relais non autorisé, vous pouvez également configurer smtpd_recipient_restrictions :
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
Cette directive assure que même si une connexion est établie, l'envoi d'e-mails sera refusé pour toute destination qui n'est pas explicitement autorisée.
d. Désactiver relay_domains
Assurez-vous que la directive relay_domains ne spécifie aucun domaine externe auquel le serveur pourrait servir de relais. Pour ce faire, vous pouvez soit la laisser vide, soit la définir explicitement comme telle :
relay_domains =
Cela garantit que Postfix n'accepte pas de relayer des messages destinés à d'autres serveurs.
4. Autres configurations importantes
Outre la configuration de base pour la réception et l'envoi des mails, il est possible et souvent recommandé d'ajuster quelques paramètres complémentaires pour améliorer la sécurité et la performance de votre serveur de messagerie.
a. Spécifier les interfaces et protocoles (inet_protocols)
Pour contrôler les protocoles utilisés par Postfix, définissez inet_protocols. Par exemple, pour n'utiliser que l'IPv4 :
inet_protocols = ipv4
Si votre environnement nécessite IPv6, vous pouvez adapter cette configuration ou la laisser sur all pour une compatibilité maximale.
b. Paramétrer le hostname et le domaine
Pour que le serveur soit correctement identifié par les mail exchangers (MX) et les entités d'expédition, il est important de définir :
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
Adaptez ces valeurs en fonction de votre environnement. Cela permet non seulement à Postfix d’identifier correctement sa source, mais aussi d’assurer la livraison appropriée des mails entrants.
5. Redémarrage et vérification de la configuration
Une fois toutes les modifications apportées aux fichiers de configuration de Postfix, il est nécessaire de redémarrer le service pour qu’elles prennent effet. Exécutez la commande suivante :
sudo systemctl restart postfix
Après le redémarrage, il est crucial de vérifier que la configuration fonctionne comme prévu. Vous pouvez tester :
- L'envoi d'un e-mail depuis une application locale ou la ligne de commande, par exemple :
echo "Corps du message de test" | mail -s "Sujet Test" adresse@domaine.com
Important : Essayez également d’envoyer un e-mail depuis une machine externe pour confirmer que le système refuse le relais.
Pour surveiller l'activité et détecter d’éventuelles erreurs, consultez le fichier journal de Postfix :
sudo tail -f /var/log/mail.log
6. Exemple complet de configuration
Vous trouverez ci-dessous une table résumant les configurations critiques pour ce scénario :
| Paramètre | Valeur Suggérée | Description |
|---|---|---|
| mydestination | $myhostname, localhost.$mydomain, localhost, $mydomain | Liste des domaines pour lesquels le serveur accepte les mails |
| inet_interfaces | all | Écoute sur toutes les interfaces réseau |
| inet_protocols | ipv4 (ou all) | Définit les protocoles réseaux à utiliser |
| mynetworks | 127.0.0.0/8 [::1]/128 | Autorise uniquement les connexions locales à utiliser le serveur pour l'envoi |
| smtpd_relay_restrictions | permit_mynetworks, reject_unauth_destination | Empêche l'utilisation du serveur comme relais par des clients non autorisés |
| smtpd_recipient_restrictions | permit_mynetworks, reject_unauth_destination | Applique une vérification stricte des destinataires pour empêcher le relais |
| relay_domains | (vide) | Désactive le relais pour les domaines externes |
Vous pouvez copier et adapter la configuration ci-dessous dans votre fichier /etc/postfix/main.cf pour répondre aux besoins décrits :
# Identification du serveur
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
# Domaines acceptés
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Interfaces et protocoles
inet_interfaces = all
inet_protocols = ipv4
# Restrictions pour l'envoi de mails
mynetworks = 127.0.0.0/8 [::1]/128
smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
# Désactiver le relais pour tous les domaines externes
relay_domains =
7. Conseils et bonnes pratiques supplémentaires
En plus de la configuration de base, voici quelques recommandations pour garantir une opération stable et sécurisée de votre serveur de messagerie :
a. Surveillance régulière des logs
Il est essentiel de vérifier régulièrement les logs de Postfix pour détecter et corriger rapidement toute anomalie ou tentative d'utilisation non autorisée. Utilisez la commande suivante pour suivre les logs en temps réel :
sudo tail -f /var/log/mail.log
Des outils de surveillance automatisés comme logwatch ou fail2ban peuvent être intégrés pour renforcer la sécurité et prévenir les abus.
b. Sauvegarde de la configuration
Avant toute modification dans les fichiers de configuration de Postfix, réalisez une sauvegarde des fichiers existants. Par exemple :
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
Cette pratique vous permettra de restaurer une configuration fonctionnelle en cas de problème lors des modifications.
c. Documentation et tests
Maintenez une documentation précise de chaque changement apporté à la configuration. Cela facilitera le dépannage et l’amélioration continue du système. Après chaque modification, testez minutieusement la configuration en envoyant des e-mails depuis le serveur lui-même et depuis une machine externe pour confirmer que le relais n'est pas autorisé.
d. Sécurisation du serveur
Outre la configuration de Postfix, assurez-vous que votre serveur est sécurisé par d'autres moyens :
- Installez un pare-feu tel qu’UFW pour restreindre l’accès aux ports critiques.
- Utilisez des outils de détection d’intrusions pour surveiller les comportements suspects.
- Tenez à jour l’ensemble de vos logiciels et appliquez les correctifs de sécurité dès qu’ils sont disponibles.
En combinant ces stratégies de sécurité, vous contribuerez à préserver l'intégrité et la disponibilité de votre service de messagerie.
Conclusion
En résumé, configurer Postfix sur Ubuntu 24.04 pour recevoir tous les mails tout en limitant l'envoi aux seuls processus locaux est un processus qui repose sur la modification soigneuse de plusieurs paramètres clés. La configuration repose sur la définition de mydestination pour accepter les mails destinés à vos domaines, l'activation de inet_interfaces pour écouter sur toutes les interfaces et la restriction stricte de l'accès réseau via mynetworks et smtpd_relay_restrictions. En configurant minutieusement ces paramètres, vous garantissez que votre serveur ne pourra être exploité comme relais, minimisant ainsi les risques d'abus et de spam.
Il convient de noter que la surveillance régulière des logs, la sauvegarde de vos configurations et la mise en place d’un plan de sécurité global complètent une stratégie efficace pour administrer un serveur de messagerie. Suivez les tests post-configuration pour vérifier que les modifications respectent bien vos exigences fonctionnelles et sécuritaires.
Ce guide détaillé s'adresse à toute personne souhaitant mettre en place un serveur de messagerie solide, avec une attention particulière portée à la sécurité et à la maîtrise de l'envoi des e-mails. En suivant les étapes et conseils décrits, vous serez en mesure de configurer Postfix de manière fiable, tout en empêchant son usage comme relais non autorisé pour le spam ou d’autres activités malveillantes.
Références
- Email Server on Ubuntu 24.04 - Rose Hosting
- Installer et configurer Postfix sur Ubuntu 24.04 - DevTutorial
- Install and Configure Postfix on Ubuntu - Ubuntu
- Configurer Postfix en tant que serveur SMTP à émission seule - DigitalOcean
- Postfix Configuration on Ubuntu 24.04 - Server World
Recommandé
Last updated February 22, 2025