Я настраиваю небольшой почтовый сервер с помощью postfix + dovecot. При беге oppenssl s_client -connect mail.myserver.com:993
(IMAP), отображается сертификат сервера, и я могу заставить почтовый клиент нормально подключаться.
Однако, когда я меняю порт на 25
(SMTP), я получаю сообщение об ошибке SSL routines:ssl3_get_record:wrong version number
, и сертификат не возвращается.
Из моих исследований кажется, что протоколы и шифры, разрешенные в 10-ssl.conf
файл может быть проблемой, но я пробовал так много комбинаций, но все равно получаю ту же ошибку. Вот какие они сейчас:
ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv3 !SSLv2
ssl_cipher_list = HIGH:!SSLv2:!SSLv3:!TLSv1.0:!aNULL:!MD5
Как я могу заставить сервер вернуть сертификат на порт SMTP?
В вашей установке Postfix + Dovecot есть два разных серверных программного обеспечения, выполняющих разные роли:
Dovecot в вашей конфигурации - это почтовый сервер хранения, отвечающий за IMAP. Кроме того, Dovecot обеспечивает аутентификацию SASL для Postfix. Файл конфигурации /etc/dovecot/conf.d/10-ssl.conf
предназначен только для Dovecot, поэтому он влияет только на IMAP с STARTTLS
на порт 143 и IMAPS на порт 993.
Postfix - это агент доставки почты (MTA) отвечает за SMTP, будь то для других MTA на TCP-порту 25, для отправка сообщения с участием STARTTLS
на порт 587 или SMTPS на порт 465. Основные файлы конфигурации для Postfix: main.cf
и master.cf
под /etc/postfix/
.
Вы можете только проверить IMAPS 993
& SMTPS 465
с помощью oppenssl s_client -connect mail.example.com:465
. Для тестирования STARTTLS
на портах SMTP 25
& 587
и порт IMAP 143
вам нужно использовать:
openssl s_client -starttls smtp -connect mail.example.com:25
openssl s_client -starttls smtp -connect mail.example.com:587
openssl s_client -starttls imap -connect mail.example.com:143
Также есть несколько веб-сайтов и инструментов для тестирования, которые обсуждаются в Security Stack Exchange. вопрос. Для настройки TLS в Postfix см. Поддержка Postfix TLS. В Postfix и Dovecot SASL в документации также есть пример настройки подчинение. Кроме того, вам необходимо добавить параметры TLS в свой main.cf
.
Порт 25 по умолчанию не использует SSL. Клиент должен работать STARTTLS
команда начать переговоры с сервером о криптографии. В противоположном IMAPS на порту 993 сразу же начинается согласование SSL при подключении. Вам необходимо настроить и попробовать SMTPS на порту 465, который действует точно так же, как IMAPS на 993.
Для тестирования служб, таких как SMTP, которые запускают как протокол открытого текста, так и версию этого протокола с шифрованием TLS. на том же TCP-порту, вам необходимо указать openssl на согласование обновления протокола TLS с STARTTLS и -starttls protocol
переключатель.
В зависимости от версии openssl s_client поддерживает ряд различных протоколов:
-starttls protocol
отправьте сообщение (я), зависящее от протокола, чтобы переключиться на TLS для связи.protocol
ключевое слово для предполагаемого протокола. В настоящее время поддерживаются только ключевые слова "smtp", "pop3", "imap", "ftp", "xmpp", "xmpp-server", "irc", "postgres", "lmtp", "nntp", " сито »и« ldap ».
Поэтому проверьте свой почтовый сервер Postfix с помощью:
oppenssl s_client -starttls smtp -connect mail.example.com:25