Jak blokować załączniki do wiadomości przychodzących tylko przy użyciu Postfix?

9

Mam serwer pocztowy (CentOS 6.5) z systemem Postfix i Dovecot

Postfix nasłuchuje na porcie 25 dla poczty przychodzącej i 587 dla poczty wychodzącej

Problem polega na tym, że poczta wychodząca z załącznikami pdf jest blokowana tam, gdzie chcę tylko poczty przychodzącej z załącznikami pdf.

Mam tę linię konfiguracyjną w main.cf

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

Plik block_attachments zawiera:

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

Tak więc poczta przychodząca z załącznikiem pdf jest poprawnie blokowana, ale kiedy tworzę wiadomość e-mail z plikiem PDF, który jest również blokowany podczas próby wysłania.

Jak mogę powiedzieć postfiksowi, że chcę filtrować tylko załączniki przychodzące? A może coś przeoczyłem?

Aditya K
źródło

Odpowiedzi:

7

Przepiszę twoje pytanie:

Jak mogę używać różnych _header_checks dla smtpd (port 25) i przesyłania (port 587)?

Ten problem kanoniczny można podzielić na kilka warunków

  1. Chcę wyłączyć head_checks dla jednego z smtpd lub przesyłania.
  2. Chcę uruchamiać różne nagłówki nagłówka dla smtpd i przesyłania.

1. Chcę wyłączyć head_checks dla jednego z smtpd lub przesyłania.

W tym przykładzie zakładam, że chcesz wyłączyć sprawdzanie nagłówka dla wysyłania (wychodząca wiadomość e-mail) .

Rozwiązanie 1: Metoda receive_override_options

Możesz użyć parametru Postfix o nazwie receive_override_options . Za pomocą parametru można zastąpić globalny przełącznik wyboru nagłówka, aby filtr nie działał. # main.cf header_checks = pcre: / path / to / header_checks

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

Ostrzeżenia: spowoduje to wyłączenie WSZYSTKICH __główek_kontroli i body_kontroli zdefiniowanych w man 5 nagłówków_kontrolach . Aby uzyskać pełną kontrolę, który parametr zostanie wyłączony, zobacz Rozwiązanie 2.

Rozwiązanie 2: Metoda wielu usług czyszczenia

Możemy zastosować technikę wielokrotnego czyszczenia dla twojego problemu, tak jak *_header_checkszostała wykonana przez usługę czyszczenia . Możesz zobaczyć przykład tej konfiguracji w samouczku amavisd-new .

Magicznym parametrem dla tej konfiguracji jest cleanup_service_name . Za pomocą tego parametru możemy użyć innej usługi czyszczenia dla każdego procesu smtpd. Najpierw definiujemy jedną dodatkową usługę czyszczenia (zwaną bez kontroli nagłówków) w master.cf

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

W tym czyszczeniu definiujemy puste kontrolki mime_header_checks, aby wyłączyć filtrowanie. Ostatnim krokiem jest poinformowanie usługi przesyłania o skorzystaniu z naszych kontroli braku nagłówka

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

2. Chcę uruchomić różne nagłówki nagłówka dla smtpd i przesyłania.

W przypadku tego problemu można użyć wielu metod usługi czyszczenia, jak opisano powyżej.

Najpierw definiujemy jedną dodatkową usługę czyszczenia (zwaną drugą kontrolą nagłówków) w master.cf

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

W tym czyszczeniu definiujemy drugie kontrole mime_header_check do innej tabeli PCRE. Ostatnim krokiem jest poinformowanie usługi przesyłania o skorzystaniu z naszych drugiej kontroli nagłówków

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

Uwaga:

  • Twoja sprawa wygląda podobnie z tym pytaniem . Niestety odpowiedź Laurentiu Roescu działa tylko wtedy, gdy chcesz włączyć nagłówki dla wiadomości wychodzących, które używają smtp jako transportu. Dobra wiadomość jest taka, że ​​jego pierwsze zdanie na temat cleanupdemona daje nam pomysł na drugie rozwiązanie.

  • Można zastosować wiele metod usługi czyszczenia, jeśli chcesz zdefiniować różne nagłówki, body_checks i inne parametry man 5 header_checks.

masegaloeh
źródło