« LINUX:Postfix » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 56 : Ligne 56 :


Supposons que l'on propose seulement le service SMTP classique sur le réseau local (port 25).
Supposons que l'on propose seulement le service SMTP classique sur le réseau local (port 25).
  -A INPUT -p tcp -m tcp --dport 25 -s 192.168.1.0/24 -j ACCEPT
  -A INPUT -p tcp -m tcp --dport 25 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
Par contre, si on ne le propose qu'en local, on le bloque:
Par contre, si on ne le propose qu'en local, on le bloque:
  -A INPUT -p tcp -m tcp --dport 25 -j DROP
  -A INPUT -p tcp -m tcp --dport 25 -j DROP

Version du 9 mars 2022 à 18:50


retour au menu de Linux


But

Postfix est un serveur de messagerie partie SMTP et MTA. Nous nous limiterons à une configuration de base sans ajouter des fonctionnalités de relevés de type POP, IMAP (Dovecot, Sieve) ou WebMail (RoundCubeMail, Horde), ni des fonctionnalités avancées tels le multi-domaine, anti-virus (Clamav), anti-spam (Spamassassin), SPF, DKIM, DMARC ou utilisation de base de données (Mysql, Postfixadmin). Il existe de nombreux sites bien faits qui décrivent cette mise en place.

Le but final est de transmettre les messages générés dans le cadre de la gestion du système à un autre serveur de mail ayant les fonctionnalités décrites ci-dessus. Cette approche sera progressive afin de comprendre les différentes fonctionnalités ajoutées et que vous puissiez mettre en oeuvre ce qui vous intéresse.


Description succincte des principaux protocoles de messagerie

Pour décrire les fonctionnalités de la messagerie, nous ferons un parallèle avec le service postal.

Au contraire d'un service WEB, la messagerie est découpée en de nombreuses fonctionnalités ayant chacune un port TCP/IP spécifique.


SMTP et ses contraintes

SMTP a ses contraintes actuellement, ce qui complique notre tâche.


Postfix-Résumé

Postfix est un serveur de messagerie libre pour Unix dont le noyau de base couvre la réception et l'envoi de mails (SMTP), le traitement de mail reçu et décision de sa distribution (MTA) distante (SMTP) ou locale. Ce programme est très modulaire à la base et peut s'adjoindre nombre d'autres modules tiers.



Les rectangles bleus désignent les tables, les rectangles jaunes les files d'attente et les ellipses les programmes. Le grand rectangle à cadre rouge désigne le noyau de base de Postfix regroupant ses différents programmes. On remarque la grande complexité de ce logiciel. A cela, on peut greffer des modules comme Cyrus-sasl, Clamav, Spamassassin, Seive, Dovecot, Mysql, OpenDKIM, OpenDMARC, AMAVIS, RoundCubeMail, Postfixadmin,... A gauche, nous avons les entrées en local ou via Internet et à droite, la sortie en local ("mailbox") ou vers Internet. Nous n'allons pas décortiquer et expliquer toutes ces cases; il existe de nombreux sites qui font bien cela.

Les fichiers de configuration sont dans le répertoire "/etc/postfix". Le journal par défaut se nomme "/var/log/maillog". Les files d'attente et de gestion se trouvent dans le répertoire "/var/spool/postfix". Parmi les files d'attente, si vous trouvez des fichiers dans les répertoires "deferred" et "defer", ce sont les mails qui ont des problèmes de traitement. Dans la configuration par défaut, la "mailbox" est le répertoire "/var/mail"; dans ce répertoire, on trouvera un fichier par utilisateur local contenant les différents mails arrivés l'un en dessous de l'autre.

Dans ce schéma, remarquez deux processus fondamentaux:

  • A gauche, l'arrivée des mails vers le processus "smtpd"
  • A droite, le départ des mails à partir du processus "smtp"

Nous aurons à faire à eux dans le fichier de configuration "/etc/postfix/master.cf".


Installation

Pour installer Postfix, avant toute chose, il faut s'assurer qu'il n'y a pas d'autre serveur de messagerie tel "sendmail" ou "ssmtp". Il reste à lancer la commande d'installation du package:

dnf install postfix


Activer et lancer le service

Le service à lancer est POSTFIX. La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.

systemctl enable postfix
systemctl start postfix
systemctl restart postfix


Configurer le mur de feu ou FireWall

Vous avez sûrement activé le FireWall du serveur. Dans l'exemple, l'adressage de notre LAN est 192.168.1.0 avec un masque de 255.255.255.0 ou de 24 bits. Comme c'est un service proposé, il faut ouvrir diverses portes. Tout dépend des services proposés et des services distants souhaités.

Supposons que l'on propose seulement le service SMTP classique sur le réseau local (port 25).

-A INPUT -p tcp -m tcp --dport 25 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT

Par contre, si on ne le propose qu'en local, on le bloque:

-A INPUT -p tcp -m tcp --dport 25 -j DROP

D'autre part, on désire accéder à des services distants:

  • Envoyer des mails à un autre serveur de messagerie sur votre LAN (IP: 192.168.1.101) par le port SMTP classique (port 25)
-A OUTPUT -p tcp -m tcp --dport 25 -d 192.168.1.101 -j ACCEPT
  • On désire rediriger des mails vers un serveur de messagerie se trouvant sur Internet par submission avec authentification (port 587 (STARTTLS) ou 465 (SSL/TLS))
-A OUTPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 465 -j ACCEPT
  • Même type d'accès, mais via le port personnalisé 3587 (voir exemple dans les articles suivants)
-A OUTPUT -p tcp -m tcp --dport 3587 -j ACCEPT

On peut évidemment être plus restrictif en précisant l'adresse IP du serveur distant.

Ceci est un exemple. Adaptez en fonction de votre configuration en entrée et en sortie.

La commande suivante peut vous y aider pour ce qui est en entrée:

netstat -natp | grep LISTEN

Options:

- a : toutes liaisons réseaux
- t : filtrage sur tcp
- p : nom du processus
- n : affichage numérique de l'adresse IP

Vous aurez une liste des services TCP locaux disponibles en écoute avec le nom du processus et pour quel interface IP.


Description de quelques configurations

Dans cette article, nous allons présenter une configuration de base, complétée progressivement par ajout de notions diverse et atteindre notre but.


Journalisation

Le journal par défaut se nomme "/var/log/maillog". On peut le rendre plus verbeux.


Tester l'envoi de mails

Après la configuration de Postfix, il faut le tester. On peut aussi tester un serveur distant.




retour au menu de Linux