Apache에서 SSLv3을 비활성화하는 방법은 무엇입니까?


76

모두가 오늘날 POODLE 취약점 에 대해 이야기하고있는 것 같습니다 . 그리고 모두는 다음 구성 지시문을 사용하여 Apache에서 SSLv3을 비활성화하는 것이 좋습니다.

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

그래서 무엇을 제공합니까? Apache에서 SSLv3을 어떻게 실제로 비활성화합니까?



5
질문에서 설명했듯이 해당 섹션에 표시된 모든 단계를 수행했으며 SSL3을 계속 사용할 수 있습니다. 해당 섹션의 어떤 특정 부분이 SSL3를 비활성화하지 못했는지는 알 수 없지만 요점은 전체가 그렇지 않다는 것입니다. 말했듯이, 현재 귀하가 중재자 모자를 착용하고 있음을 이해하고 있습니다. 질문을 놓치지 마십시오. 제가 바보라는 사실을 증명할 수 있으며 초급 실수를 한 것이지만 중재자의 POV에서 이것은 합법적 인 질문입니다.

답변:


80

나는 같은 문제가 있었다 ... SSLProtocol all -SSLv2 -SSLv3httpd.conf의 모든 VirtualHost 스탠자 내에 포함시켜야한다

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 / webmaster에 따라 VirtualHosts는 conf.d의 자체 전용 파일 내에 살 수도 있습니다 (그러면 내가 집을 지키는 방법이며 내가 발명 한 것이 아니라 내가 배운 것이므로 기대합니다. 유일한 사람은 아닙니다).
Bogdan Stăncescu

3
SSLProtocolVirtualHost 스탠자 외부에 구성된 Apache 2.4 이상에서는 모든 가상 호스트에 적용됩니다.
nurikabe

2
서버에서 SSLv3가 비활성화되어 있는지 여부를 테스트하는이 도구를 찾았습니다. ssllabs.com/ssltest/index.html
amphetamachine

1
이 답변은 TLSv1을 비활성화 할 때 매우 유용했습니다. 주어진 프로토콜이 완전히 비활성화되어 있는지 확인하려면 다음이 유용하다는 것을 알았습니다 nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi

SSLProtocol각 VirtualHost를 편집하지 않고 시스템 전체 를 설정하는 방법이 있습니까?
Dunatotatos

10

우분투 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
이것은 작동하지만 기본적으로 SSLv3 및 TLS1.0을 사용하므로 IE 10을 통한 액세스가 비활성화됩니다.
Erebus

4

우분투 10.04

모든 활성 vhost에서 SSLv3을 비활성화하려면 옵션이 필요합니다.

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

SSLProtocol all -SSLv2 -SSLv3

2

오늘 아침에도 비슷한 문제가 발생하여 SSLv3을 사용하는 다른 가상 호스트를 발견하여 전체 서버가 SSLv3 연결에 응답합니다.

따라서 SSLv3이 활성화 된 호스트가 없는지 확인하십시오.


1

SSLCipherSuite에 ! SSLv3이 포함되어 있지 않은지 확인하십시오 . 이와 관련하여 TLS1.0 및 TLS1.1도 참조합니다.

예를 들어, 구성이 SSLProtocol All 인 경우 SSLCipherSuite가! SSLv3으로 구성되는 방식으로 인해 TLS1.2 만 사용할 수 있습니다.


0

SSH를 통해 SSL 구성 파일을 편집하는 데 문제가있는 CentOs 사용자의 경우 WHM을 통해 SSLv3을 비활성화하십시오 .

1 단계 : 포함 편집기로 이동

-WHM에 로그인- "Apache Configuration"화면을 열고 "Include Editor"를 클릭하십시오.

2 단계 : 포함 편집

- "Pre Main Include"에서 "All Versions"를 선택하십시오. 이런 식으로 Apache 버전을 변경하면 서버가 보호됩니다. 선택하면 텍스트 상자에 다음을 입력하십시오.

CentOS / RHEL 6.x에서 :

SSL 프로토콜에서 SSLHonorCipherOrder-
모든 + TLSv1 + TLSv1.1 + TLSv1.2

CentOS / RHEL 5.x에서 :

SSL 프로토콜에서 SSLHonorCipherOrder-
모든 + TLSv1

… 그리고 업데이트 를 클릭하십시오 .

업데이트를 클릭하면 Apache를 다시 시작하라는 메시지가 표시됩니다. 지금 그렇게하십시오.

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


1
이 답변은 CentOS를 실행하는 서버가 아니라 WHM / cPanel을 통해 제어되는 서버와 관련이 있습니다.
Bogdan Stăncescu

0

사용중인 방법은 새 버전의 Apache 및 Openssl 용입니다. 새 버전이 시스템에 설치되지 않았을 수 있습니다. 현재 설치된 버전을 확인하십시오.

때문에 SSLv2하고 SSLv3모두 일부 공격의 취약, 그래서 단지 TLS를 사용하는 것이 좋을 것이다. 따라서 아파치 conf 파일을 다음과 같이 수정하십시오.

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

또는

SSLProtocol TLSv1

네, 저도 시도했습니다 – 기쁨은 없습니다. :-(

"apachectl configtest"명령의 출력을 붙여 넣을 수 있습니까?
P4cK3tHuNt3R

0

비슷한 문제가 있었고 적절한 모든 아파치 설정이 올바른지 확인했습니다.

그러나 내가 놓친 것은 아파치 앞에서 리버스 프록시로 nginx를 가지고 있다는 것입니다. 나는 또한 Plesk를 사용하고 있으며 이것은 POODLE 수정 가이드 에서 가져온 것입니다 .

Nginx를 실행중인 경우 다음의 다른 SSL 지시문 중 구성에 다음 행을 포함하십시오 /etc/nginx/nginx.conf.

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.