Làm cách nào để tắt SSLv3 trong Apache?


76

Mọi người dường như đang nói về lỗ hổng POODLE ngày hôm nay. Và mọi người khuyên bạn nên vô hiệu hóa SSLv3 trong Apache bằng cách sử dụng chỉ thị cấu hình sau:

SSLProtocol All -SSLv2 -SSLv3

thay vì mặc định

SSLProtocol All -SSLv2

Tôi đã làm điều đó và không có niềm vui - sau khi thử nghiệm nhiều lần với nhiều công cụ khác nhau ( đây là một công cụ nhanh ), tôi thấy rằng SSLv3 được máy chủ của tôi chấp nhận một cách vui vẻ.

Vâng, tôi đã khởi động lại Apache. Có, tôi đã thực hiện đệ quy greptrên tất cả các tệp cấu hình và tôi không có bất kỳ ghi đè nào ở bất cứ đâu. Và không, tôi không sử dụng một số phiên bản cổ của Apache:

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

Vì vậy, những gì cho? Làm thế nào để một người thực sự vô hiệu hóa SSLv3 trong Apache?


Đã trả lời tại đây: askubfox.com/q/537196/7163
Rory Alsop

5
Như đã giải thích trong câu hỏi, tôi đã thực hiện tất cả các bước được chỉ ra trong phần đó và SSL3 vẫn khả dụng. Tôi không thể nói cho bạn biết phần cụ thể nào của phần đó không thể vô hiệu hóa SSL3, nhưng vấn đề là nó hoàn toàn không. Có nói rằng, tôi hiểu rằng bạn có mũ của người điều hành vào lúc này, vì vậy xin vui lòng mở ra câu hỏi - nó cũng có thể chứng minh rằng tôi là một kẻ ngốc và tôi đã phạm một lỗi cơ bản, nhưng từ POV của người điều hành thì đây là một câu hỏi chính đáng.

Câu trả lời:


80

Tôi đã có cùng một vấn đề ... Bạn phải bao gồm SSLProtocol all -SSLv2 -SSLv3trong mỗi khổ Virtualhost trong httpd.conf

Các khổ thơ Virtualhost thường hướng đến cuối tệp httpd.conf. Ví dụ:

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

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

Đồng thời kiểm tra ssl.conf hoặc httpd-ssl.conf hoặc tương tự vì chúng có thể được đặt ở đó, không nhất thiết phải ở httpd.conf


3
Đối với bản ghi, tùy thuộc vào sysadmin / quản trị trang web của bạn, Virtualhost có thể sống trong tệp chuyên dụng của riêng họ trong conf.d (đó là cách tôi muốn giữ nhà và đó là thứ tôi học được, không phải thứ tôi đã phát minh ra, vì vậy tôi mong đợi 'Tôi không phải là người duy nhất).
Bogdan Stăncescu

3
Lưu ý rằng ít nhất Apache 2.4+ được SSLProtocolđịnh cấu hình bên ngoài các stanzas Virtualhost sẽ áp dụng cho tất cả các máy chủ ảo.
Nurikabe

2
Tôi đã tìm thấy công cụ này sẽ kiểm tra, trong số những thứ khác, liệu máy chủ của bạn có bị vô hiệu hóa SSLv3 hay không: ssllabs.com/ssltest/index.html
amphetamachine

1
Câu trả lời này rất hữu ích cho tôi khi vô hiệu hóa TLSv1. Để kiểm tra xem một giao thức đã cho có bị vô hiệu hóa hoàn toàn không, tôi thấy hữu ích sau : nmap -sV --script ssl-enum-ciphers -p 443 <hostname>.
Luca Citi

Có cách nào để thiết lập toàn SSLProtocolhệ thống mà không phải chỉnh sửa từng Virtualhost không?
Dunatotatos

10

Tôi gặp vấn đề tương tự trên Ubuntu 14.04. Sau khi đọc nó, tôi chỉnh sửa phần "SSLProtocol" trong /etc/apache2/mods-available/ssl.conf.

  • từ: SSLProtocol all
  • đến: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

Nhưng nó không hoạt động. Vì vậy, tôi đã chỉnh sửa phần sau đây "SSLCodesSuite" trong /etc/apache2/mods-available/ssl.conf.

  • từ: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • đến: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

Và bây giờ nó làm việc cho tôi.

Nhân tiện, Bộ mật mã không bị ảnh hưởng bởi POODLE, chỉ có giao thức - nhưng hầu hết các trình duyệt đều ổn với Bộ mật mã SSLv3 bị vô hiệu hóa.

Đừng sử dụng cái này cho Mailserver! Hoặc bạn sẽ (có thể) đối mặt với vấn đề không thể tải Thư của mình trên một số thiết bị.


Cảm ơn bạn. Câu trả lời này hoạt động trong thiết lập WHM / cPanel. Tôi đã thử các phương pháp khác được đề xuất trực tuyến và bạn là phương pháp duy nhất hiệu quả.
Voitek Zylinski

1
Điều này hoạt động, nhưng nó sẽ vô hiệu hóa quyền truy cập với IE 10, vì nó sử dụng SSLv3 và TLS1.0 theo mặc định.
Erebus

4

Dành cho Ubuntu 10.04

Để tắt SSLv3 trên tất cả các vhost đang hoạt động, bạn cần có tùy chọn trong

/etc/apache2/mods-av Available / ssl.conf:

SSLProtocol all -SSLv2 -SSLv3

2

Tôi đã gặp một vấn đề tương tự sáng nay và tôi đã tìm thấy một máy chủ ảo khác kích hoạt SSLv3, vì vậy toàn bộ máy chủ phản hồi các kết nối SSLv3.

Vì vậy, hãy đảm bảo rằng không có máy chủ nào của bạn có SSLv3 hoạt động.


1

Hãy chắc chắn SSLCodesSuite không chứa! SSLv3. Trong bối cảnh đó, nó cũng đề cập đến TLS1.0 và TLS1.1.

Ví dụ: nếu cấu hình của bạn là SSLProtocol All , chỉ TLS1.2 sẽ khả dụng do cách SSLCodesSuite được định cấu hình với! SSLv3.


0

Đối với người dùng CentO gặp sự cố khi chỉnh sửa tệp cấu hình SSL của bạn qua SSH, hãy thử tắt SSLv3 qua WHM :

Bước 1: Điều hướng đến Trình chỉnh sửa bao gồm

-Tạo đăng nhập vào WHM -Mở màn hình "Cấu hình Apache" và nhấp vào "Bao gồm trình chỉnh sửa"

Bước 2: Chỉnh sửa Bao gồm

-Under "Bao gồm chính trước", chọn "Tất cả các phiên bản". Bằng cách này, máy chủ của bạn sẽ được bảo vệ nếu bạn thay đổi phiên bản Apache của mình. Khi được chọn, nhập thông tin sau vào hộp văn bản:

Trên CentOS / RHEL 6.x:

SSLHonorCodesOrder Trên
SSLProtocol -Tất cả + TLSv1 + TLSv1.1 + TLSv1.2

Trên CentOS / RHEL 5.x:

SSLHonorCodesOrder trên
SSLProtocol -Tất cả + TLSv1

Sau đó bấm Cập nhật .

Khi bạn nhấp vào cập nhật, bạn sẽ được nhắc khởi động lại Apache; làm như vậy vào lúc này

nguồn gốc: https : //www.l Liquidweb.com/kb/how-to-disable-sslv3-and-protect-your-whmcpanel-server-from-poodle/


1
Câu trả lời này có liên quan đến các máy chủ được điều khiển thông qua WHM / cPanel, không phải cho các máy chủ chạy CentOS.
Bogdan Stăncescu

0

Phương thức mà bạn đang sử dụng là dành cho phiên bản mới của Apache và Openssl. Có thể phiên bản mới này không được cài đặt trên hệ thống của bạn, hãy xác minh phiên bản đã cài đặt hiện tại.

SSLv2SSLv3cả hai đều dễ bị tổn thương trong một số cuộc tấn công, vì vậy sẽ tốt hơn nếu chỉ sử dụng TLS. Vì vậy, sửa đổi tập tin apache conf của bạn như sau,

SSLProtocol TLSv1 TLSv1.1 TLSv1.2

hoặc là

SSLProtocol TLSv1

Vâng, tôi cũng đã thử điều đó - không có niềm vui. :-(

bạn có thể vui lòng dán đầu ra của lệnh "apachectl configtest".
P4cK3tHuNt3R

0

Tôi đã có một vấn đề tương tự và tôi đã kiểm tra rằng tôi có tất cả các cài đặt apache phù hợp chính xác.

Tuy nhiên, điều tôi đã bỏ lỡ là tôi đã có nginx như một proxy ngược trước apache. Tôi cũng tình cờ sử dụng Plesk và đây là từ hướng dẫn sửa lỗi POODLE của họ :

Nếu bạn đang chạy Nginx, hãy bao gồm dòng sau trong cấu hình của bạn trong số các chỉ thị SSL khác trong /etc/nginx/nginx.conf:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.