Wie blockiere ich Anhänge an eingehenden Mails nur mit Postfix?

9

Ich habe einen Mailserver (CentOS 6.5), auf dem Postfix und Dovecot ausgeführt werden

Postfix überwacht Port 25 auf eingehende E-Mails und 587 auf ausgehende E-Mails

Das Problem ist, dass ausgehende E-Mails mit PDF-Anhängen blockiert werden, während eingehende E-Mails nur mit blockierten PDF-Anhängen blockiert werden sollen.

Ich habe diese Konfigurationszeile in main.cf

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

Die blocked_attachments-Datei enthält:

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

Eingehende E-Mails mit einem PDF-Anhang werden also korrekt blockiert. Wenn ich jedoch eine E-Mail mit einer PDF-Datei verfasse, wird diese auch blockiert, wenn ich versuche, sie zu senden.

Wie kann ich Postfix mitteilen, dass nur eingehende Anhänge gefiltert werden sollen? Oder habe ich etwas verpasst?

Aditya K.
quelle

Antworten:

7

Ich werde Ihre Frage umschreiben:

Wie kann ich verschiedene _header_checks für smtpd (Port 25) und Submission (Port 587) verwenden?

Dieses kanonische Problem kann mit mehreren Bedingungen geteilt werden

  1. Ich möchte header_checks für smtpd oder Submission deaktivieren.
  2. Ich möchte verschiedene header_checks für smtpd und Submission ausführen.

1. Ich möchte header_checks für smtpd oder Submission deaktivieren.

Für das Beispiel gehe ich davon aus, dass Sie die header_checks für die Übermittlung (ausgehende E-Mail) deaktivieren möchten .

Lösung 1: Methode "receive_override_options"

Sie können den Postfix-Parameter " receive_override_options" verwenden . Mit dem Parameter können Sie den globalen Schalter header_check überschreiben, damit der Filter nicht ausgeführt wird. # main.cf header_checks = pcre: / path / to / header_checks

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

Vorsichtsmaßnahmen: Dadurch werden ALLE _header_checks und body_checks deaktiviert, die in man 5 header_checks definiert sind . Informationen zur vollständigen Steuerung, welcher Parameter ausgeschaltet werden soll, finden Sie in Lösung 2.

Lösung 2: Mehrfachbereinigungsdienstmethode

Wir können mehrere Bereinigungsservice-Techniken für Ihr Problem verwenden, wie *_header_checkssie vom Bereinigungsservice durchgeführt wurden. Sie können das Beispiel dieses Setups in einem neuen Tutorial sehen .

Der magische Parameter für diese Konfiguration ist cleanup_service_name . Mit diesem Parameter können wir für jeden smtpd-Prozess einen anderen Bereinigungsdienst verwenden. Zuerst definieren wir in master.cf einen zusätzlichen Bereinigungsdienst (No-Headerchecks genannt)

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

In dieser Bereinigung definieren wir leere mime_header_checks, um die Filterung zu deaktivieren. Der letzte Schritt besteht darin, den Übermittlungsdienst anzuweisen, unsere No-Headerchecks zu verwenden

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

2. Ich möchte verschiedene header_checks für smtpd und Submission ausführen.

Für dieses Problem können Sie die oben beschriebene Methode für mehrere Bereinigungsdienste verwenden.

Zuerst definieren wir einen zusätzlichen Bereinigungsdienst (als Second-Headerchecks bezeichnet) in master.cf

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

In dieser Bereinigung definieren wir zweite mime_header_checks für andere PCRE-Tabellen. Der letzte Schritt besteht darin, den Übermittlungsdienst anzuweisen, unsere zweiten Headerchecks zu verwenden

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

Hinweis:

  • Ihr Fall sieht bei dieser Frage ähnlich aus . Leider funktioniert die Antwort von Laurentiu Roescu nur, wenn Sie header_checks für ausgehende E-Mails aktivieren möchten, die SMTP als Transport verwenden. Die gute Nachricht ist, dass sein erster Satz über cleanupDaemon uns eine Idee für eine zweite Lösung gibt.

  • Es können mehrere Bereinigungsdienstmethoden angewendet werden, wenn Sie unterschiedliche header_checks, body_checks und andere in definierte Parameter wünschen man 5 header_checks.

masegaloeh
quelle