Saat mengirim email dengan Postfix, bagaimana saya bisa menyembunyikan IP dan nama pengguna pengirim di header Diterima?

13

Saat mengirim surat, Postfix memasukkan IP pengguna dan nama pengguna yang diautentikasi ke dalam header Diterima pada email. Meskipun ini berguna untuk melacak siapa yang mengirim email tertentu yang dikirim dari server email Anda, ini juga memiliki implikasi privasi. Dalam situasi berskala kecil di mana saya bisa memercayai semua pengguna untuk tidak membuat akun mereka disusupi dan berubah menjadi zombie spam, saya lebih suka tidak menyiarkan alamat IP dan nama akun untuk dibaca semua orang. Singkatnya, bagaimana saya mengatur Postfix untuk tidak mengirim ini:

Diterima: dari [xxxx] (pc1.example.com [xxxx]) (menggunakan TLSv1 dengan cipher DHE-RSA-AES256-SHA (256/256 bit)) (Tidak ada sertifikat klien yang diminta) (Pengirim yang diverifikasi: pengguna) melalui surat. example.com (Postfix) dengan ESMTPSA id CC77010C148 untuk; Jumat, 11 Nov 2011 04:55:18 +0000 (UTC)

Michael Kropat
sumber

Jawaban:

20

Solusi standar adalah dengan menggunakan opsi header_checks . Namun, ini akan berhasil jika kami memfilter baris yang diterima pada semua email baik yang masuk maupun yang keluar (karena hal ini akan terjadi), kami berpotensi kehilangan Header yang diterima pada email yang dikirimkan kepada kami, yang dapat menjadi penting untuk pemecahan masalah. Untuk menyiasati masalah ini, kita akan menerapkan header_checkshanya untuk email yang tidak mungkin telah dikirim kepada kami-mail yang dikirim ke pengajuan pelabuhan (Anda sedang menggunakan pelabuhan pengajuan , bukan? ).

Posting ini menjelaskan cara menerapkan header_checkssecara eksklusif ke port pengiriman. Yang perlu kita lakukan adalah meneruskan opsi cleanup_service_name ke layanan pengiriman sehingga kita dapat mengatur layanan pembersihan baru, "subcleanup." Bagian yang relevan /etc/postfix/master.cfmungkin terlihat seperti ini:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup

Sekarang kita bisa meneruskan header_checksopsi ke layanan pembersihan baru. Bagian dari itu /etc/postfix/master.cfmungkin terlihat seperti ini:

cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks

Terakhir, kita perlu membuat file /etc/postfix/submission_header_checks, yang akan berisi regex yang menyaring baris header yang diterima yang menyinggung. Regex mana yang Anda masukkan ke dalam file tergantung pada apakah Anda telah smtpd_sasl_authenticated_headermenetapkan.

Jika smtpd_sasl_authenticated_headeradalah yes, kemudian gunakan:

/^Received:.*\(Authenticated sender:/ IGNORE

Jika tidak, gunakan:

/^Received:.*\(Postfix/ IGNORE

(Terima kasih kepada Dominic P dan Bryan Drewery karena telah menunjukkan cara menangani kasus kedua.)

Michael Kropat
sumber
Apakah kamu harus menelepon postmap submission_header_checks?
Mitar
@Mitar tidak tahu, tetapi jika Anda tahu Anda melakukannya, jangan ragu untuk mengedit jawabannya. Ini adalah instruksi lama untuk 10.04, tapi saya mungkin akan memperbaruinya ketika 14.04 keluar.
Michael Kropat
Tampaknya itu berhasil tanpa. :-)
Mitar
1
+1, terima kasih atas jawaban yang sangat membantu. Beberapa tahun kemudian, dan saya harus melakukan sedikit perubahan. Saya menjalankan Postfix 2.9.6. Saya mengubah regex menjadi: /^Received:.*\(Postfix/ IGNOREkarena saya tidak mendapatkan bagian "Pengirim terotentikasi" di header saya. Apakah Anda melihat risiko yang terkait dengan regex baru saya?
Dominic P
1
Jawaban ini mengasumsikan smtpd_sasl_authenticated_header = ya disetel. Tanpa itu maka diperlukan regex yang dimodifikasi oleh Dominic.
Bryan Drewery
-1

Anda dapat gunakan

smtpd_sasl_authenticated_header = no

di postfix/main.cfuntuk menghilangkan informasi header di surat keluar Anda.

Markus
sumber
mengapa jawaban ini jauh lebih sederhana daripada @ Michael? Apakah ini menghapus IP dari semua header, bukan hanya dari mail yang diterima melalui port pengiriman?
knocte
2
@knocte smtpd_sasl_authenticated_headerdiatur ke "tidak" secara default. Ketika diaktifkan, Postfix menambahkan nama pengguna yang digunakan untuk otentikasi SASL ke header "Diterima" awal - itulah yang menambahkan bagian "Pengirim terotentikasi: pengguna" yang ditunjukkan dalam pertanyaan. @ Jawaban Michael menghapus tidak hanya bagian pengguna, tetapi seluruh tajuk "Terima", termasuk IP klien.
n.st
@ n.st: apakah Anda mengatakan bahwa jawaban Markus tidak menghapus IP dan karena itu bukankah ini pertanyaan SO?
knocte
@knocte Persis.
n.st
1
Saya perlu 125+ untuk downvote. Saya sudah mengujinya dan hanya menghapus Nama Pengguna, bukan IP.
John