Hướng dẫn này mô tả các bước cần thực hiện để bảo vệ Máy chủ Ubuntu hoặc Debian Linux của bạn khỏi cuộc tấn công Logjam mới được phát hiện gần đây. Logjam là một cuộc tấn công chống lại trao đổi khóa Diffie-Hellman được sử dụng trong các giao thức mã hóa phổ biến như HTTPS, TLS, SMTPS, SSH và các giao thức khác. Bạn có thể tìm thấy mô tả chi tiết tại đây https://weakdh.org/.
Hướng dẫn này tương thích với các thiết lập ISPConfig 3 trên Debian và Ubuntu.
Các bước sau đây phải được thực hiện với tư cách là người dùng root trên shell.
Bây giờ tôi sẽ tạo tệp dhparams.pem và thiết lập quyền bảo mật:
và thay đổi hoặc thêm các dòng sau:
Xin lưu ý rằng SSLCipherSuide chỉ là một dòng dài, vì vậy không thêm ngắt dòng!
Phần thứ hai là thiết lập Nhóm DH trong apache. Tùy chọn cấu hình SSLOpenSSLConfCmd chỉ khả dụng trong apache 2.4.8 trở lên và nó cũng yêu cầu openssl 1.0.2 trở lên, vì vậy trước tiên chúng ta phải kiểm tra xem phiên bản apache và openssl của chúng ta có hỗ trợ nó không:
Đầu ra trên máy chủ Debian 7 của tôi là:
Bây giờ tôi sẽ kiểm tra openssl:
Đầu ra trên hệ thống của tôi là:
Vì vậy Tôi không thể thiết lập DH Group trên máy chủ này. Phần đầu tiên và phần thứ hai độc lập với nhau, phần đầu tiên đã vô hiệu hóa các mã hóa yếu để bảo vệ máy chủ của bạn và nó sẽ hoạt động mà không cần nhóm DH. Trong trường hợp bạn muốn cài đặt nguồn biểu mẫu OpenSSL mới nhất, hãy xem hướng dẫn này. Nếu phiên bản apache của bạn là > 2.4.8 và OpenSSL > 1.0.2, sau đó chỉnh sửa lại tệp /etc/apache2/mods-available/ssl.conf:
Thêm dòng:
và khởi động lại apache:
Thêm hoặc thay thế các thiết lập sau bên trong phần httpd { .... }:
Và khởi động lại Nginx:
Và khởi động lại postfix:
và thêm dòng:
ngay sau dòng ssl_protocols.
Đối với các tham số khác, chúng ta cần biết phiên bản dovecot. Chạy lệnh này để lấy thông tin phiên bản dovecot trên shell:
Khi phiên bản là 2.2.6 trở lên, hãy thêm dòng bổ sung này:
Khi phiên bản là 2.2.7 trở lên, hãy thêm dòng thứ ba này:
Cuối cùng, hãy khởi động lại dovecot
Và cuộn xuống dòng:
Bây giờ hãy thêm dòng mới này ngay sau đó:
Sau đó tạo (hoặc chỉnh sửa khi tệp đó tồn tại) tệp /etc/pure-ftpd/conf/TLSCipherSuite bằng nano:
và nhập mã hóa sau danh sách:
Khi tệp đã tồn tại và chứa một số mã hóa, hãy thay thế các mã hóa bằng các mã hóa ở trên. Sau đó lưu tệp và khởi động lại pure-ftpd:
Hướng dẫn này tương thích với các thiết lập ISPConfig 3 trên Debian và Ubuntu.
Các bước sau đây phải được thực hiện với tư cách là người dùng root trên shell.
Tạo một Nhóm DH duy nhất
Bước đầu tiên để bảo mật máy chủ của bạn là tạo một Nhóm DH duy nhất bằng lệnh openssl. Tôi sẽ tạo tệp trong thư mục /etc/ssl/private/. Khi bạn không có thư mục này trên máy chủ của mình, hãy tạo nó bằng các lệnh sau:
Mã:
mkdir -p /etc/ssl/private
chmod 710 /etc/ssl/private
Mã:
cd /etc/ssl/private
openssl dhparam -out dhparams.pem 2048
chmod 600 dhparams.pem
Apache
Đầu tiên tôi sẽ thêm một bộ mã hóa an toàn dựa trên các khuyến nghị từ weakdh.org. Mở tệp /etc/apache2/mods-available/ssl.conf bằng trình chỉnh sửa:
Mã:
nano /etc/apache2/mods-available/ssl.conf
Mã:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE -ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECD HE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:E CDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA :DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-D SS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SH A256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHASSLHonorCipherĐặt hàng trên
Phần thứ hai là thiết lập Nhóm DH trong apache. Tùy chọn cấu hình SSLOpenSSLConfCmd chỉ khả dụng trong apache 2.4.8 trở lên và nó cũng yêu cầu openssl 1.0.2 trở lên, vì vậy trước tiên chúng ta phải kiểm tra xem phiên bản apache và openssl của chúng ta có hỗ trợ nó không:
Mã:
apache2 -v
Mã:
root@server1:/etc/apache2# apache2 -v
Phiên bản máy chủ: Apache/2.2.22 (Debian)
Máy chủ được xây dựng: 23 tháng 12 năm 2014 22:48:29
Mã:
phiên bản openssl
Mã:
root@server1:/# phiên bản openssl
OpenSSL 1.0.1e 11 tháng 2 năm 2013
Mã:
nano /etc/apache2/mods-available/ssl.conf
Mã:
SSLOpenSSLConfCmd DHParameters "/etc/ssl/private/dhparams.pem"
Mã:
service apache2 restart
Nginx
Chỉnh sửa tệp cấu hình Nginx /etc/nginx/nginx.conf
Mã:
nano /etc/nginx/nginx.conf
Mã:
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-E CDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-R SA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-R SA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA -AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-S HA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-S HA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
Mã:
ssl_prefer_server_ciphers on;
Mã:
ssl_dhparam /etc/ssl/private/dhparams.pem;
Mã:
service nginx restart
Postfix
Chạy các lệnh này để thiết lập bộ mã hóa an toàn và Nhóm DH:
Mã:
postconf -e "smtpd_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA"
postconf -e "smtpd_tls_dh1024_param_file = /etc/ssl/private/dhparams.pem"
Mã:
service postfix restart
Dovecot
Chỉnh sửa tệp cấu hình dovecot /etc/dovecot/dovecot.conf
Mã:
nano /etc/dovecot/dovecot.conf
Mã:
ssl_cipher_list=ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GC M-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECD HE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDH E-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES2 56-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA2 56:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Đối với các tham số khác, chúng ta cần biết phiên bản dovecot. Chạy lệnh này để lấy thông tin phiên bản dovecot trên shell:
Mã:
dovecot --version
Mã:
ssl_prefer_server_ciphers = yes
Mã:
ssl_dh_parameters_length = 2048
Mã:
service dovecot restart
Pure-ftpd
Việc bảo mật pure-ftpd trên Debian và Ubuntu phức tạp hơn một chút vì tập lệnh /usr/sbin/pure-ftpd-wrapper không hỗ trợ lệnh chuyển đổi -J ngay lập tức được pure-ftpd sử dụng để thiết lập Bộ mã hóa SSL. Bước đầu tiên là thêm hỗ trợ cho tùy chọn -J trong tập lệnh wrapper. Mở tệp:
Mã:
nano /usr/sbin/pure-ftpd-wrapper
Mã:
'TLS' => ['-Y %d', \&parse_number_1],
Mã:
'TLSCipherSuite' => ['-J %s', \&parse_string],
Mã:
nano /etc/pure-ftpd/conf/TLSCipherSuite
Mã:
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kED H+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA- AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA -AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SH A256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256: AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
Mã:
service pure-ftpd-mysql restart