Postfix reject_unknown_reverse_client_hostname: ganti default unknown_client_reject_code (450) menjadi 550. Mengapa / Kapan saya seharusnya tidak?

9

Dalam pertempuran sehari-hari melawan SPAM, ada beberapa kali ketika saya tergoda untuk sangat menegakkan persyaratan DNS dari klien yang terhubung dari Internet liar.

Secara terperinci, saya akan menambahkan pengaturan reject_unknown_reverse_client_hostname dalam bagian smtpd_client_restrictions saya , seperti pada:

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            reject_unknown_reverse_client_hostname
            reject_unauth_pipelining 

Bagaimanapun, saya mencatat bahwa ketika menekan batasan seperti itu, perilaku Postfix cukup "lunak" karena nilai default untuk unknown_client_reject_codeadalah 450. Oleh karena itu, klien diundang untuk terus mencoba ulang.

Ketika sedang menyelidiki tanggapan 550, saya bertemu dengan pernyataan berikut, pada dokumentasi resmi Postfix :

masukkan deskripsi gambar di sini

Saya sama sekali bukan ahli tentang keseluruhan RFC 5321 , tetapi sebagai seseorang yang cukup tua untuk mengetahui RFC 821 , saya benar-benar tidak mengerti mengapa, respon 550 bukannya 450, dapat memengaruhi instance Postfix saya pada level SMTP maksimum ( melanggar kepatuhan RFC), terutama mengingat bahwa dalam kasus kesalahan sementara, Postfix akan tetap dengan 450 terlepas dari pengaturan eksplisit.

Jadi, bisakah seseorang membantu saya memahami apa masalah dengan penggantian seperti itu?


PS: Sementara itu, saya akhiri dengan batasan "santai":

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            warn_if_reject reject_unknown_reverse_client_hostname
            reject_non_fqdn_helo_hostname
            reject_unauth_pipelining 
            reject_invalid_helo_hostname 
Damiano Verzulli
sumber

Jawaban:

12

Saya akan mulai dengan dua jawaban praktis

  1. Jawaban pertama dan paling jelas adalah bahwa dalam kasus di mana ada kesalahan DNS sementara, bouncing sementara akan memungkinkan server email pengirim untuk mencoba lagi sampai kesalahan DNS diperbaiki. Dalam hal ini, bouncing permanen akan memblokir pesan ham yang sebenarnya dari mencapai Anda.

  2. Jawaban kedua adalah banyak spam dikirim melalui kotak botnet yang tidak memiliki bentuk program fungsional apa pun untuk mengirim surat. Mereka hanya akan menyemprotkan sampah mereka sekali saja, dan tidak akan mencoba mengirim kembali pesan apa pun apakah pesan tersebut mendapat kesalahan sementara atau permanen. Jadi dengan menggunakan kesalahan sementara, Anda memblokir sebagian besar spam untuk selamanya, tetapi Anda masih mengizinkan ham untuk mencoba lagi. (Ngomong-ngomong, inilah mengapa penghijauan masih berfungsi dan masih banyak spam.)

Selain jawaban-jawaban ini, ada juga jawaban yang lebih sesuai dengan teori dan RFC

RFC mengatakan di bagian 4.2.1. bahwa:

Aturan praktis untuk menentukan apakah balasan cocok dengan kategori 4yz atau 5yz (lihat di bawah) adalah bahwa balasan adalah 4yz jika mereka dapat berhasil jika diulangi tanpa perubahan dalam bentuk perintah atau properti pengirim atau penerima (yaitu , perintah diulang secara identik dan penerima tidak memasang implementasi baru).

Dalam kasus kegagalan pencarian terbalik, pesan mungkin dapat diterima tanpa ada perubahan pada pesan itu sendiri, asalkan hanya bahwa kesalahan DNS diperbaiki. Oleh karena itu, ini harus menjadi kesalahan sementara.

Dalam kasus di mana pesan tersebut bukan spam, sysadmin pengirim mailserver mungkin melihat pesan kesalahan dan memperbaiki masalah DNS, sehingga pesan dapat dikirim tanpa pengguna harus campur tangan dan mengirim ulang pesan. Dan kecuali jika pengguna yang mengirim email juga bertanggung jawab atas server surat dan / atau entri DNS-nya, bahkan jika mereka mendapatkan bouncing permanen secara langsung, mereka tidak akan dapat melakukan apa pun dengan itu - tidak seperti misalnya kasus kesalahan ejaan alamat.

Tentu saja, Anda selalu berhak untuk menolak email apa pun dengan alasan apa pun.

Jenny D
sumber
Saya berpikir tentang masalah sementara DNS tapi .... sepertinya mereka seharusnya tidak menjadi masalah karena ... " Server SMTP selalu membalas dengan 450 ketika pemetaan gagal karena kondisi kesalahan sementara ". Ini harus mencakup masalah pencarian DNS sementara. Bukan? Adapun poin kedua (BotNet, greylisting, dll.), Terdengar masuk akal: ketika klien tidak menerapkan mekanisme antrian yang tepat, respons 4XX menghasilkan efek yang sama dengan yang 5XX. Lagi pula saya masih merindukan mengapa ini berdampak pada tingkat RFC.
Damiano Verzulli
2
@ DamianoVerzulli Ini akan berlaku ketika pemetaan gagal dengan kesalahan, bukan ketika DNS salah dikonfigurasi untuk mengembalikan nama yang salah, dan kemudian diperbaiki. Bagaimanapun, saya telah sedikit memperluas masalah yang berkaitan dengan RFC.
Jenny D
1
Terima kasih telah menunjuk ke bagian RFC yang tepat. Saya fokus pada ini: "balasan yang 4yz jika mereka dapat berhasil jika diulang TANPA GANTI dalam bentuk perintah atau di PROPERTIES dari PENGIRIM atau penerima". Dugaan pertama saya adalah bahwa nama host DNS klien, dan juga pemetaan DNS baliknya, adalah properti pengirim. Bukan? Kalau tidak, saya tidak bisa melihat apa yang bisa menjadi properti pengirim. (BTW: tolong jangan anggap komentar saya pribadi. Saya sangat tertarik dengan diskusi ini dan sangat menghargai poin Anda! Terima kasih telah berkomentar!).
Damiano Verzulli
1
@DamianoVerzulli Nama host DNS bukan properti pengirim surat dan tidak dapat diubah dalam konfigurasi server surat. Itu dikendalikan oleh server DNS otoritatif, yang biasanya bahkan bukan server yang sama, apalagi bagian dari server email. Terkadang bahkan tidak dikendalikan dalam organisasi yang sama. (Saya tidak mengambilnya secara pribadi - ini adalah diskusi tentang fakta, tanpa argumen ad hominem, tidak ada yang perlu diperhatikan secara pribadi! Saya setuju bahwa ini sangat menarik dan saya tidak berpikir itu jelas, ada kasus untuk menjadi dibuat untuk pihak lain juga.)
Jenny D