Тео де Раадт сломал мне почту! Как жить дальше?
Было бы смешно, если б не было так грустно. ССЗБ, да.
–
И так, дело в том, что есть у меня почтовые серверы, которые живут на OpenBSD, ну там OpenSMTPD/SpamAssassin, Dovecot и тд, всё плюс-минус стандартно, всё работало годами как часы. Ну нравится мне OpenBSD для таких вещей типа почтовый сервер, NS сервер, прям кайфую, ну что поделать (ага, вот и страдаю теперь).
Тут недавно вышел OpenBSD 7.4, и казалось бы, ничто не предвещало беды, но нужно было читать changelog полностью:
LibreSSL version 3.8.2
Security fixes
Disabled TLSv1.0 and TLSv1.1 in libssl so that they may no longer be selected for use.
Что сие означает на практике? А на практике сие означает, что если мы включаем TLS на 25-м порту, а к нам стучится сервер, который не может в TLS v1.2 и выше, допустим он только TLS v1.1 может, то мы в maillog
получаем ошибку типа такой:
mail smtpd[71934]: 17a542d6a4cedfe6 smtp disconnected reason="io-error: handshake failed: error:1402610B:SSL routines:ACCEPT_SR_CLNT_HELLO:wrong version number"
а он, в свою очередь, получает что-то в духе Deferred: 403 4.7.0 TLS handshake failed.
И в итоге часть почты тупо не доходит. Малая часть, но всё же.
Что же делать?
-
Решение очевидное, временное и плохое: вообще отключить TLS на 25-м порту. Наверное, это и был хитрый план разработчиков самой безопасной «only-two-remote-holes-in-the-default-install-in-a-heck-of-a-long-time» системы!
-
Пересобирать libressl, бэкпортировать туда 1.0 и 1.1, пересобирать smtpd? Блин, если честно, очень не хочется, я конечно могу заморочиться с этим, но прям лень и неохота. Плюс потом же обновления снова будут, опять морока. Это решение тоже не очень правильное, ИМХО.
-
А вот что если считерить как-нибудь и на 25-й порт перед smtpd поставить какой-то прокси, который поддерживает все версии от 1.0 до 1.3 (допустим он статично слинкован и системная libssl тут не при чем), он будет принимать все соединения, а на настоящий smtpd, который допустим слушает 127.0.0.1:25, проксировать всё уже можно и вовсе без шифрования. М? Как тебе такое, Тео?
Тут у меня вопросы:
- где я просчитался, какие подводные камни? должны же они быть?
- существует ли уже такой прокси или придется писать самому?
Ну и вообще:
- сталкивался ли кто-то ещё с этой фигней, что делали?