POODLE (Padding Oracle On Downngraded Legacy Encoding) là một lỗ hổng được tìm thấy vào ngày 14 tháng 10 năm 2014, cho phép kẻ tấn công đọc bất kỳ thông tin được mã hóa nào bằng giao thức SSLv3 bằng cách thực hiện một cuộc tấn công trung gian. Mặc dù nhiều chương trình sử dụng SSLv3 như một dự phòng, nhưng đã đến lúc cần phải vô hiệu hóa - vì nhiều khách hàng có thể bị buộc phải sử dụng SSLv3. Buộc một khách hàng vào SSLv3 làm tăng khả năng một cuộc tấn công đang diễn ra. Bài viết này sẽ chỉ cho bạn cách vô hiệu hóa SSLv3 trong các ứng dụng phần mềm được chọn thường được sử dụng hiện nay.
Vô hiệu hóa SSLv3 trên Nginx
Đi đến tệp cấu hình nơi lưu trữ thông tin máy chủ của bạn. Ví dụ: /etc/nginx/sites-enabled/ssl.example.com.conf
(thay thế đường dẫn phù hợp với cấu hình của bạn). Trong tập tin, tìm kiếm ssl_protocols
. Đảm bảo dòng này tồn tại và khớp với các mục sau:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Điều này sẽ bắt buộc sử dụng TLS, do đó vô hiệu hóa SSLv3 (và bất kỳ giao thức cũ hoặc lỗi thời nào). Bây giờ khởi động lại máy chủ Nginx của bạn bằng cách chạy một trong các lệnh sau.
CentOS 7 :
systemctl restart nginx
Ubuntu / Debian :
service nginx restart
Vô hiệu hóa SSLv3 trên Apache
Để tắt SSLv3, hãy đến thư mục cấu hình mô-đun của bạn cho Apache. Trên Ubuntu / Debian có thể là như vậy /etc/apache2/mod-available
. Trong khi đó trên CentOS, nó có thể được đặt tại /etc/httpd/conf.d
. Hãy tìm ssl.conf
tập tin. Mở ssl.conf
và tìm SSLProtocol
chỉ thị. Đảm bảo dòng này tồn tại và khớp với các mục sau:
SSLProtocol all -SSLv3 -SSLv2
Sau khi hoàn tất, lưu, sau đó khởi động lại máy chủ của bạn bằng cách chạy một trong các lệnh sau.
Đối với Ubuntu / Debian chạy:
CentOS 7 :
systemctl restart httpd
Ubuntu / Debian :
service apache2 restart
Vô hiệu hóa SSLv3 trên Postfix
Đi đến postfix
thư mục của bạn . Nó là điển hình /etc/postfix/
. Mở main.cf
tập tin và tìm kiếm smtpd_tls_mandatory_protocols
. Đảm bảo dòng này tồn tại và khớp với các mục sau:
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, TLSv1, TLSv1.1, TLSv1.2
Điều này sẽ buộc TLSv1.1 và TLSv1.2 được kích hoạt và sử dụng trên máy chủ Postfix của bạn. Sau khi hoàn thành, lưu và khởi động lại.
CentOS 7 :
systemctl restart postfix
Ubuntu / Debian :
service postfix restart
Vô hiệu hóa SSLv3 trên Dovecot
Mở tệp nằm ở /etc/dovecot/conf.d/10-ssl.conf
. Sau đó, tìm dòng chứa ssl_protocols
và đảm bảo nó khớp với dòng sau:
ssl_protocols = !SSLv2 !SSLv3 TLSv1.1 TLSv1.2
Sau khi hoàn thành, lưu và khởi động lại Dovecot.
CentOS 7 :
systemctl restart dovecot
Ubuntu / Debian :
service dovecot restart
Kiểm tra SSLv3 bị vô hiệu hóa
Để xác minh rằng SSLv3 bị vô hiệu hóa trên máy chủ web của bạn, hãy chạy lệnh sau (thay thế tên miền và IP tương ứng):
openssl s_client -servername example.com -connect 0.0.0.0:443 -ssl3
Bạn sẽ thấy đầu ra tương tự như sau:
CONNECTED(00000003)
140060449216160:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1260:SSL alert number 40
140060449216160:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1414181774
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Nếu bạn muốn xác nhận rằng máy chủ của bạn đang sử dụng TLS, hãy chạy cùng một lệnh nhưng không có -ssl3
:
openssl s_client -servername example.com -connect 0.0.0.0:443
Bạn sẽ thấy thông tin tương tự được hiển thị. Xác định vị trí Protocol
dòng và xác nhận rằng nó đang sử dụng TLSv1.X
(với X là 1 hoặc 2 tùy thuộc vào cấu hình của bạn). Nếu bạn thấy điều này, thì bạn đã vô hiệu hóa thành công SSLv3 trên máy chủ web của mình.