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

stunnel4: отключить безопасное повторное согласование, инициированное клиентом

Как можно отключить безопасное повторное согласование, инициированное клиентом в stunnel4? Я использую stunnel версии 4.53-1.1ubuntu1 в Ubuntu 14.04 Trusty с OpenSSL 1.0.1f и stunnel 4.53-1.1 в Debian Wheezy с OpenSSL 1.0.1e.

В stunnel docs перечисляет вариант для этого:

повторное согласование = да | нет

поддержка повторного согласования SSL

но, к сожалению, это приводит к следующей ошибке:

Строка 70: ​​«renegotiation = no»: указанное имя параметра здесь недопустимо.

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

Кто-нибудь знает, как это правильно сделать?


Я использовал следующую минимальную конфигурацию:

pid=/stunnel4.pid
debug = 5
output = /var/log/stunnel4/stunnel.log
cert = /etc/ssl/certs/ssl-cert-snakeoil.pem
key = /etc/ssl/private/ssl-cert-snakeoil.key
renegotiation = no
[https]
accept  = 443
connect = localhost:8000

Эти тесты показали, что повторное согласование поддерживается:

Слтесты Qualys показывают:

Безопасное инициированное клиентом повторное согласование: поддерживаемая ОПАСНОСТЬ DoS (подробнее)

Выполнение этого вручную с помощью openssl также подтверждает:

$ openssl s_client -connect localhost:443
CONNECTED(00000003)
[...]
---
R
RENEGOTIATING
depth=0 CN = mint.home
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = mint.home
verify return:1

В соответствии с Stunnel ChangeLog, renegotiation параметр был добавлен в stunnel версия 4.54. Это объясняет, почему stunnel 4.53 жалуется на

Указанное название опции здесь недействительно

Альтернативные решения:

  1. Установка stunnel deb файл с более поздней версией например stunnel для jessie (тестирование) или sid (нестабильный)
  2. Самостоятельная компиляция stunnel