Назад | Перейти на главную страницу

Sendmail отключен на Ubuntu 12.04 после обновления, связано с SSL?

Вчера я разместил это на askubuntu.com, но не получил никаких ответов.

У нас есть производственный сервер Ubuntu, который обслуживает тысячи людей в день. Sendmail в настоящее время не работает на этом сервере. Мы потратили дни, пытаясь восстановить его, но пока не нашли никакого решения.

В настоящее время есть отчет об ошибке кажется, это связано с этой проблемой, поэтому затрагивает больше людей, чем только нас.

Вот что мы знаем.

В воскресенье запускали обновления на сервере. На следующий день мы обнаружили, что sendmail не отправляет электронные письма.

/var/log/sendmail.log сообщает "stat = Deferred" для каждой записи электронной почты.

Также время от времени повторяется следующее сообщение:

STARTTLS=client, error:connect failed=-1, SSL_error=1, errno=0, retry=-1
STARTTLS=client: 7042:error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small:s3_clnt.c:3338:ruleset=tls_server, arg1=SOFTWARE, relay=xxx.xxx.edu, reject=403 4.7.0 TLS handshake failed.

Мы проверили логи на SMTP-сервере и обнаружили следующее:

06-25T10:57:20-06:00 gw26 sm-mta[17229]: STARTTLS=server, error: accept failed=0, SSL_error=1, errno=0, retry=-1
No explanation available 2015-06-25T10:57:20-06:00 gw26 sm-mta[17229]: STARTTLS=server: 17229:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1110:SSL alert number 40
Explain this log line 2015-06-25T10:57:20-06:00 gw26 sm-mta[17229]: t5PGvKk0017229: opus.byu.edu [128.187.102.135] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

Мы потратили много времени на поиски в Google и нашли несколько человек, у которых были проблемы в других операционных системах (CentOS и OpenBSD). Похоже, что OpenSSL был обновлен и теперь для правильной работы требуется более длинный ключ SSL.

Эта ошибка на странице панели запуска может быть связано.

Мы попытались решить эту проблему, следуя приведенным инструкциям CentOS. Вот. ПРИМЕЧАНИЕ. Мы изменили расположение нового файла dhparams.pem.

Создайте файл параметров DH на вашем сервере:

openssl dhparam -out /etc/pki/tls/certs/dhparams.pem 1024 Configure
sendmail to use this parameters file, and to use only strong ciphers.

Добавьте в /etc/mail/sendmail.mc:

O LOCAL_CONFIG O CipherList=HIGH:!ADH
O DHParameters=/etc/pki/tls/certs/dhparams.pem 
O ServerSSLOptions=+SSL_OP_NO_SSLv2 +SSL_OP_NO_SSLv3
O SSL_OP_CIPHER_SERVER_PREFERENCE O ClientSSLOptions=+SSL_OP_NO_SSLv2 
O SSL_OP_NO_SSLv3

Затем используйте make -C / etc / mail / и перезапустите службу sendmail.

Похоже, это никоим образом не улучшило ситуацию.

Редактировать:

Мы отключили TLS, выполнив следующие действия, и sendmail сразу же снова заработал. Однако это не решение, потому что мы не хотим отправлять электронные письма с открытым текстом.

Добавить Try_TLS:1.2.3.4 NO в / etc / mail / access.
Сделайте make в / etc / mail и перезапустите sendmail.

Насколько я понимаю, проблема в том, что ваш Обновление OpenSSL выполнено ты нетерпимый к другие короткие ключи DH, чтобы защитить разговор от атака тупика. Вот почему увеличение ваш Длина ключа DH (openssl dhparam ...и т.д.) ничего не помогло, в то время как отключение TLS помогло.

Очевидно, что всем нам нужен флаг для OpenSSL, например --I'd-rather-my-mail-got-encrypted-even-if-the-NSA-are-reading-it-on-the-fly-so-just-shut-up-about-short-DH-keys-already. К сожалению, это поведение, похоже, скомпилировано в OpenSSL, разработчики не решили поддерживать флаг, подобный тому, который я предлагаю, и sendmail, похоже, не скомпилировал в него возможность отмены выбора шифровальных наборов, которые запускают это поведение.

Это также означает, что долгосрочное решение для Другой администраторы почтового сервера должны обновить длину своего ключа DH. Вы можете отключить использование TLS для каждого домена с помощью access записи на карте, такие как

Try_TLS:mail.example.com NO

(с благодарностью novosial.org для этой идеи), если вы можете определить конкретных пиров, с которыми вы много обмениваетесь электронной почтой и чьи администраторы не спешат реагировать. Но насколько мне известно, если ваш сервер (как и мой) один из тех, кто вдруг стал придирчивым к чужие криптографические параметры, ваши возможности исправить это ограничены.

Я столкнулся с той же проблемой и исправил sendmail.cf следующим образом.

O CipherList=HIGH:!ADH:+DH

Это означает, что приоритет шифра, использующего ключ DH, понижен. При этом шифр, не связанный с ключом DH, используется с приоритетом, поэтому ошибка ключа DH не возникает.