Wie deaktiviere ich SSLv3 in Apache?


76

Alle scheinen heute über die POODLE-Schwachstelle zu reden . Und jeder empfiehlt, SSLv3 in Apache mithilfe der folgenden Konfigurationsanweisung zu deaktivieren:

SSLProtocol All -SSLv2 -SSLv3

anstelle der Standardeinstellung

SSLProtocol All -SSLv2

Ich habe das getan und keine Freude - nachdem ich wiederholt mit verschiedenen Tools getestet habe ( hier ist eine schnelle ), stelle ich fest, dass SSLv3 von meinem Server glücklich akzeptiert wird.

Ja, ich habe Apache neu gestartet. Ja, ich habe grepalle Konfigurationsdateien rekursiv bearbeitet und habe nirgendwo einen Override. Und nein, ich verwende keine alte Version von Apache:

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

Also, was gibt es? Wie kann man SSLv3 in Apache wirklich deaktivieren?



5
Wie in der Frage erläutert, habe ich alle in diesem Abschnitt angegebenen Schritte ausgeführt und SSL3 ist weiterhin verfügbar. Ich konnte Ihnen nicht sagen, welcher Teil dieses Abschnitts SSL3 nicht deaktivieren kann, aber der Punkt ist, dass dies in seiner Gesamtheit einfach nicht der Fall ist. Trotzdem haben Sie Ihren Moderatorhut im Moment an, bitte halten Sie die Frage zurück - es könnte durchaus beweisen, dass ich ein Idiot bin und einen elementaren Fehler gemacht habe, aber aus der Sicht eines Moderators ist dies eine legitime Frage.

Antworten:


80

Ich hatte das gleiche Problem ... Sie müssen in SSLProtocol all -SSLv2 -SSLv3jede VirtualHost-Zeilengruppe in httpd.conf aufnehmen

Die VirtualHost-Zeilengruppen befinden sich im Allgemeinen gegen Ende der Datei httpd.conf. Also zum Beispiel:

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

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

Überprüfen Sie auch ssl.conf oder httpd-ssl.conf oder ähnliches, da sie möglicherweise dort festgelegt sind, nicht unbedingt in httpd.conf


3
Abhängig von Ihrem Systemadministrator / Webmaster kann es sein, dass VirtualHosts genau so gut in einer eigenen dedizierten Datei in conf.d gespeichert ist (so behalte ich gern das Haus, und das habe ich gelernt, nicht etwas, das ich erfunden habe, also erwarte ich es bin nicht der einzige).
Bogdan Stăncescu

3
Beachten Sie, dass mindestens Apache 2.4+ SSLProtocol, das außerhalb der VirtualHost- Zeilengruppen konfiguriert wurde, für alle virtuellen Hosts gilt.
Nurikabe

2
Ich habe dieses Tool gefunden, das unter anderem testet
amphetamachine

1
Diese Antwort war für mich beim Deaktivieren von TLSv1 sehr hilfreich. Um zu überprüfen , ob ein bestimmtes Protokoll vollständig deaktiviert ist, fand ich die folgenden nützlich: nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi

Gibt es eine Möglichkeit, das SSLProtocolsystemweit einzurichten , ohne jeden VirtualHost bearbeiten zu müssen?
Dunatotatos

10

Ich hatte das gleiche Problem auf Ubuntu 14.04. Nachdem ich dies gelesen hatte, habe ich den Abschnitt "SSLProtocol" in bearbeitet /etc/apache2/mods-available/ssl.conf.

  • von: SSLProtocol all
  • zu: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

Aber es hat nicht funktioniert. Also habe ich den folgenden Abschnitt auch in "SSLCipherSuite" bearbeitet /etc/apache2/mods-available/ssl.conf.

  • von: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • zu: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

Und jetzt funktioniert es jetzt bei mir.

Übrigens sind die Cipher Suites nicht von POODLE betroffen, sondern nur vom Protokoll. In den meisten Browsern ist jedoch eine deaktivierte SSLv3 Cipher Suite in Ordnung.

Verwenden Sie dies nicht für einen Mailserver! Oder Sie haben (vielleicht) das Problem, dass Sie Ihre Mails auf einigen Geräten nicht abrufen können.


Danke. Diese Antwort funktionierte im WHM / cPanel-Setup. Ich habe andere Methoden ausprobiert, die online vorgeschlagen wurden, und nur Ihre haben funktioniert.
Voitek Zylinski

1
Dies funktioniert, aber der Zugriff mit IE 10 wird deaktiviert, da standardmäßig SSLv3 und TLS1.0 verwendet werden.
Erebus

4

Für Ubuntu 10.04

Um SSLv3 auf allen aktiven vhosts zu deaktivieren, benötigen Sie die Option in

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

SSLProtocol all -SSLv2 -SSLv3

2

Ich hatte heute Morgen ein ähnliches Problem und fand einen anderen virtuellen Host, der SSLv3 aktiviert, sodass der gesamte Server auf SSLv3-Verbindungen reagiert.

Stellen Sie daher sicher, dass auf keinem Ihrer Hosts SSLv3 aktiv ist.


1

Stellen Sie sicher, dass die SSLCipherSuite kein ! SSLv3 enthält. In diesem Zusammenhang wird auch auf TLS1.0 und TLS1.1 verwiesen.

Wenn Ihre Konfiguration beispielsweise SSLProtocol All lautet, ist aufgrund der Konfiguration von SSLCipherSuite mit! SSLv3 nur TLS1.2 verfügbar.


0

Wenn CentOs-Benutzer Probleme beim Bearbeiten Ihrer SSL-Konfigurationsdatei über SSH haben, deaktivieren Sie SSLv3 über WHM :

Schritt 1: Navigieren Sie zum Include-Editor

-Login to WHM -Öffne den "Apache Configuration" Bildschirm und klicke auf "Include Editor"

Schritt 2: Bearbeiten Sie die Includes

- Wählen Sie unter "Pre Main Include" die Option "All Versions". Auf diese Weise wird Ihr Server geschützt, wenn Sie Ihre Apache-Version ändern. Wenn ausgewählt, geben Sie Folgendes in das Textfeld ein:

Auf CentOS / RHEL 6.x:

SSLHonorCipherOrder On
SSLProtocol -All + TLSv1 + TLSv1.1 + TLSv1.2

Auf CentOS / RHEL 5.x:

SSLHonorCipherOrder On
SSLProtocol -All + TLSv1

… Und dann auf Aktualisieren klicken .

Sobald Sie auf "Aktualisieren" klicken, werden Sie aufgefordert, Apache neu zu starten. Tun Sie dies zu diesem Zeitpunkt.

Originalquelle: https://www.liquidweb.com/kb/how-to-disable-sslv3-and-protect-your-whmcpanel-server-from-poodle/


1
Diese Antwort ist für Server relevant, die über WHM / cPanel gesteuert werden, nicht für Server, auf denen CentOS ausgeführt wird.
Bogdan Stăncescu

0

Die Methode, die Sie verwenden, ist für die neue Version von Apache und Openssl. Möglicherweise ist eine neue Version davon nicht auf Ihrem System installiert. Überprüfen Sie die aktuell installierte Version.

Da SSLv2und SSLv3beide von einigen Angriffen betroffen sind, ist es besser, nur TLS zu verwenden. So ändern Sie Ihre Apache Conf-Datei wie folgt,

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

oder

SSLProtocol TLSv1

Ja, das habe ich auch probiert - keine Freude. :-(

Können Sie bitte die Ausgabe des Befehls "apachectl configtest" einfügen?
P4cK3tHuNt3R

0

Ich hatte ein ähnliches Problem und ich hatte überprüft, ob alle geeigneten Apache-Einstellungen korrekt waren.

Was ich jedoch vermisste, war, dass ich Nginx als Reverse-Proxy vor Apache hatte. Ich benutze auch Plesk und dies ist aus dem POODLE Fixes Guide :

Wenn Sie Nginx ausführen, fügen Sie die folgende Zeile in Ihre Konfiguration unter den anderen SSL-Anweisungen in der folgenden Tabelle ein /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.