Я работаю на сервере Postfix, который отправляет только электронные письма (информационные бюллетени).
Я прочитал, что должен включить TLS и / или SSL в Postfix, чтобы повысить производительность доставки почты. Это правда? Есть ли разница между SSL и TLS в Postfix?
У меня уже есть эти три строки по умолчанию при установке Postfix:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
Поэтому мне интересно, включен ли SSL / TLS по умолчанию? Что это за автоматически сгенерированные pem и ключевые файлы? Как я могу заменить их своим сертификатом HTTPS? У меня уже есть сертификат HTTPS для моего домена. Могу ли я использовать одни и те же сертификаты для Postfix и Nginx?
включить TLS и / или SSL на postfix, чтобы повысить производительность доставки почты
Нет. TLS обеспечивает шифрование для пользователей и во время транспортировки, но не должен влиять на доставку, если вы не отправляете на сервер, который принимает только TLS. какой воля улучшить доставляемость - правильно настроить записи DKIM, DMARC, MTA-STS и т. д. Это сложная тема, не способствующая здесь однозначным ответам.
разница между SSL и TLS
Никакой разницы для ваших целей.
включен по умолчанию
Отправка: да, Получение: нет - установлен самозаверяющий сертификат по умолчанию. В Интернете доступно множество руководств и man postfix
. Также Документация Postfix TLS
замените их моим сертификатом https
Большинство просто заходят сюда. Опять же, Интернет и мужчина - ваши друзья.
Включение шифрования не помогает повысить производительность доставки, но рекомендуется, поскольку оно увеличивает конфиденциальность электронной почты. Шифрование электронной почты на транспорте стало стандартом, как вы можете заметить из отчета Google о прозрачности на Шифрование электронной почты при передаче.
Хотя SSL и более старые версии TLS устарели, электронная почта является обратно совместимой инфраструктурой, которая считает любое шифрование лучше, чем его отсутствие, и готова откатиться к незашифрованным соединениям. Таким образом, атаки типа «злоумышленник посередине» будут простыми, и такие методы, как безопасность SMTP через Opportunistic DANE TLS (RFC 7672) придуманы для повышения безопасности при сохранении обратной совместимости.
По умолчанию (с мая 2020 г.) SSLv2 и SSLv3 отключены в Postfix для обоих
smtp_tls_protocols
- клиентский компонент для доставка почта иsmtpd_tls_protocols
- серверный компонент для получение почта.В моем ответе резюмируются текущие передовые практики и способы их реализации в Postfix.
В настоящее время у вас есть самозаверяющие сертификаты "змеиное масло" по умолчанию, которые поставляются с Postfix. Вы сказали, что у вас уже есть сертификат для вашего веб-сервера, и вы, конечно, можете использовать путь для этой цепочки сертификатов и ключа, но чтобы этот ответ был более полезным для остальных, можно также заменить их бесплатными сертификатами Let's Encrypt. Для этого,
использовать созданные им сертификаты для входящей почты. Пример:
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_security_level=may
Заметь
Ваш текущий smtpd_use_tls
заменяется на smtpd_tls_security_level
в Postfix ≥ 2.3.
с Postfix ≥ 3.4 предпочтительный способ настройки серверных ключей и сертификатов - через smtpd_tls_chain_files
параметр.
на RFC 3207, 4 вы должны использовать гибкую TLS на общедоступных SMTP-серверах:
Общедоступный SMTP-сервер НЕ ДОЛЖЕН требовать использования расширения STARTTLS для локальной доставки почты. Это правило предотвращает повреждение расширением STARTTLS функциональной совместимости инфраструктуры SMTP Интернета. Общедоступный SMTP-сервер - это SMTP-сервер, который работает на порту 25 Интернет-узла, указанного в записи MX (или записи A, если запись MX отсутствует) для имени домена справа от адреса электронной почты в Интернете. .
Использование Let's Encrypt с Certbot означает, что ваши сертификаты автоматически обновляются каждые 2-3 месяца. Postfix не загружает эти обновленные сертификаты автоматически, поэтому было бы разумно добавить задание cron для регулярной повторной загрузки Postfix с новым сертификатом, например (раз в неделю в Debian 10) с
50 5 * * 1 systemctl reload postfix
Если вы хотите добавить аутентификацию TLS для получающих серверов в исходящую почту, вы можете использовать гибкую DANE с smtp_tls_security_level
. Для использования DANE необходимо, чтобы ваш преобразователь DNS имел возможности DNSSEC и проверял подлинность только тех доменов, для которых опубликованы политики TLSA. Опять же, это лучший способ повысить конфиденциальность без нарушения обратной совместимости.
dane
- Оппортунистический DANE TLS. На этом уровне безопасности политика TLS для пункта назначения получается через DNSSEC. Чтобы политика TLSA вступила в силу, зона DNS, в которой находится домен назначения, должна быть подписана, а операционная система SMTP-клиента Postfix должна быть настроена для отправки своих DNS-запросов на рекурсивный DNS-сервер имен, который может проверять подписанные записи.
# TLS, DNSSEC and DANE for SMTP client
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec
Если вы не можете использовать DANE, вы можете вручную указать список доменов, которые, как вы знаете, имеют шифрование, и принудительно использовать TLS только для них, используя smtp_tls_policy_maps
:
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
В этой Беркли БД содержимое /etc/postfix/tls_policy
может выглядеть так:
# Encrypt all mail to @gmail.com using any MX with TLS 1.2
gmail.com encrypt protocols=TLSv1.2
# Ecrypt all mail delivered using a specific nexthop destination
[contoso-com.mail.protection.outlook.com] encrypt
Для полноты картины исходящая проверка DANE работает лучше всего, если вы также публикуете свои собственные записи TLSA. С Let's Encrypt немного проблематично автоматизировать публикацию отпечатков пальцев для ваших текущих сертификатов. Вместо этого вы можете использовать DANE-TA (2), как описано в Пожалуйста, избегайте «3 0 1» и «3 0 2» записей DANE TLSA с сертификатами LE.:
_25._tcp.mail.example.com. IN TLSA 2 1 1 (
60B87575447DCBA2A36B7D11AC09FB24A9DB406FEE12D2CC90180517616E8A18
)
Кроме того, для этого вам понадобится подписанная DNSSEC зона для вашего домена.