Gmail menandai email Dovecot sebagai tidak aman

9

Saya pikir saya berhasil mengamankan server email Postfix / Dovecot saya. Saya memiliki sertifikat yang ditandatangani dari LetsEncrypt, yang berlaku untuk domain saya.

Mengirim & menerima berfungsi dengan baik, tetapi karena Gmail mulai menandai email yang tidak aman, semua email yang dikirim dari server saya ditandai sebagai tidak terenkripsi.

Pengguna Gmail melihat "Pesan ini tidak dienkripsi", seperti ini:

masukkan deskripsi gambar di sini

Di Postfix's main.cf, di antara pengaturan lain, saya punya:

# SASL, for SMTP authentication
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = private/auth

# TLS, for encryption
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_CAfile = /etc/letsencrypt/live/mydomain.com/chain.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mydomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mydomain.com/privkey.pem
tls_random_source = dev:/dev/urandom
smtpd_client_new_tls_session_rate_limit = 10
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_exclude_ciphers =
    EXP
    EDH-RSA-DES-CBC-SHA
    ADH-DES-CBC-SHA
    DES-CBC-SHA
    SEED-SHA
smtpd_tls_dh512_param_file = ${config_directory}/certs/dh_512.pem
smtpd_tls_dh1024_param_file = ${config_directory}/certs/dh_1024.pem
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_delay_reject = yes

Di Postfix's master.cf, di antara pengaturan lain, saya punya:

smtp      inet  n       -       -       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_use_tls=yes
  -o smtpd_tls_security_level=encrypt

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o broken_sasl_auth_clients=yes

Di Dovecot 10-ssl.conf, di antara pengaturan lain, saya punya:

ssl = required
ssl_ca = </etc/letsencrypt/live/mydomain.com/chain.pem
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem

Apakah Gmail secara keliru menandai sertifikat LetsEncrypt karena tidak mempercayai mereka, atau apakah email saya benar-benar dikirim tidak terenkripsi?

gavanon
sumber
1
Silakan kirim Postfix main.cf. Anda belum memasukkan semua yang relevan dalam cuplikan Anda.
Michael Hampton
@MichaelHampton - hal yang pasti. Saya telah menambahkan semua konten khusus main.cf. Hanya tidak termasuk hal-hal dasar seperti smtpd_banner, myhostname, dll
Gavanon

Jawaban:

10

Saya memecahkan ini dengan menambahkan kedua baris ini ke Postfix's main.cf:

smtp_tls_security_level = may
smtpd_tls_security_level = may

(Saya hanya menetapkan smtpd_tls_security_levelkarena artikel yang menyesatkan yang mengatakan bahwa semua smtp_nilai didepresiasikan smtpd_.)

gavanon
sumber
6

Email Anda terkirim tidak terenkripsi. Jika Anda hanya ingin mencoba yang terbaik, tambahkan yang berikut ke main.cf Anda

smtp_tls_security_level = may

Untuk menerapkan enkripsi TLS untuk email yang dikirim ke google tambahkan ini ke main.cf Anda

# Force TLS for outgoing server connection
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_CApath = /etc/postfix/rootcas/ 

ganti / etc / postfix / rootcas / dengan lokasi CA Root tepercaya Anda dan di file / etc / postfix / tls_policy add

#/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
gmail.com       secure ciphers=high
google.com      secure ciphers=high
googlemail.com  secure ciphers=high

ini akan memastikan bahwa email yang dikirim ke gmail.com., google.com dan googlemail.com dikirim terenkripsi dan diautentikasi server SMTP

Jika Anda tidak ingin mengautentikasi dan hanya mengenkripsi (ini diperlukan untuk situs dengan sertifikat palsu) gunakan

gmail.com       encrypt ciphers=high
google.com      encrypt ciphers=high
googlemail.com  encrypt ciphers=high

sebelum memulai kembali eksekusi postfix

postmap /etc/postfix/tls_policy
Jofre
sumber
Terima kasih untuk ini. Apa yang saya benar-benar coba lakukan adalah memaksa TLS kapan pun memungkinkan untuk semua tujuan, dan dengan aman kembali ke tidak terenkripsi hanya sebagai pilihan terakhir jika tujuan tidak mendukungnya. Apakah ini mungkin tanpa daftar domain tertentu yang dikelola? Seperti menangkap semua-memaksa TLS?
gavanon
Masalahnya adalah bahwa ada banyak server yang tidak mendukung TLS dan lainnya yang mendukungnya dan menggunakan sertifikat yang ditandatangani sendiri atau palsu. Juga saat STARTLS dikirim dalam bentuk teks yang jelas, seorang penyerang yang aktif dapat menghapusnya saat transit. Saya setuju bahwa menjaga meja panjang yang terpisah adalah yang paling aman tetapi bukan solusi yang paling dapat diandalkan
Jofre
Saya juga memiliki beberapa masalah dengan beberapa situs. Lihat Postfix "Sambungan TLS tepercaya dibuat" tetapi "Sertifikat server tidak diverifikasi"
Jofre
Terima kasih - bagian pertama dari jawaban Anda sangat membantu: smtp_tls_security_level = may. Hanya itu yang diperlukan, dan pengaturan khusus google lainnya tidak diperlukan.
gavanon
5

Pertimbangkan hubungan klien / server terkait dengan SMTP dan pengaturannya masuk akal:

2.1. Struktur dasar

Desain SMTP dapat digambarkan sebagai:

              +----------+                +----------+
  +------+    |          |                |          |
  | User |<-->|          |      SMTP      |          |
  +------+    |  Client- |Commands/Replies| Server-  |
  +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
  | File |<-->|          |    and Mail    |          |<-->| File |
  |System|    |          |                |          |    |System|
  +------+    +----------+                +----------+    +------+
               SMTP client                SMTP server

(Src: rfc5321.txt)

Jadi:

"smtp_tls_security_level" adalah untuk klien SMTP Postfix. Lihat: http://www.postfix.org/postconf.5.html#smtp_tls_security_level

"smtp d _tls_security_level" adalah untuk server SMTP Postfix, lihat: http://www.postfix.org/postconf.5.html#smtpd_tls_security_level

Ketika postfix mentransfer email ke gmail, pengaturan smtp_tls_security_level adalah pengaturan terkait.

Ketika postfix menerima email melalui smtp, pengaturan smtp d _tls_security_level relevan.

pengguna885983
sumber