16 votes

Postfix sur le serveur de développement, permet d'envoyer du courrier à un seul domaine

Nous avons postfix sur notre serveur de développement, et j'aimerais qu'il ne puisse envoyer du courrier qu'à notre domaine, et non à d'autres domaines, afin d'éviter que des utilisateurs extérieurs ne reçoivent accidentellement du courrier de notre serveur de développement.

J'ai cherché dans la documentation, j'ai essayé plusieurs choses mais l'envoi se fait toujours vers tous les domaines...

12voto

Carlo Arenas Points 118

transport(5) sont utilisées pour redéfinir la manière dont le courrier électronique est acheminé par postfix.

  • Ajoutez la ligne suivante au fichier /etc/postfix/main.cf :

    transport_maps = hash:/etc/postfix/transport
  • Ajoutez le nouveau fichier /etc/postfix/transport avec ce contenu :

    .example.com   :
    example.com    :
    *              discard:

Remplacer example.com avec le domaine vers lequel votre serveur de messagerie doit continuer à envoyer des messages. Si vous ne vous souciez pas des sous-domaines, supprimez la première ligne.

N'oubliez pas de hacher le fichier après l'avoir modifié avec carte postale(1) et rechargez postfix pour que les modifications soient prises en compte :

# postmap /etc/postfix/transport && postfix reload

9voto

Crippeoblade Points 1301

Vous pouvez facilement restreindre les destinataires à l'aide d'un smtpd_recipient_restrictions ou plus précisément check_recipient_access .

Il suffit de créer un accès(5) table /etc/postfix/access avec le contenu suivant ( exemple.com qui est le domaine auquel vous souhaitez autoriser l'envoi de courrier) :

example.com    OK

Vous pouvez également n'autoriser que certaines adresses spécifiques :

user1@example.com    OK
user2@example.com    OK

N'oubliez pas de hacher le fichier après l'avoir modifié avec carte postale(1) :

# postmap /etc/postfix/access

Mettez maintenant les restrictions suivantes pour les destinataires dans votre main.cf :

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

et rechargez Postfix :

postfix reload

Après cela, Testez-le s'il fonctionne .

8voto

levryk Points 11

Donc, si quelqu'un tombe sur cette question comme je l'ai fait : la réponse est en effet contrôles_en-tête et il fonctionne comme tel :

  • Ajouter la ligne suivante à /etc/postfix/main.cf :

    header_checks = regexp:/etc/postfix/header_checks
  • Ajouter le nouveau fichier /etc/postfix/header_checks avec ce contenu :

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com

Remplacer allowed-domain.com avec le domaine vers lequel votre serveur de messagerie doit continuer à envoyer des messages. Remplacer redirect@example.com avec l'adresse électronique vers laquelle tous les autres courriels doivent être redirigés.

Si vous devez autoriser plusieurs domaines, la première ligne doit ressembler à ceci :

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

Au lieu de rediriger, vous pouvez simplement supprimer tous les autres courriers. Remplacez la deuxième ligne ci-dessus par :

/^To:.*@/   DISCARD No outgoing mails allowed

Explication :

  • Postfix examine les en-têtes du courrier un par un.
  • Chaque ligne d'en-tête est comparée au fichier header_checks ligne par ligne.
  • S'il correspond à la première ligne ( To: contient le domaine autorisé), il passe à la ligne d'en-tête suivante et recommence la vérification de l'en-tête depuis le début. Étant donné qu'aucune autre ligne ne correspond, cela signifie que le courrier est distribué.
  • S'il correspond à la deuxième ligne ( To: contient une autre adresse électronique externe), il redirige le courrier.

3voto

Peter Eisentraut Points 286

Avez-vous essayé contrôles_en-tête(5) ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X