Я настраиваю небольшой почтовый сервер с помощью postfix + dovecot. При запуске oppenssl s_client -connect mail.myserver.com:993
(IMAP) отображается сертификат сервера, и я могу заставить почтовый клиент подключиться нормально.
Однако при изменении порт на 25
(SMTP), я получаю сообщение об ошибке
Подпрограммы SSL: ssl3_get_record: неправильный номер версии
, и сертификат не возвращается.
Из моего исследования кажется, что протоколы и шифры разрешены в файле 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
отправляет зависящее от протокола сообщение (я) для переключения на TLS для связи.протокол
- ключевое слово для предполагаемого протокола. В настоящее время,единственные поддерживаемые ключевые слова: "smtp", "pop3", "imap", «ftp», «xmpp», «xmpp-server», «irc», «postgres», «lmtp», «nntp», «sieve» и «ldap».
Поэтому проверьте свой почтовый сервер Postfix с помощью:
oppenssl s_client -starttls smtp -connect mail.example.com:25