Gmail помечает почту Dovecot как ненадежную

9

Я думал, что успешно защитил свой почтовый сервер Postfix / Dovecot. У меня есть подписанный сертификат от LetsEncrypt, который действителен для моего домена.

Отправка и получение работают нормально, но поскольку Gmail начал отмечать небезопасные электронные письма, все сообщения, отправленные с моего сервера, помечаются как незашифрованные.

Пользователи Gmail видят «Это сообщение не было зашифровано», например:

введите описание изображения здесь

В Postfix main.cf, среди прочих настроек, у меня есть:

# 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

В Postfix master.cf, среди прочих настроек, у меня есть:

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

В Dovecot 10-ssl.conf, среди других настроек, у меня есть:

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

Gmail ошибочно помечает сертификаты LetsEncrypt, потому что не доверяет им, или моя электронная почта действительно отправляется в незашифрованном виде?

Гаванон
источник
1
Пожалуйста, отправьте постфикс main.cf. Вы не включили все релевантные в ваши фрагменты.
Майкл Хэмптон
@MichaelHampton - конечно. Я добавил весь пользовательский контент моего main.cf. Это исключает только основные вещи, как smtpd_banner, myhostnameи т. Д.
gavanon

Ответы:

10

Я решил это, добавив обе эти строки в Postfix main.cf:

smtp_tls_security_level = may
smtpd_tls_security_level = may

(Я сделал это только smtpd_tls_security_levelиз-за вводящей в заблуждение статьи, в которой говорилось, что все smtp_ценности обесцениваются в пользу smtpd_.)

Гаванон
источник
6

Ваше письмо отправлено в незашифрованном виде. Если вы хотите попробовать себя лучше, добавьте следующее в main.cf

smtp_tls_security_level = may

Чтобы включить шифрование TLS для электронной почты, отправленной в Google, добавьте это в свой main.cf

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

замените / etc / postfix / rootcas / на местоположение доверенных корневых центров сертификации и в файле / 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

это приведет к тому, что электронная почта, отправленная на gmail.com., google.com и googlemail.com, будет отправлена ​​в зашифрованном виде и аутентифицируется на SMTP-сервере.

Если вы не хотите проходить проверку подлинности и просто шифровать (это необходимо для сайтов с поддельными сертификатами), используйте

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

перед перезапуском postfix выполните

postmap /etc/postfix/tls_policy
Jofre
источник
Спасибо за это. Что я действительно пытаюсь сделать, так это форсировать TLS, когда это возможно, по всем направлениям и безопасно возвращаться к незашифрованным только в качестве крайней меры, если пункт назначения не поддерживает его. Возможно ли это без ведения списков конкретных доменов? Как всеохватывающее форсирование TLS?
Гаванон
Проблема заключается в том, что существует много серверов, которые не поддерживают TLS, и другие, которые поддерживают его и используют поддельные или поддельные сертификаты. Также, поскольку STARTLS отправляется в виде открытого текста, активный злоумышленник может лишить его при передаче. Я согласен с тем, что ведение отдельного длинного стола - это самое безопасное, но не самое надежное решение
Jofre
У меня также есть некоторые проблемы с некоторыми сайтами. См. Постфикс «Доверенное соединение TLS установлено», но «Сертификат сервера не проверен»
Jofre
Спасибо - первая часть вашего ответа была полезна smtp_tls_security_level = may. Это было все, что требовалось, а остальные специфичные для Google настройки не были нужны.
Гаванон
5

Рассмотрим отношения клиент / сервер в отношении SMTP, и настройки имеют смысл:

2.1. Базовая структура

Дизайн SMTP может быть изображен как:

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

(Src: rfc5321.txt)

Таким образом:

«smtp_tls_security_level» для SMTP-клиента Postfix. Смотрите: http://www.postfix.org/postconf.5.html#smtp_tls_security_level

«smtp d _tls_security_level» предназначен для SMTP-сервера Postfix. См .: http://www.postfix.org/postconf.5.html#smtpd_tls_security_level.

Когда postfix передает почту в gmail, параметр smtp_tls_security_level является связанным параметром.

Когда postfix получает почту через smtp, параметр smtp d _tls_security_level имеет значение.

user885983
источник