¿Cómo deshabilitar SSLv3 en Apache?


76

Todo el mundo parece estar hablando de la vulnerabilidad POODLE hoy. Y todos recomiendan desactivar SSLv3 en Apache utilizando la siguiente directiva de configuración:

SSLProtocol All -SSLv2 -SSLv3

en lugar del predeterminado

SSLProtocol All -SSLv2

Lo he hecho, y no me alegro: después de probar repetidamente con varias herramientas ( aquí hay una rápida ), encuentro que SSLv3 es felizmente aceptado por mi servidor.

Sí, reinicié Apache. Sí, hice un recursivo grepen todos los archivos de configuración, y no tengo ninguna anulación en ningún lado. Y no, no estoy usando alguna versión antigua de Apache:

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

Entonces, ¿qué da? ¿Cómo se deshabilita realmente SSLv3 en Apache?



55
Como se explica en la pregunta, he realizado todos los pasos indicados en esa sección y SSL3 todavía está disponible. No podría decirte qué parte específica de esa sección no puede desactivar SSL3, pero el punto es que simplemente no lo hace, en su totalidad. Habiendo dicho eso, entiendo que tienes tu sombrero de moderador puesto en este momento, así que por favor, descuida la pregunta: bien podría probar que soy un imbécil y cometí un error elemental, pero desde el punto de vista de un moderador esta es una pregunta legítima.

Respuestas:


80

Tuve el mismo problema ... Tienes que incluir SSLProtocol all -SSLv2 -SSLv3dentro de cada estrofa VirtualHost en httpd.conf

Las estrofas de VirtualHost están generalmente hacia el final del archivo httpd.conf. Así por ejemplo:

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

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

Compruebe también ssl.conf o httpd-ssl.conf o similar, ya que pueden estar configurados allí, no necesariamente en httpd.conf


3
Para el registro, dependiendo de su administrador de sistemas / webmaster, VirtualHosts podría vivir dentro de su propio archivo dedicado en conf.d (así es como me gusta mantener la casa, y es algo que aprendí, no algo que inventé, así que espero que yo No soy el único).
Bogdan Stăncescu

3
Tenga en cuenta que a partir de al menos Apache 2.4+ SSLProtocolconfigurado fuera de las estrofas de VirtualHost se aplicará a todos los hosts virtuales.
nurikabe

2
Encontré esta herramienta que probará, entre otras cosas, si su servidor tiene SSLv3 deshabilitado: ssllabs.com/ssltest/index.html
amphetamachine

1
Esta respuesta fue muy útil para mí al deshabilitar TLSv1. Para comprobar si un determinado protocolo está completamente desactivado, me encontré con la siguiente utilidad: nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi

¿Hay alguna manera de configurar todo el SSLProtocolsistema, sin tener que editar cada VirtualHost?
Dunatotatos

10

Tuve el mismo problema en Ubuntu 14.04. Después de leer esto, edité la sección "SSLProtocol" en /etc/apache2/mods-available/ssl.conf.

  • de: SSLProtocol all
  • a: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

Pero no funcionó. Así que también edité la siguiente sección "SSLCipherSuite" /etc/apache2/mods-available/ssl.conf.

  • de: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • a: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

Y ahora ahora funciona para mí.

Por cierto, los Cipher Suites no se ven afectados por POODLE, solo por el protocolo, pero la mayoría de los navegadores están de acuerdo con un SSLv3 Cipher Suite deshabilitado.

¡No uses esto para un servidor de correo! O (tal vez) enfrentará el problema de no poder recuperar sus correos en algunos dispositivos.


Gracias. Esta respuesta funcionó en la configuración de WHM / cPanel. Probé otros métodos sugeridos en línea y el tuyo fue el único que funcionó.
Voitek Zylinski

1
Esto funciona, pero deshabilitará el acceso con IE 10, ya que utiliza SSLv3 y TLS1.0 de forma predeterminada.
Erebus

4

Para Ubuntu 10.04

Para deshabilitar SSLv3 en todos los vhosts activos, necesita la opción en

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

SSLProtocol all -SSLv2 -SSLv3

2

Tuve un problema similar esta mañana, y encontré otro host virtual que habilita SSLv3, por lo que todo el servidor responde a las conexiones SSLv3.

Por lo tanto, asegúrese de que ninguno de sus hosts tenga SSLv3 activo.


1

Asegúrese de que SSLCipherSuite no contenga! SSLv3. En ese contexto, también se refiere a TLS1.0 y TLS1.1.

Por ejemplo, si su configuración es SSLProtocol All , solo TLS1.2 estará disponible debido a cómo SSLCipherSuite está configurado con! SSLv3.


0

Para los usuarios de CentO que tienen problemas para editar su archivo de configuración SSL a través de SSH, intente deshabilitar SSLv3 a través de WHM :

Paso 1: navega hasta el editor de inclusión

-Inicie sesión en WHM -Abra la pantalla "Configuración de Apache" y haga clic en "Incluir editor"

Paso 2: Edite el Incluye

-En "Preincluir principal", seleccione "Todas las versiones". De esta manera, su servidor estará protegido si cambia su versión de Apache. Cuando esté seleccionado, ingrese lo siguiente en el cuadro de texto:

En CentOS / RHEL 6.x:

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

En CentOS / RHEL 5.x:

SSLHonorCipherOrder en
SSLProtocol -All + TLSv1

... y luego haga clic en Actualizar .

Una vez que haga clic en actualizar, se le pedirá que reinicie Apache; hazlo en este momento.

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


1
Esta respuesta es relevante para servidores controlados a través de WHM / cPanel, no para servidores que ejecutan CentOS.
Bogdan Stăncescu

0

El método que está utilizando es para la nueva versión de Apache y Openssl. Es posible que la nueva versión de estos no esté instalada en su sistema, verifique la versión instalada actual.

Dado SSLv2y SSLv3ambos son vulnerables de algunos ataques, por lo que sería mejor utilizar solamente TLS. Así que modifique su archivo de configuración de Apache de la siguiente manera,

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

o

SSLProtocol TLSv1

Sí, también lo intenté, sin alegría. :-(

¿Puedes pegar la salida del comando "apachectl configtest"?
P4cK3tHuNt3R

0

Tuve un problema similar y verifiqué que tenía todas las configuraciones de apache correctas.

Sin embargo, lo que me perdí fue que tenía nginx como proxy inverso frente a apache. También uso Plesk y esto es de su guía de soluciones POODLE :

Si está ejecutando Nginx, incluya la siguiente línea en su configuración entre las otras directivas SSL en /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.