Lisez d'abord l'épisode précédent
Cet article est le septième de la série "Configurer un serveur de messagerie Linux".
Dans l'épisode précédent, nous avons abordé la configuration de l'authentification utilisateur en intégrant Dovecot et PostgreSQL.
Si vous ne l'avez pas encore fait, je vous le recommande.
👉 Épisode précédent : Configuration du fichier auth-sql.conf.ext de Dovecot et hachage des mots de passe
Structure des fichiers de configuration de Postfix
Postfix est un serveur SMTP responsable de l'envoi des courriers, utilisant divers fichiers de configuration pour ajuster son fonctionnement.
Cet article explique la structure des fichiers de configuration de Postfix et leurs rôles principaux.
Principaux fichiers de configuration de Postfix
Nom du fichier | Rôle |
---|---|
/etc/postfix/main.cf | Fichier de configuration principal de Postfix (envoi de courriers, configuration réseau, etc.) |
/etc/postfix/master.cf | Gestion des services Postfix (SMTP, LMTP, authentification SASL, etc.) |
/etc/postfix/virtual | Mapping des utilisateurs (domaines) virtuels |
/etc/postfix/aliases | Gestion des alias d'émails pour les utilisateurs système |
/etc/postfix/transport | Définition des chemins d'envoi des courriers vers des domaines/adresses spécifiques |
/etc/postfix/relay_domains | Configuration des domaines autorisés pour le relais |
/etc/postfix/sasl_passwd | Stockage des informations d'authentification du serveur de relais SMTP |
/etc/postfix/sql/*.cf | Fichiers de configuration d'intégration avec la base de données (PostgreSQL) |
Principaux éléments de configuration de Postfix (main.cf
)
Examinons les principales configurations définissant le fonctionnement de Postfix. Le fichier se trouve à /etc/postfix/main.cf
.
1️⃣ Paramètres de base du serveur de messagerie
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
myhostname
→ Nom d'hôte du serveur de messageriemydomain
→ Configuration du domaine par défautinet_interfaces
→ Configuré pour recevoir des courriers sur toutes les interfaces réseauinet_protocols
→ Utiliser uniquement IPv4 (IPv6 peut être désactivé)
2️⃣ Limites du relais de courriers
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
permit_mynetworks
→ Relais autorisé depuis des réseaux de confiancepermit_sasl_authenticated
→ Seuls les utilisateurs authentifiés par SASL peuvent relayer des courriersdefer_unauth_destination
→ Blocage du relais externe non authentifié
3️⃣ Utilisateurs virtuels et intégration de la base de données
Pour que Postfix gère les domaines virtuels et les boîtes aux lettres en utilisant PostgreSQL, il est nécessaire d'ajouter les configurations suivantes.
virtual_mailbox_domains = pgsql:/etc/postfix/sql/virtual_domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/sql/virtual_mailboxes.cf
virtual_alias_maps = pgsql:/etc/postfix/sql/virtual_aliases.cf
🔹 Explication
- virtual_mailbox_domains
→ Recherche des domaines virtuels recevables dans la base de données
- virtual_mailbox_maps
→ Recherche des informations des boîtes aux lettres des utilisateurs dans la base de données
- virtual_alias_maps
→ Recherche des alias des courriels dans la base de données
💡 Si vous utilisez MySQL
Il suffit d'utilisermysql:
à la place depgsql:
.💡 Dans un environnement de trafic important, l'utilisation de proxy:pgsql: pourrait être avantageuse d'un point de vue performance. Cependant, dans un environnement général, il fonctionne sans proxy.
Configurer Postfix pour utiliser une base de données
Pour que Postfix utilise PostgreSQL, il faut installer les paquets nécessaires.
sudo apt update
sudo apt install postfix postfix-pgsql
postfix
→ Serveur SMTP de base de Postfixpostfix-pgsql
→ Paquet permettant à Postfix de s'intégrer à PostgreSQL
Une fois l'installation terminée, il est nécessaire de rédiger un fichier de configuration pour que Postfix puisse récupérer les informations des utilisateurs depuis PostgreSQL.
Configuration d'intégration de la base de données de Postfix (virtual_*.cf
fichiers à créer)
Postfix utilise les fichiers virtual_domains.cf
, virtual_mailboxes.cf
, virtual_aliases.cf
pour obtenir des informations de la base de données.
Ces fichiers doivent être créés manuellement, suivez le contenu ci-dessous pour les rédiger.
1️⃣ /etc/postfix/sql/virtual_domains.cf
(configuration de recherche de domaine)
user = mailadmin
password = votre_mot_de_passe
dbname = mail
hosts = 127.0.0.1
query = SELECT domain_name FROM mail_domain WHERE domain_name='%s' AND active=true
Explication
user
→ Compte utilisateur PostgreSQL (assurez-vous de créer cet utilisateur dans la DB pour que postfix puisse accéder à la DB.) password
→ Mot de passe du compte PostgreSQL (mot de passe de l'utilisateur DB mailadmin
préalablement créé) dbname
→ Nom de la base de données hosts
→ Adresse du serveur de base de données (utilisation d'un serveur local) query
→ Recherche des domaines recevables dans la table mail_domain
2️⃣ /etc/postfix/sql/virtual_mailboxes.cf
(configuration de recherche des boîtes aux lettres)
user = mailadmin
password = votre_mot_de_passe
dbname = mail
hosts = 127.0.0.1
query = SELECT home_directory FROM mail_users WHERE email='%s'
Explication
query
→ Recherche du chemin de stockage des courriels de l'utilisateur (retourne le champ home_directory
de la table mail_users
) Postfix renvoie le chemin pour que les courriels de l'utilisateur soient correctement rangés dans le bon répertoire
3️⃣ /etc/postfix/sql/virtual_aliases.cf
(configuration de recherche des alias d'emails)
user = mailadmin
password = votre_mot_de_passe
dbname = mail
hosts = 127.0.0.1
query = SELECT destination_email FROM mail_alias WHERE source_email='%s'
Explication
query
→ En cas d'alias, recherche de l'email de destination réel où le mail sera corrigé Retrouve l'email sur lequel l'alias est enregistré dans la table mail_alias
Configuration de sécurité
Ces fichiers de configuration doivent être restreints en permissions car ils contiennent des mots de passe.
sudo chmod 640 /etc/postfix/sql/virtual_*.cf
sudo chown root:postfix /etc/postfix/sql/virtual_*.cf
🔒 Avertissement de sécurité :
Les fichiers de configuration contenant des mots de passe ne doivent pas être lisibles par d'autres utilisateurs. Appliquez chmod 640 pour que seuls les processus Postfix (groupe postfix) puissent y accéder.
Recharger la configuration de Postfix
Une fois la configuration terminée, Postfix doit être rechargé pour appliquer les modifications.
sudo systemctl restart postfix
Récapitulatif et prochaines étapes
✅ Explication de la structure et des rôles des fichiers de configuration de Postfix
✅ Ajout des principales configurations dans main.cf
de Postfix
✅ Configuration des fichiers virtual_*.cf
pour l'intégration de Postfix avec PostgreSQL
Dans l'épisode suivant, nous verrons comment configurer l'authentification SMTP en intégrant Postfix et Dovecot.
Cela permettra de configurer complètement le serveur de messagerie pour les fonctions d'envoi et de réception.
👉 Épisode suivant : Intégration de Postfix et Dovecot ainsi que l'authentification SMTP (À venir !)
Add a New Comment