LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


serveurs:postfix

Serveur Postfix

Postfix est un serveur de messagerie électronique et un logiciel libre. Il se charge de la livraison de messages électroniques et a été conçu comme une alternative plus rapide, plus facile à administrer et plus sécurisée que l'historique Sendmail. Il permet de gérer presque tous les cas d'une utilisation professionnelle et il remplace idéalement toutes sortes de solutions moins libres.

Afin d'optimiser l'analyse de courriels, Postfix permet de déléguer la gestion de ceux-ci à un processus externe, qui se chargera de déterminer si le courriel est accepté ou refusé (très utile dans les systèmes anti-pourriel).


Schéma classique

Principe de base

Une boîte aux lettres est représentée par son adresse e-mail de type : exemple@nomdudomaine.com. Si le domaine n'est pas renseigné alors c'est une boîte aux lettres locale au serveur.

Il existe 3 composantes du système de messagerie :

  • le MUA (Message User Agent) : il est chargé de lire et envoyer le courrier. C'est la partie visible pour l'utilisateur. On y retrouve par exemple : Thunderbird, Outlook, Mail et bien d'autres…
  • le MTA (Message Transfer Agent) : il a pour but de transférer le courier d'une machine à une autre. On peut citer Postfix, Qmail, Sendmail, …
  • le MDA (Message Delivery Agent) : il délivre le message provenant du MTA dans une boîte aux lettres. C'est notamment le rôle de Procmail.

Ensuite s'ajoutent les protocoles inhérents à la messagerie tels que SMTP, POP, IMAP pour ne citer que les plus connus.

Prérequis

  • Debian: 5.0 (Lenny)
  • Réseau: 192.168.0.0
  • Serveur: 192.168.0.12 (Serveur de messagerie
  • Firewall & routeur: port TCP 25 ouvert et redirigé
  • Une addresse IP statique couplé a un MX ou dynamique (avec dyndns.org par exemple)

Installation

# apt-get install postfix 

Au cours de l'installation du paquet, plusieurs questions sont posées par l'intermédiaire de Debconf. Les réponses permettrons de générer un /etc/postfix/main.cf

A la première question, répondre “Site Internet” qui est adapté a une serveur qui reçoit et envoie le courrier directement a ses destinataires.

La deuxieme question porte sur le nom complet de la machine employé pour générer une adresse email depuis un nom d'utilisateur local. En gros il faut mettre la partie suivant l'arobase @. Par exemple pour john@exemple.org, la réponse est exemple.com.

Configuration

Fichier de configuration postfix

Le fichier de configuration de Postfix est le fichier /etc/postix/main.cf

Il est d'abord important de connaitre quelques principaux paramètres:

myhostname: Ce paramètre désigne le nom complet de l'ordinateur, le FQDN du serveur. Si cette option est commentée, postfix va vérifier le résultat de la commande hostname. Il faut vérifier donc /etc/hosts. Exemple: ced.mondomaine.local

mydestination: Ce paramètre inclut le nom complet de la machine ainsi que des synonymes de localhost. Il faut bien vérifier que le (ou les) domaine principale soit renseigné. D'une manière général, il convient habituellement ici de donner tous les noms de domaines pour lesquels cette machine fais office de serveur MX.

mynetworks: indique les réseaux habilités à envoyer du courrier par l'intermédiaire de cette machine. Par défaut Postfix est configuré pour n'accepter que des courriers issus de la machine elle-même. Il faut généralement ajouter le réseau local.

home_mailbox: indique le répertoire de stockage du courrier qui pourra être rapatrier plus tard avec POP ou IMAP.

Exemple de configuration

En général, on ne change pas les autres paramètres, sauf pour des cas plus spécifiques à adapter selon vos besoin. Voici un exemple du fichier /etc/postfix/main.cf

...
myhostname = debian.mondomaine.local
mydestination = exemple.com, mail.exemple.com, mondomaine.local, debian.mondomaine.local, localhost.mondomaine.local , localhost
mynetworks = 127.0.0.0/8 192.168.0.0/24
...

Test de la configuration

Il faut au préalable redémarrer Postfix:

# /etc/init.d/postix restart 

On suppose un utilisateur John.

# adduser john 

Répondre aux questions.

Si la commande mail n'est pas installée, installez le paquet mailutils

# apt-get install mailutils
# su john 

Maintenant, tentez d'envoyer un mail a john@exemple.com Puis consulter:

# mail

Il devrait y avoir un mail recu. Postfix fonctionne.

Configuration serveur POP

Le protocole de récupération POP est le plus simple à mettre en œuvre pour récuperer son courrier électronique.

Nous allons utiliser courier-pop, un serveur POP tres simple à mettre en oeuvre. (Nous ne détaillerons pas la configuration du serveur dans cet article.)

# aptitude install courier-pop

Répondre non à la question

Nous créons ensuite un repertoire dans le repertoire utilisateur.

# su john
# cd /home/john
# maildirmake Maildir

Nous devons indiquer a Postfix de redirigé les mails recu vers le nouveau répertoire de stockage des mails des utilisateurs. Il faut éditer le fichier /etc/postfix/main.cf et ajouter à la fin

...
home_mailbox = Maildir/
...

On relance Postfix pour prendre en compte la nouvel configuration

# /etc/init.d/postfix restart

C'est prêt. Vous pouvez configurer votre logiciel de courrier électronique préféré. Le nom d'utilisateur et le mot de passe sont les mêmes que les comptes utilisateurs locaux du serveur.

Restrictions à la réception et à l'envoi

Avec le nombre croissant de message non sollicités (spams), il est nécessaire d'être de plus en plus vigilant strict sur les messages que le serveur accepte. Voici quelques stratégies intégrées à Postfix.

Exemple de restriction en fonction de l'adresse du client dans le fichier /etc/postfix/main.cf:

smtpd_client_restrictions = permit_mynetworks,
warn_if_reject reject_unknown_client,
check_client_access hash:/etc/postfix/access_clientip,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org

Dans ces listes de règles sont évalué dans l'ordre, de la première à la dernière. L'ordre a donc une importance et l'inversion de deux règles peut mettre en place un comportement différent.

permit_mynetwork: placer en tete, permet d'accepter toute les machines su réseau local.

reject_unknown_client: Refuse les machines dépourvues de configuration DNS valide. Cette restriction est trop sévère, alors elle est précédé de warn_if_reject pour transformer l'avertissement en simple refus enregistré dans les logs.

check_client_access: permet de mettre en place une liste noire et une liste blanche.

reject_rbl_client: Indique un serveur distant de listes noires.

Dépannage de Postfix en cas de problème(s)

  • /etc/aliases.db

Si dans les logs de postfix (/var/mail/error.log) vous trouvez ce genre de message :

May 23 21:56:24 serveur postfix/local[3725]: fatal: open database /etc/aliases.db: No such file or directory

deletez le fichier en question et regénérez-le avec :

newaliases

le fichier sera regénéré depuis /etc/aliases

serveurs/postfix.txt · Dernière modification: 2019/05/13 11:27 par abdallah