Я думал, что успешно защитил свой почтовый сервер 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, потому что не доверяет им, или моя электронная почта действительно отправляется в незашифрованном виде?
main.cf
. Вы не включили все релевантные в ваши фрагменты.smtpd_banner
,myhostname
и т. Д.Ответы:
Я решил это, добавив обе эти строки в Postfix
main.cf
:(Я сделал это только
smtpd_tls_security_level
из-за вводящей в заблуждение статьи, в которой говорилось, что всеsmtp_
ценности обесцениваются в пользуsmtpd_
.)источник
Ваше письмо отправлено в незашифрованном виде. Если вы хотите попробовать себя лучше, добавьте следующее в main.cf
Чтобы включить шифрование TLS для электронной почты, отправленной в Google, добавьте это в свой main.cf
замените / etc / postfix / rootcas / на местоположение доверенных корневых центров сертификации и в файле / etc / postfix / tls_policy add
это приведет к тому, что электронная почта, отправленная на gmail.com., google.com и googlemail.com, будет отправлена в зашифрованном виде и аутентифицируется на SMTP-сервере.
Если вы не хотите проходить проверку подлинности и просто шифровать (это необходимо для сайтов с поддельными сертификатами), используйте
перед перезапуском postfix выполните
источник
smtp_tls_security_level = may
. Это было все, что требовалось, а остальные специфичные для Google настройки не были нужны.Рассмотрим отношения клиент / сервер в отношении SMTP, и настройки имеют смысл:
2.1. Базовая структура
Дизайн SMTP может быть изображен как:
(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 имеет значение.
источник