LINUX:Postfix

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

EN CONSTRUCTION


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.


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 -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)
-A OUTPUT -p tcp -m tcp --dport 587 -j ACCEPT
  • Même type d'accès, mais via le port non pas 587 mais 3587
-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.





->retour au menu de Linux