OpenBSD et postfix en relais SMTP transparent

Voici une petite conf sympa (enfin perso je trouve) pour permettre à OpenBSD et postfix de relayer des mails entrant de manière transparente. L'intérêt de ce mode est simple : aucune modification sur votre serveur de messagerie. Parfois, çà sauve les fesses ^^

Commençons par pf.

Dans le fichier de règles (/etc/pf.conf par défaut), insérer la redirection suivante :

rdr pass on $ext_if proto tcp from any to $ext_if port smtp -> localhost@@

On part évidemment du principe que $ext_if correspond à la patte externe de votre pare-feu.

Ensuite postfix

Il s'agit d'une configuration de relayage classique. Dans le fichier /etc/postfix/main.cf, on colle ça :

mynetworks = 127.0.0.0/8
relay_domains = hash:/etc/postfix/relay_domains
transport_maps = hash:/etc/postfix/transport
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_non_fqdn_recipient

On créé les deux fichiers /etc/postfix/relay_domains et /etc/postfix/transport.

Dans le premier, on colle :

domain.tld OK

Dans le second, on colle :

domain.tld smtp:[adresse_serveur_mail_interne]

Bien entendu, il faut adapter ces valeurs en fonction de votre environnement.

On génère les hachés pour postfix :

postmap /etc/postfix/relay_domains
postmap /etc/postfix/transport

Reste à activer tout ce petit monde :

postfix start
pfctl -f /etc/pf.conf

Et voilà \o/, avec cette base, il ne reste plus qu'à effectuer ce qu'on veut sur les mails reçus (traitement du pourriel par exemple...)

2 commentaires

Arrangeur Arrangeur

merci pour ce biollet, c'est toujours intéressant de vous lire. Je me demandais cependant pourquoi cette parentthèse : "traitement du pourriel par exemple" ? :)

Antoine Nguyen Antoine Nguyen

Merci !

Il est vrai que la parenthèse n'est pas forcément claire. Disons qu'il y a plein de méthodes pour traiter le pourriel, c'est plus adapté :-)

Postez votre commentaire