Como desativar o SSLv3 no Apache?


76

Todo mundo parece estar falando sobre a vulnerabilidade do POODLE hoje. E todo mundo recomenda desativar o SSLv3 no Apache usando a seguinte diretiva de configuração:

SSLProtocol All -SSLv2 -SSLv3

em vez do padrão

SSLProtocol All -SSLv2

Fiz isso e sem alegria - depois de testar várias vezes com várias ferramentas ( aqui está uma rápida ), acho que o SSLv3 é aceito com satisfação pelo meu servidor.

Sim, reiniciei o Apache. Sim, fiz uma recursiva grepem todos os arquivos de configuração e não tenho nenhuma substituição em lugar algum. E não, não estou usando uma versão antiga do Apache:

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

Então, o que dá? Como alguém realmente desabilita o SSLv3 no Apache?



5
Conforme explicado na pergunta, eu executei todas as etapas indicadas nessa seção e o SSL3 ainda está disponível. Eu não sabia dizer qual parte específica dessa seção falha ao desativar o SSL3, mas o ponto é que simplesmente não o faz na sua totalidade. Dito isso, entendo que você esteja com o seu chapéu de moderador no momento, então, por favor, retire a pergunta - pode muito bem provar que sou um idiota e cometi um erro elementar, mas do ponto de vista de um moderador, essa é uma pergunta legítima.

Respostas:


80

Eu tive o mesmo problema ... Você deve incluir SSLProtocol all -SSLv2 -SSLv3em todas as sub-rotinas do VirtualHost no httpd.conf

As sub-rotinas do VirtualHost geralmente estão no final do arquivo httpd.conf. Então, por exemplo:

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

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

Verifique também ssl.conf ou httpd-ssl.conf ou similar, pois eles podem estar definidos lá, não necessariamente em httpd.conf


3
Para que conste, dependendo do seu administrador de sistemas / webmaster, o VirtualHosts também pode viver dentro de seu próprio arquivo dedicado em conf.d (é assim que eu gosto de ficar em casa, e é algo que aprendi, não algo que inventei, então espero que eu não sou o único).
Bogdan Stăncescu 17/10

3
Observe que, pelo menos, o Apache 2.4+ SSLProtocolconfigurado fora das sub- rotinas do VirtualHost será aplicado a todos os hosts virtuais.
Nurikabe

2
Eu encontrei esta ferramenta que irá testar, entre outras coisas, se o servidor possui SSLv3 desativado: ssllabs.com/ssltest/index.html
amphetamachine

1
Esta resposta foi muito útil para mim ao desativar o TLSv1. Para verificar se um determinado protocolo está totalmente desativada, eu encontrei o seguinte útil: nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi

Existe uma maneira de configurar o SSLProtocolsistema inteiro, sem precisar editar cada VirtualHost?
Dunatotatos

10

Eu tive o mesmo problema no Ubuntu 14.04. Depois de ler isso, editei a seção "SSLProtocol" em /etc/apache2/mods-available/ssl.conf.

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

Mas não deu certo. Então eu editei a seção a seguir também "SSLCipherSuite" em /etc/apache2/mods-available/ssl.conf.

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

E agora agora funciona para mim.

A propósito, os Cipher Suites não são afetados pelo POODLE, apenas pelo protocolo - mas a maioria dos navegadores está de acordo com um SSLv3 Cipher Suite desativado.

Não use isso para um servidor de email! Ou você (talvez) enfrentará o problema de não conseguir buscar seus correios em alguns dispositivos.


Obrigado. Esta resposta funcionou na configuração do WHM / cPanel. Tentei outros métodos sugeridos online e o seu foi o único que funcionou.
Voitek Zylinski

1
Isso funciona, mas desativará o acesso com o IE 10, pois usa SSLv3 e TLS1.0 por padrão.
Erebo

4

Para o Ubuntu 10.04

Para desativar o SSLv3 em todos os vhosts ativos, você precisa da opção em

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

SSLProtocol all -SSLv2 -SSLv3

2

Tive um problema semelhante nesta manhã e encontrei outro host virtual habilitando o SSLv3; portanto, o servidor inteiro responde às conexões SSLv3.

Portanto, verifique se nenhum dos seus hosts tem o SSLv3 ativo.


1

Verifique se o SSLCipherSuite não contém! SSLv3. Nesse contexto, também se refere ao TLS1.0 e TLS1.1.

Por exemplo, se sua configuração for SSLProtocol All , apenas o TLS1.2 estará disponível devido à forma como o SSLCipherSuite está configurado com! SSLv3.


0

Para usuários do CentOs com problemas para editar seu arquivo de configuração SSL via SSH, tente desativar o SSLv3 via WHM :

Etapa 1: Navegue até o Editor de inclusão

-Faça login no WHM -Abra a tela "Configuração do Apache" e clique em "Incluir editor"

Etapa 2: Editar as inclusões

-Em "Pre Main Include", selecione "All Versions". Dessa forma, seu servidor estará protegido se você alterar sua versão do Apache. Quando selecionado, digite o seguinte na caixa de texto:

No CentOS / RHEL 6.x:

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

No CentOS / RHEL 5.x:

SSLHonorCipherOrder no
SSLProtocol -All + TLSv1

… E depois clique em Atualizar .

Depois de clicar em atualizar, você será solicitado a reiniciar o Apache; faça isso neste momento.

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


1
Esta resposta é relevante para servidores controlados via WHM / cPanel, não para servidores executando o CentOS.
Bogdan Stăncescu

0

O método que você está usando é para a nova versão do Apache e Openssl. Pode ser possível que a nova versão não esteja instalada no seu sistema, verifique a versão instalada atual.

Desde SSLv2e SSLv3ambos são vulneráveis de alguns ataques, por isso seria melhor para usar apenas TLS. Portanto, modifique seu arquivo conf do apache da seguinte maneira:

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

ou

SSLProtocol TLSv1

Sim, eu também tentei isso - sem alegria. :-(

você pode colar a saída do comando "apachectl configtest".
P4cK3tHuNt3R 16/10

0

Eu tive um problema semelhante e verifiquei se todas as configurações apropriadas do apache estavam corretas.

No entanto, o que eu perdi foi que eu tinha o nginx como proxy reverso na frente do apache. Também estou usando o Plesk e isso é do guia de correções do POODLE :

Se você estiver executando o Nginx, inclua a seguinte linha em sua configuração entre as outras diretivas SSL em /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.