Ldfa Posté(e) il y a 4 heures Posté(e) il y a 4 heures www.microlinux.fr microlinux.fr Environ 5 minutes de lecture Debian serveur Postfix est un serveur mail, et plus exactement un MTA (Mail Transfer Agent). Il gère l'envoi et la réception de mails par Internet en utilisant le protocole SMTP. Le monde de l'Open Source offre toute une panoplie de MTA, parmi lesquels on trouve Postfix, Exim, Qmail et Sendmail. Dans ce premier article sur les serveurs de messagerie, nous allons configurer Postfix sur une machine publique tournant sous Debian 13 Trixie. Notre premier objectif, ce sera l'envoi des messages du système comme par exemple les notifications du système de sauvegardes automatiques Rsnapshot. Prérequis Avant de mettre la main à la pâte, je vérifie si le serveur n'est pas blacklisté quelque part : https://mxtoolbox.com/blacklists.aspx Installation Postfix est fourni par les dépôts officiels de la distribution : $ sudo apt update $ sudo apt install --no-install-recommends postfix Choisissez No configuration dans la fenêtre de configuration post-installation : On installera également la commande mail (paquet bsd-mailx) pour pouvoir tester et gérer les mails en ligne de commande directement sur le serveur : $ sudo apt install bsd-mailx Configurer Postfix Les fichiers de configuration utilisés par Postfix se situent dans /etc/postfix : Le fichier master.cf gère la configuration du démon master de Postfix. Dans la plupart des configurations de base, on n'aura pas à intervenir sur ce fichier. Le fichier main.cf contient les paramètres de contrôle des démons de Postfix. C'est celui que l'on modifiera le plus souvent. Étant donné que nous avons opté pour No configuration lors de l'installation, nous disposons uniquement d'un fichier main.cf.proto censé servir de base pour une configuration personnalisée. Le fichier /etc/postfix/main.cf.proto est une copie exacte du fichier /usr/share/postfix/main.cf.debian. En dehors de cela, le répertoire /usr/share/postfix/ fournit un fichier main.cf.dist amplement documenté qui décrit en détail le rôle de chacune des directives de configuration de Postfix. Si un paramètre n'est pas présent dans main.cf, Postfix utilisera sa valeur par défaut. Pour la plupart, ces valeurs sont définies en dur dans le code source de Postfix, tandis que certaines sont initialisées à la compilation et quelques-unes au moment du lancement du programme. Voici une configuration de mon cru pour envoyer des e-mails depuis une machine publique avec une ouverture frontale sur Internet : /etc/postfix/main.cf # /etc/postfix/main.cf # # Minimal Postfix configuration for Internet-facing servers # Disable backwards compatibility compatibility_level = 3.10 # Dedicated Postfix user mail_owner = postfix # Disable IPv6 inet_protocols = ipv4 # Outbound mail only inet_interfaces = localhost mailbox_size_limit = 0 # Host myhostname = sd-150204.dedibox.fr # Domain mydomain = dedibox.fr # Authorize local machine only mynetworks = 127.0.0.1/32 # Local aliasing alias_maps = hash:/etc/aliases # Debugging debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 Le programme postconf est très utile pour examiner les valeurs courantes et par défaut du fichier main.cf. Pour afficher la valeurs de certains paramètres de configuration, il suffit de les fournir en argument : $ sudo postconf inet_interfaces inet_interfaces = localhost L'option -d affichera la valeur par défaut des paramètres demandés : $ sudo postconf -d inet_interfaces inet_interfaces = all Servez-vous de postconf à tire-larigot N'hésitez pas à tester chacune des directives de main.cf avec postconf pour retenir les directives qui ne vont pas correspondre à la valeur définie par défaut : $ sudo postconf inet_protocols inet_protocols = ipv4 $ sudo postconf -d inet_protocols inet_protocols = all La configuration que je vous ai fournie en exemple mérite quelques remarques : Si l'IPv6 est désactivé au niveau du système, il faudra également le faire ici grâce à la directive inet_protocols. inet_interfaces = localhost limite l'utilisation de Postfix aux applications locales. myhostname est censé contenir le nom d'hôte pleinement qualifié du serveur, c'est-à-dire le résultat de la commande hostname --fqdn. mynetworks définit les adresses depuis lesquelles Postfix accepte les mails sans authentification via SMTP. alias_maps définit l'emplacement de la table de correspondance. Certaines informations ne peuvent pas être facilement représentées dans main.cf. Les tables de correspondance permettent de les stocker dans des fichiers externes. Postfix n'utilise pas directement les fichiers texte, ce serait trop lent. Au lieu de cela, les tables de correspondance de type hash (ou « tables de hachage ») servent pour construire des fichiers indexés, grâce à la bibliothèque Berkeley DB. Le programme postmap est utilisé pour construire les fichiers indexés. Pour mettre à jour les alias, on utilisera la commande newaliases. Créez la table de correspondance /etc/aliases : /etc/aliases # /etc/aliases postmaster: root root: info@microlinux.fr Indiquez votre adresse e-mail Je vous encourage fortement à utiliser votre adresse e-mail plutôt que la mienne. Ceci étant dit, la quantité de notifications que je reçois quotidiennement par e-mail me donne une vague idée de la popularité de mes articles sur l'administration des serveurs Linux. Construisez le fichier indexé : $ sudo newaliases Cette commande va créer un fichier /etc/aliases.db exploitable par Postfix : $ ls -l /etc/aliases* -rw-r--r-- 1 root root 65 Jan 31 13:17 /etc/aliases -rw-r--r-- 1 root root 12288 Jan 31 13:16 /etc/aliases.db Mise en service Le service postfix est activé dans la configuration par défaut. Il me suffit de le démarrer : $ sudo systemctl start postfix Je vérifie si Postfix tourne correctement : $ systemctl status postfix ● postfix.service - Postfix Mail Transport Agent (main/default instance) Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-31 13:21:00 CET; 1min 11s ago Invocation: 8f8863dec0434f72abd44f3d708923d7 Docs: man:postfix(1) Process: 35329 ExecStartPre=postfix check (code=exited, status=0/SUCCESS) Process: 35487 ExecStart=postfix debian-systemd-start (code=exited, status=0/SUCCESS) Main PID: 35496 (master) Tasks: 3 (limit: 4634) Memory: 3.4M (peak: 3.9M) CPU: 1.521s CGroup: /system.slice/postfix.service ├─35496 /usr/lib/postfix/sbin/master -w ├─35497 pickup -l -t unix -u -c └─35499 qmgr -l -t unix -u Je peux également jeter un œil dans les logs de Postfix pour savoir si tout se passe comme prévu : $ sudo tail /var/log/mail.log 2026-01-31T13:24:17.238808+01:00 sd-150204 postfix/master[35820]: daemon started -- version 3.10.5, configuration /etc/postfix Envoi d'un e-mail de test J'envoie un e-mail de test vers un compte auquel j'ai accès, en l'occurrence mon adresse principale : $ mail info@microlinux.fr Subject: Test Postfix Ceci est un test. . Cc: Un point c'est tout Lorsque vous rédigez un e-mail en ligne de commande avec mail, un point . tout seul sur une ligne marque la fin du message. Je me connecte à ma messagerie et je vois que le message a bien été reçu : À partir de là, Postfix pourra être utilisé par les applications locales pour l'envoi d'e-mails. La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse. Afficher l’article complet
Debian serveur Postfix est un serveur mail, et plus exactement un MTA (Mail Transfer Agent). Il gère l'envoi et la réception de mails par Internet en utilisant le protocole SMTP. Le monde de l'Open Source offre toute une panoplie de MTA, parmi lesquels on trouve Postfix, Exim, Qmail et Sendmail. Dans ce premier article sur les serveurs de messagerie, nous allons configurer Postfix sur une machine publique tournant sous Debian 13 Trixie. Notre premier objectif, ce sera l'envoi des messages du système comme par exemple les notifications du système de sauvegardes automatiques Rsnapshot. Prérequis Avant de mettre la main à la pâte, je vérifie si le serveur n'est pas blacklisté quelque part : https://mxtoolbox.com/blacklists.aspx Installation Postfix est fourni par les dépôts officiels de la distribution : $ sudo apt update $ sudo apt install --no-install-recommends postfix Choisissez No configuration dans la fenêtre de configuration post-installation : On installera également la commande mail (paquet bsd-mailx) pour pouvoir tester et gérer les mails en ligne de commande directement sur le serveur : $ sudo apt install bsd-mailx Configurer Postfix Les fichiers de configuration utilisés par Postfix se situent dans /etc/postfix : Le fichier master.cf gère la configuration du démon master de Postfix. Dans la plupart des configurations de base, on n'aura pas à intervenir sur ce fichier. Le fichier main.cf contient les paramètres de contrôle des démons de Postfix. C'est celui que l'on modifiera le plus souvent. Étant donné que nous avons opté pour No configuration lors de l'installation, nous disposons uniquement d'un fichier main.cf.proto censé servir de base pour une configuration personnalisée. Le fichier /etc/postfix/main.cf.proto est une copie exacte du fichier /usr/share/postfix/main.cf.debian. En dehors de cela, le répertoire /usr/share/postfix/ fournit un fichier main.cf.dist amplement documenté qui décrit en détail le rôle de chacune des directives de configuration de Postfix. Si un paramètre n'est pas présent dans main.cf, Postfix utilisera sa valeur par défaut. Pour la plupart, ces valeurs sont définies en dur dans le code source de Postfix, tandis que certaines sont initialisées à la compilation et quelques-unes au moment du lancement du programme. Voici une configuration de mon cru pour envoyer des e-mails depuis une machine publique avec une ouverture frontale sur Internet : /etc/postfix/main.cf # /etc/postfix/main.cf # # Minimal Postfix configuration for Internet-facing servers # Disable backwards compatibility compatibility_level = 3.10 # Dedicated Postfix user mail_owner = postfix # Disable IPv6 inet_protocols = ipv4 # Outbound mail only inet_interfaces = localhost mailbox_size_limit = 0 # Host myhostname = sd-150204.dedibox.fr # Domain mydomain = dedibox.fr # Authorize local machine only mynetworks = 127.0.0.1/32 # Local aliasing alias_maps = hash:/etc/aliases # Debugging debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 Le programme postconf est très utile pour examiner les valeurs courantes et par défaut du fichier main.cf. Pour afficher la valeurs de certains paramètres de configuration, il suffit de les fournir en argument : $ sudo postconf inet_interfaces inet_interfaces = localhost L'option -d affichera la valeur par défaut des paramètres demandés : $ sudo postconf -d inet_interfaces inet_interfaces = all Servez-vous de postconf à tire-larigot N'hésitez pas à tester chacune des directives de main.cf avec postconf pour retenir les directives qui ne vont pas correspondre à la valeur définie par défaut : $ sudo postconf inet_protocols inet_protocols = ipv4 $ sudo postconf -d inet_protocols inet_protocols = all La configuration que je vous ai fournie en exemple mérite quelques remarques : Si l'IPv6 est désactivé au niveau du système, il faudra également le faire ici grâce à la directive inet_protocols. inet_interfaces = localhost limite l'utilisation de Postfix aux applications locales. myhostname est censé contenir le nom d'hôte pleinement qualifié du serveur, c'est-à-dire le résultat de la commande hostname --fqdn. mynetworks définit les adresses depuis lesquelles Postfix accepte les mails sans authentification via SMTP. alias_maps définit l'emplacement de la table de correspondance. Certaines informations ne peuvent pas être facilement représentées dans main.cf. Les tables de correspondance permettent de les stocker dans des fichiers externes. Postfix n'utilise pas directement les fichiers texte, ce serait trop lent. Au lieu de cela, les tables de correspondance de type hash (ou « tables de hachage ») servent pour construire des fichiers indexés, grâce à la bibliothèque Berkeley DB. Le programme postmap est utilisé pour construire les fichiers indexés. Pour mettre à jour les alias, on utilisera la commande newaliases. Créez la table de correspondance /etc/aliases : /etc/aliases # /etc/aliases postmaster: root root: info@microlinux.fr Indiquez votre adresse e-mail Je vous encourage fortement à utiliser votre adresse e-mail plutôt que la mienne. Ceci étant dit, la quantité de notifications que je reçois quotidiennement par e-mail me donne une vague idée de la popularité de mes articles sur l'administration des serveurs Linux. Construisez le fichier indexé : $ sudo newaliases Cette commande va créer un fichier /etc/aliases.db exploitable par Postfix : $ ls -l /etc/aliases* -rw-r--r-- 1 root root 65 Jan 31 13:17 /etc/aliases -rw-r--r-- 1 root root 12288 Jan 31 13:16 /etc/aliases.db Mise en service Le service postfix est activé dans la configuration par défaut. Il me suffit de le démarrer : $ sudo systemctl start postfix Je vérifie si Postfix tourne correctement : $ systemctl status postfix ● postfix.service - Postfix Mail Transport Agent (main/default instance) Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-31 13:21:00 CET; 1min 11s ago Invocation: 8f8863dec0434f72abd44f3d708923d7 Docs: man:postfix(1) Process: 35329 ExecStartPre=postfix check (code=exited, status=0/SUCCESS) Process: 35487 ExecStart=postfix debian-systemd-start (code=exited, status=0/SUCCESS) Main PID: 35496 (master) Tasks: 3 (limit: 4634) Memory: 3.4M (peak: 3.9M) CPU: 1.521s CGroup: /system.slice/postfix.service ├─35496 /usr/lib/postfix/sbin/master -w ├─35497 pickup -l -t unix -u -c └─35499 qmgr -l -t unix -u Je peux également jeter un œil dans les logs de Postfix pour savoir si tout se passe comme prévu : $ sudo tail /var/log/mail.log 2026-01-31T13:24:17.238808+01:00 sd-150204 postfix/master[35820]: daemon started -- version 3.10.5, configuration /etc/postfix Envoi d'un e-mail de test J'envoie un e-mail de test vers un compte auquel j'ai accès, en l'occurrence mon adresse principale : $ mail info@microlinux.fr Subject: Test Postfix Ceci est un test. . Cc: Un point c'est tout Lorsque vous rédigez un e-mail en ligne de commande avec mail, un point . tout seul sur une ligne marque la fin du message. Je me connecte à ma messagerie et je vois que le message a bien été reçu : À partir de là, Postfix pourra être utilisé par les applications locales pour l'envoi d'e-mails. La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant