Автор Тема: postfix, mdaemon и сертификат ECDSA - решение проблемы  (Прочитано 1281 раз)

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Поделюсь решением маленькой проблемы.

Установил на сервер Altlinux P7 (из стартеркита, но это несущественно).
Настроил на нём postfix, cyrus-imapd, clamav, spamassassin из пакетов и скрипт dehydrated (автоматически получает сертификат Let's Encrypt).
Причём для сертификата выставил опцию cypher secp384r1, то есть сертификат не RSA, но ECDSA.
Соответственно, в конфигурации postfix указал в main.cf параметры "smtpd_tls_eckey_file" и "smtpd_tls_eccert_file"

В некоторый момент вижу в maillog ошибки:
Oct 25 16:06:36 backup postfix/smtpd[17312]: SSL_accept error from unknown[87.249.19.118]: -1
Oct 25 16:06:36 backup postfix/smtpd[17312]: warning: TLS library problem: 17312:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:s3_srvr.c:1440:
Oct 25 16:06:36 backup postfix/smtpd[17312]: lost connection after STARTTLS from unknown[87.249.19.118]

Посмотрел, что там на 87.249.19.118:
[root@backup postfix]# telnet 87.249.19.118 25
Trying 87.249.19.118...
Connected to 87.249.19.118.
Escape character is '^]'.
220 saturn.net ESMTP MDaemon 13.6.2; Tue, 25 Oct 2016 14:31:34 +0300
QUIT
221 See ya in cyberspace
Connection closed by foreign host.

Мда. Кто-то ещё использует MDaemon трёхлетней давности. Но почта оттуда нужна.

Применил к нему обходное решение - просто исключил STARTTLS из ответа postfix:
echo "87.249.19.118   starttls" >/etc/postfix/maps/ehlo_keyword_address_map
postmap /etc/postfix/maps/ehlo_keyword_address_map
echo "smtpd_discard_ehlo_keyword_address_maps = cdb:/etc/postfix/maps/ehlo_keyword_address_map" >>/etc/postfix/main.cf
service postfix reload

Теперь в логе такие строки:
Oct 25 16:16:11 backup postfix/smtpd[17962]: connect from unknown[87.249.19.118]
Oct 25 16:16:11 backup postfix/smtpd[17962]: discarding EHLO keywords: STARTTLS
Oct 25 16:16:11 backup postfix/smtpd[17962]: 88F553FC9F: client=unknown[87.249.19.118]

Приём почты от этого MDaemon идёт, пусть и без шифрования.