Bagaimana cara memblokir lampiran pada surat masuk hanya menggunakan Postfix?

9

Saya memiliki server surat (CentOS 6.5) yang menjalankan Postfix dan Dovecot

Postfix mendengarkan pada port 25 untuk surat masuk dan 587 untuk surat keluar

Masalahnya adalah surat keluar dengan lampiran pdf sedang diblokir di mana saya hanya ingin surat masuk dengan lampiran pdf diblokir.

Saya memiliki baris konfigurasi ini di main.cf

 mime_header_checks = regexp:/etc/postfix/blocked_attachments

File diblokir_attachments berisi:

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

Jadi surat masuk dengan lampiran pdf dengan benar diblokir, tetapi ketika saya menulis email dengan PDF yang juga diblokir ketika saya mencoba dan mengirim.

Bagaimana saya bisa memberi tahu postfix bahwa saya hanya ingin lampiran yang masuk difilter? Atau apakah saya melewatkan sesuatu?

Aditya K
sumber

Jawaban:

7

Saya akan menulis ulang pertanyaan Anda menjadi:

Bagaimana saya bisa menggunakan _header_checks yang berbeda untuk smtpd (port 25) dan pengiriman (port 587)?

Masalah kanonik ini dapat dibagi dengan beberapa kondisi

  1. Saya ingin mematikan header_checks untuk salah satu smtpd atau pengiriman.
  2. Saya ingin menjalankan header_check yang berbeda untuk smtpd dan pengiriman.

1. Saya ingin mematikan header_checks untuk salah satu smtpd atau pengiriman.

Sebagai contoh saya berasumsi bahwa Anda ingin mematikan header_checks untuk pengiriman (email keluar) .

Solusi 1: metode accept_override_options

Anda dapat menggunakan parameter postfix yang disebut accept_override_options . Dengan parameter, Anda dapat mengganti sakelar global header_check, sehingga filter tidak akan berjalan. # main.cf header_checks = pcre: / path / ke / header_checks

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

Peringatan: ini akan mematikan SEMUA _header_checks dan body_checks didefinisikan dalam man 5 header_checks . Untuk kontrol yang diselesaikan, parameter mana yang akan dimatikan, lihat Solusi 2.

Solusi 2: Beberapa metode layanan pembersihan

Kami dapat menggunakan beberapa teknik pembersihan layanan untuk masalah Anda seperti *_header_checksyang dilakukan oleh layanan pembersihan . Anda dapat melihat contoh pengaturan ini di tutorial baru amavisd .

Parameter ajaib untuk konfigurasi ini adalah cleanup_service_name . Dengan parameter ini, kita dapat menggunakan layanan pembersihan yang berbeda untuk setiap proses smtpd. Pertama kita mendefinisikan satu layanan pembersihan tambahan (disebut no-headerchecks) di master.cf

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

Dalam pembersihan ini, kami mendefinisikan mime_header_checks kosong untuk menonaktifkan pemfilteran. Langkah terakhir adalah memberi tahu layanan pengiriman untuk menggunakan cek tidak-header kami

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

2. Saya ingin menjalankan header_check yang berbeda untuk smtpd dan pengiriman.

Untuk masalah ini, Anda dapat menggunakan beberapa metode layanan pembersihan seperti dijelaskan di atas.

Pertama, kita mendefinisikan satu layanan pembersihan tambahan (disebut header-cek kedua) di master.cf

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

Dalam pembersihan ini, kami mendefinisikan mime_header_checks kedua ke tabel PCRE lainnya. Langkah terakhir adalah memberi tahu layanan pengiriman untuk menggunakan cek tajuk kedua kami

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

catatan:

  • Kasing Anda terlihat mirip dengan pertanyaan ini . Sayangnya jawaban dari Laurentiu Roescu hanya berfungsi jika Anda ingin mengaktifkan header_checks untuk email keluar yang menggunakan smtp sebagai transport. Berita baiknya adalah kalimat pertamanya tentang cleanupdaemon memberi kita ide untuk solusi kedua.

  • Beberapa metode layanan pembersihan dapat diterapkan jika Anda ingin header_checks, body_checks dan parameter lain yang berbeda didefinisikan dalam man 5 header_checks.

masegaloeh
sumber