Як відключити 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


3
Для запису, залежно від вашого sysadmin / веб-майстра, 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.

Не використовуйте це для сервера пошти! Або ви (можливо) зіткнетеся з проблемою неможливості отримати свою пошту на деяких пристроях.


Дякую. Ця відповідь працювала в налаштуваннях WHM / cPanel. Я спробував інші методи, запропоновані в Інтернеті, і ваш єдиний, який працював.
Voitek Zylinski

1
Це працює, але вимкне доступ з IE 10, оскільки він використовує SSLv3 та TLS1.0 за замовчуванням.
Еребус

4

Для Ubuntu 10.04

Щоб вимкнути SSLv3 на всіх активних гостях, вам потрібна опція в

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

SSLProtocol all -SSLv2 -SSLv3

2

У мене була схожа проблема сьогодні вранці, і я виявив ще один віртуальний хост, що дозволяє SSLv3, тому весь сервер відповідає на з'єднання SSLv3.

Тому переконайтесь, що жоден з ваших хостів не має активного SSLv3.


1

Переконайтесь, що SSLCipherSuite не містить! SSLv3. У цьому контексті вона також посилається на TLS1.0 та TLS1.1.

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


0

Для користувачів CentOs, які мають проблеми з редагуванням файлу конфігурації SSL через SSH, спробуйте відключити SSLv3 через WHM :

Крок 1: Перейдіть до редактора Включити

-Увійдіть у WHM - Відкрийте екран "Конфігурація Apache" і натисніть "Включити редактор"

Крок 2: Відредагуйте Включає

-Під «Перед основним включенням» виберіть «Усі версії». Таким чином ваш сервер буде захищений, якщо ви зміните версію Apache. Якщо вибрано, введіть у текстове поле наступне:

На CentOS / RHEL 6.x:

SSLHonorCipherOrder на
SSLProtocol -All + TLSv1 + TLSv1.1 + TLSv1.2

На CentOS / RHEL 5.x:

SSLHonorCipherOrder на
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

Так, я теж спробував це - ніякої радості. :-(

Ви можете, будь ласка, вставити висновок команди "apachectl configtest".
P4cK3tHuNt3R

0

У мене була подібна проблема, і я перевірив, чи правильні всі налаштування apache.

Однак те, що я пропустив, це те, що я мав nginx як зворотний проксі перед apache. Я також використовую Plesk, і це з їх посібника з виправленнями POODLE :

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

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.