Comment bloquer les pièces jointes sur les e-mails entrants uniquement à l'aide de Postfix?

9

J'ai un serveur de messagerie (CentOS 6.5) exécutant Postfix et Dovecot

Postfix écoute sur le port 25 pour le courrier entrant et 587 pour le courrier sortant

Le problème est que le courrier sortant avec les pièces jointes pdf est bloqué là où je veux seulement que le courrier entrant avec les pièces jointes pdf soit bloqué.

J'ai cette ligne de configuration dans main.cf

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

Le fichier block_attachments contient:

/name=[^>]*\.(pdf|zip)/ REJECT

Ainsi, le courrier entrant avec une pièce jointe pdf est correctement bloqué, mais lorsque je compose un e-mail avec un PDF qui est également bloqué lorsque j'essaie d'envoyer.

Comment puis-je dire à postfix que je souhaite uniquement filtrer les pièces jointes entrantes? Ou ai-je raté quelque chose?

Aditya K
la source

Réponses:

7

Je vais réécrire votre question devenue:

Comment puis-je utiliser différents _header_checks pour smtpd (port 25) et soumission (port 587)?

Ce problème canonique peut être divisé avec plusieurs conditions

  1. Je veux désactiver header_checks pour l'un des smtpd ou soumission.
  2. Je veux exécuter différents header_checks pour smtpd et soumission.

1. Je veux désactiver header_checks pour l'un des smtpd ou soumission.

Pour l'exemple, je suppose que vous souhaitez désactiver les header_checks pour la soumission (e-mail sortant) .

Solution 1: méthode receive_override_options

Vous pouvez utiliser le paramètre postfix appelé receive_override_options . Avec le paramètre, vous pouvez remplacer le commutateur global header_check, afin que le filtre ne s'exécute pas. # main.cf header_checks = pcre: / chemin / vers / header_checks

#master.cf
submission inet n       -       n       -       -       smtpd
    -o receive_override_options=no_header_body_checks

Avertissements: cela désactivera TOUS les _header_checks et body_checks définis dans man 5 header_checks . Pour le contrôle terminé, quel paramètre sera désactivé, voir Solution 2.

Solution 2: méthode de service de nettoyage multiple

Nous pouvons utiliser plusieurs techniques de nettoyage pour votre problème, comme cela a *_header_checksété effectué par le service de nettoyage . Vous pouvez voir l'exemple de cette configuration dans le tutoriel amavisd-new .

Le paramètre magique pour cette configuration est cleanup_service_name . Avec ce paramètre, nous pouvons utiliser un service de nettoyage différent pour chaque processus smtpd. D'abord, nous définissons un service de nettoyage supplémentaire (appelé no-headerchecks) dans master.cf

no-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=

Dans ce nettoyage, nous définissons des mime_header_checks vides pour désactiver le filtrage. La dernière étape consiste à dire au service de soumission d'utiliser nos contrôles sans en-tête

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=no-headerchecks 

2. Je veux exécuter différents header_checks pour smtpd et soumission.

Pour ce problème, vous pouvez utiliser plusieurs méthodes de service de nettoyage comme décrit ci-dessus.

D'abord, nous définissons un service de nettoyage supplémentaire (appelé second-headerchecks) dans master.cf

second-headerchecks unix    n       -       n       -       0       cleanup
    -o mime_header_checks=pcre:/path/to/2ndheaderchecks

Dans ce nettoyage, nous définissons les deuxièmes mime_header_checks à une autre table PCRE. La dernière étape consiste à dire au service de soumission d'utiliser nos vérifications de deuxième en-tête

submission inet n       -       n       -       -       smtpd
    -o cleanup_service_name=second-headerchecks

Remarque:

  • Votre cas ressemble à cette question . Malheureusement, la réponse de Laurentiu Roescu ne fonctionne que si vous souhaitez activer header_checks pour le courrier sortant qui utilise smtp comme transport. La bonne nouvelle est que sa première phrase sur le cleanupdémon nous donne une idée de deuxième solution.

  • Plusieurs méthodes de service de nettoyage peuvent être appliquées si vous souhaitez que différents header_checks, body_checks et autres paramètres définis dans man 5 header_checks.

masegaloeh
la source