Как отключить SSLv3 в Apache?

76

Кажется, сегодня все говорят об уязвимости POODLE . И всем рекомендуется отключить SSLv3 в Apache, используя следующую директиву конфигурации:

SSLProtocol All -SSLv2 -SSLv3

вместо по умолчанию

SSLProtocol All -SSLv2

Я сделал это, и не радуюсь - после неоднократного тестирования с различными инструментами ( вот быстрый ), я обнаружил, что SSLv3 с радостью принят моим сервером.

Да, я перезапустил Apache. Да, я сделал рекурсивный анализ grepдля всех файлов конфигурации, и у меня нигде нет переопределения. И нет, я не использую какую-то древнюю версию Apache:

[root@server ~]# apachectl -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 23 2014 14:17:29

Итак, что дает? Как действительно отключить SSLv3 в Apache?

Богдан Стэнческу
источник
Ответили
Рори Олсоп
5
Как объяснено в вопросе, я выполнил все шаги, указанные в этом разделе, и SSL3 все еще доступен. Я не мог сказать вам, какая конкретная часть этого раздела не может отключить SSL3, но дело в том, что он просто этого не делает, полностью. Сказав это, я понимаю, что у вас сейчас есть модераторская шляпа, поэтому, пожалуйста, не раскрывайте вопрос - это вполне может доказать, что я идиот и допустил элементарную ошибку, но из POV модератора это законный вопрос.

Ответы:

80

У меня была такая же проблема ... Вы должны включить SSLProtocol all -SSLv2 -SSLv3в каждый раздел VirtualHost в httpd.conf

Разделы VirtualHost обычно находятся в конце файла httpd.conf. Так, например:

...
...
<VirtualHost your.website.example.com:443>
    DocumentRoot /var/www/directory
    ServerName your.website.example.com

    ...
    SSLEngine on
    ...
    SSLProtocol all -SSLv2 -SSLv3
    ...
</VirtualHost>

Также проверьте ssl.conf или httpd-ssl.conf или аналогичные, потому что они могут быть установлены там, не обязательно в httpd.conf

darcoli
источник
3
Для справки, в зависимости от вашего системного администратора / веб-мастера, VirtualHosts с таким же успехом может жить в своем собственном выделенном файле в conf.d (именно так мне нравится хранить дом, и это то, что я узнал, а не то, что я придумал, поэтому я ожидаю, что я Я не единственный).
Богдан Стэнческу
3
Обратите внимание, что, по крайней мере, Apache 2.4+, SSLProtocolнастроенный вне разделов VirtualHost, будет применяться ко всем виртуальным хостам.
nurikabe
2
Я нашел этот инструмент , который будет проверять, среди прочего, имеет ли ваш сервер SSLv3 отключил: ssllabs.com/ssltest/index.html
amphetamachine
1
Этот ответ был очень полезен для меня при отключении TLSv1. Чтобы проверить , является ли данный протокол полностью отключен, я обнаружил следующее полезное: nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Лука Чити
Есть ли способ настроить всю SSLProtocolсистему, не редактируя каждый VirtualHost?
Дунатотатос
10

У меня была такая же проблема на Ubuntu 14.04. Прочитав это, я отредактировал раздел "SSLProtocol" в /etc/apache2/mods-available/ssl.conf.

  • из: SSLProtocol all
  • чтобы: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

Но это не сработало. Поэтому я тоже отредактировал следующий раздел "SSLCipherSuite" /etc/apache2/mods-available/ssl.conf.

  • из: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • чтобы: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

И теперь это работает для меня.

Кстати, на Cipher Suites не влияет POODLE, только протокол - но большинство браузеров в порядке с отключенным SSLv3 Cipher Suite.

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

BlueM00n
источник
Спасибо. Этот ответ работал в настройке WHM / cPanel. Я попробовал другие методы, предложенные онлайн, и ваш единственный работал.
Войтек Жилинский
1
Это работает, но это отключит доступ с IE 10, так как он использует SSLv3 и TLS1.0 по умолчанию.
Erebus
4

Для Ubuntu 10.04

Чтобы отключить SSLv3 для всех активных Vhosts, вам нужно

/etc/apache2/mods-available/ssl.conf:

SSLProtocol all -SSLv2 -SSLv3
Hubsidubsidu
источник
2

Сегодня утром у меня была похожая проблема, и я обнаружил еще один виртуальный хост, поддерживающий SSLv3, поэтому весь сервер отвечает на соединения SSLv3.

Поэтому убедитесь, что ни на одном из ваших хостов не активирован SSLv3.

Тердон
источник
1

Убедитесь, что SSLCipherSuite не содержит! SSLv3. В этом контексте это также относится к TLS1.0 и TLS1.1.

Например, если ваша конфигурация - SSLProtocol All , только TLS1.2 будет доступен из-за того, как SSLCipherSuite настроен с! SSLv3.

скоро
источник
0

Если у пользователей CentO возникли проблемы с редактированием файла конфигурации SSL через SSH, попробуйте отключить SSLv3 через WHM :

Шаг 1. Перейдите в редактор «Включить»

- Войдите в WHM. - Откройте окно «Конфигурация Apache» и нажмите «Включить редактор».

Шаг 2: Редактируйте Включения

-На «Pre Main Include», выберите «Все версии». Таким образом, ваш сервер будет защищен, если вы измените свою версию Apache. Когда выбрано, введите следующее в текстовое поле:

На CentOS / RHEL 6.x:

SSLHonorCipherOrder On
SSLProtocol -Все + TLSv1 + TLSv1.1 + TLSv1.2

На CentOS / RHEL 5.x:

SSLHonorCipherOrder On
SSLProtocol -All + TLSv1

... и затем нажмите Обновить .

Как только вы нажмете кнопку «Обновить», вам будет предложено перезапустить Apache; сделай так в это время.

первоисточник: https://www.liquidweb.com/kb/how-to-disable-sslv3-and-protect-your-whmcpanel-server-from-poodle/

Исайя Валенсия
источник
1
Этот ответ актуален для серверов, управляемых через WHM / cPanel, а не для серверов, работающих под управлением CentOS.
Богдан Стэнческу
0

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

Поскольку SSLv2и то и SSLv3другое уязвимо от некоторых атак, поэтому было бы лучше использовать только TLS. Поэтому измените ваш apache conf файл следующим образом:

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

или же

SSLProtocol TLSv1
P4cK3tHuNt3R
источник
Да, я тоже это пробовал - без радости. :-(
Можете ли вы вставить вывод команды "apachectl configtest".
P4cK3tHuNt3R
0

У меня была похожая проблема, и я проверил, что все правильные настройки apache были правильными.

Однако то, что я пропустил, было то, что у меня был nginx в качестве обратного прокси перед apache. Я также использую Plesk, и это из их руководства по исправлениям POODLE :

Если вы используете Nginx, включите следующую строку в вашу конфигурацию среди других директив SSL в /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
icc97
источник