Post

Postfix minimal pour envoi de message uniquement

Postfix minimal pour envoi de message uniquement

Postfix est un agent de transfert de courrier (MTA), une application utilisée pour envoyer et recevoir des e-mails. On va configurer Postfix afin qu’il puisse être utilisé pour envoyer des notifications par e-mail uniquement par les applications locales installées sur le même serveur que Postfix.

Prérequis

Vérifier si le domaine du serveur n’est pas blacklisté

https://mxtoolbox.com/blacklists.aspx

Postfix SMTP

Conditions préalables

  • Un serveur Debian fonctionnel avec un utilisateur non root avec les privilèges sudo.
  • Un nom de domaine valide qui pointe vers le serveur.

Le nom d’hôte de votre serveur doit correspondre à votre domaine ou sous-domaine. Vous pouvez vérifier le nom d’hôte du serveur en tapant hostname -fqdn à l’invite de commande. La sortie doit correspondre au nom que vous avez donné au serveur lors de sa création.

Installation de Postfix

Mise à jour dépôts et installation

1
2
sudo apt update
sudo apt install --no-install-recommends postfix

Suivre la procédure

Installer mail (paquet bsd-mailx) ,gérer les mails en ligne de commande directement

1
sudo apt install bsd-mailx

Configuration de 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.

Choix No configuration lors de l’installation, il existe un fichier main.cf.proto pour servir de base à une configuration personnalisée.

Le fichier /etc/postfix/main.cf.proto est une copie exacte du fichier /usr/share/postfix/main.cf.debian.

Le fichier /usr/share/postfix/main.cf.dist détaille les 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.

Configuration /etc/postfix/main.cf pour envoyer des e-mails depuis une machine publique domaine ouestline.xyz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# /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 = ouestline.xyz
# Domain
mydomain = ouestline.xyz
# Authorize local machine only
mynetworks = 127.0.0.1/32
# Local aliasing
alias_maps = hash:/etc/aliases
# Debugging (facultatif)
debugger_command =
   PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
   ddd $daemon_directory/$process_name $process_id & sleep 5

Explications

  • Si 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.

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

1
2
$ sudo postconf inet_interfaces
inet_interfaces = localhost`

L’option -d affichera la valeur par défaut des paramètres demandés

1
2
$ sudo postconf -d inet_interfaces
inet_interfaces = all`

Tester, si besoin, chacune des directives de main.cf avec postconf

1
2
3
4
$ sudo postconf inet_protocols
inet_protocols = ipv4
$ sudo postconf -d inet_protocols
inet_protocols = all

Créez la table de correspondance /etc/aliases

1
2
3
# /etc/aliases
postmaster:  root
root:        vpn@cinay.eu

Construire le fichier indexé

1
sudo newaliases`

Cette commande va créer un fichier /etc/aliases.db exploitable par Postfix

Lancer et tester Postfix

Le service postfix est activé dans la configuration par défaut.

redémarrer Postfix.

1
sudo systemctl restart postfix 

Tester si Postfix peut envoyer des e-mails à un compte de messagerie externe à l’aide de la commande mail

Pour envoyer un e-mail de test, saisissez :

1
echo "Test envoi via postfix smtp" | mail -s "serveur debian" votre_adresse_mail 

Lorsque vous effectuez vos propres tests, vous pouvez utiliser le corps et le texte de la ligne d’objet tels quels ou les modifier à votre guise. Cependant, à la place de votre_adresse_mail, utilisez une adresse e-mail valide. Le domaine peut être gmail.com, fastmail.com, yahoo.comou tout autre fournisseur de services de messagerie que vous utilisez.

Maintenant, vérifiez l’adresse électronique à laquelle vous avez envoyé ce message. Vous devriez voir le message dans votre boîte de réception.

Cet article est sous licence CC BY 4.0 par l'auteur.