Pada postfix, cara menegakkan tls + auth over 587 sambil membiarkan tls opsional untuk 25

9

Saya ingin meng-host layanan surat untuk beberapa domain. Saya telah berhasil mengatur postfix untuk berkonsultasi dengan sql untuk domain-domain virtual tersebut. Yang ingin saya lakukan adalah:

  • Untuk koneksi pada 25:

    1. Tolak relai (hanya kirim ke penerima domain virtual saya)
    2. Biarkan tl opsional, tetapi tawarkan auth hanya jika klien melakukan tl
    3. Hanya terima klien yang tidak masuk daftar hitam (mis. Batasi XBL + SBL + PBL dari spamhaus) atau klien yang melakukan tl dan auth ("server email teman" yang disiapkan untuk mengautentikasi dengan saya dengan auth dan tl)
  • Untuk koneksi di 587:

    1. Terapkan tl dan auth
    2. Izin merelay.
    3. Hanya terima klien yang tidak masuk daftar hitam (daftar hitam seperti di atas tetapi jangan periksa PBL)

Pertanyaan saya:

  • A. Saya tahu opsi postfix untuk hal di atas, tetapi saya tidak dapat menemukan cara membedakannya berdasarkan port mendengarkan.

  • B. Apakah saya akan mengalami masalah yang diketahui secara luas dengan klien yang seharusnya sah dengan kebijakan di atas?

Saya baru mengenal pengaturan server email, maaf atas pertanyaan / assupmtion yang tidak berarti (tunjukkan). Terima kasih.

Paralife
sumber

Jawaban:

15

Itu mudah,

  1. Di dalamnya /etc/postfix/main.cfAnda akan menambahkan / mengubah

    smtpd_tls_security_level=may
    

    sehingga secara default TLS tersedia (tetapi opsional).

  2. Kemudian, di Anda, /etc/postfix/master.cfAnda akan menimpanya untuk port 587 ( submissionport) dengan menimpa parameter:

    submission inet n       -       n       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
    

    Ini membutuhkan TLS untuk semua koneksi pengiriman (port 587).

Sedangkan untuk menolak relai, ini adalah default; menyampaikan hanya diizinkan untuk pengguna yang diautentikasi, dan alamat IP yang Anda tentukan mynetworks.

Akhirnya Anda dapat menambahkan daftar hitam main.cfdengan menambahkan ke smtpd_recipient_restrictions:

    reject_rbl_client zen.spamhaus.org,

atau daftar hitam apa pun yang Anda inginkan. Ini akan muncul di dekat akhir daftar, tepat sebelum final permit.


Satu hal terakhir. Untuk gagasan lainnya tentang cara mencegah spam, lihat Memerangi Spam - Apa yang bisa saya lakukan sebagai: Administrator Email, Pemilik Domain, atau Pengguna?

Michael Hampton
sumber
Terima kasih, hanya satu titik buram: Pada port 25 saya ingin menolak tanpa syarat relaying, tidak peduli apakah klien dikonfirmasi atau tidak.
Paralife
Otentikasi pada port 25 dinonaktifkan secara default. Tetapi untuk memastikan, pastikan bahwa smtpd_sasl_auth_enableBUKAN di dalam Anda main.cfdan juga BUKAN di smtpbagian Anda master.cf(tapi itu HARUS diatur ke yesdalam submissionbagian). The master.cfakan terlihat seperti ini .
Michael Hampton
Benar tapi saya ingin mengaktifkan auth + tls opsional pada 25. Saya hanya tidak ingin menyampaikan pada 25. Pada dasarnya saya ingin menjadi liberal tentang bagaimana seseorang menghubungkan tetapi sangat ketat dalam menyampaikan (menolak semua menyampaikan). Relay tidak boleh diizinkan kecuali jika diaktifkan pada 587 dan klien diotorisasi melalui tls. Kombinasi lainnya harus menolak relai. Saya mungkin hanya akan menghapus permit_sasl_authenticated dari smtpd_relay_restrictions dan meletakkannya hanya di override untuk 587 di master.cf. Terima kasih.
Paralife
Orang tidak seharusnya mencoba mengaut pada 25. Anda dapat mengaktifkannya jika Anda mau, tetapi Anda seharusnya tidak melakukannya.
Michael Hampton
3

Saya tidak tahu jawaban untuk pertanyaan B, tetapi untuk A:

di postfix Anda biasanya memiliki master.cftempat Anda mendefinisikan setiap proses yang berjalan, sering kali dalam /etc/postfix. Dalam file itu Anda memiliki satu entri per menjalankan layanan postfix, jadi ada dua entri berbeda untuk port 25dan port 587. Untuk masing-masing, Anda juga dapat meneruskan parameter smtpdke agar mereka memiliki pengaturan yang berbeda.

Itulah contoh dari server surat saya:

4.3.2.1:25      inet  n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
4.3.2.1:10027   inet  n       -       -       -       -       smtpd
  -o mynetworks=91.190.245.4/32 127.0.0.0/8
  -o smtpd_client_restrictions=permit_mynetworks,reject
ulangan
sumber