Thứ sáu, 06/11/2020 | 00:00 GMT+7

Cảnh báo HAproxy SSL / TLS: Đặt tune.ssl.default-dh-param thành 1024 theo mặc định

Loạt hướng dẫn này giải thích cách khắc phục sự cố và sửa một số lỗi phổ biến nhất mà bạn có thể gặp phải khi sử dụng server proxy HAProxy TCP và HTTP.

Một phần của Loạt bài: Các lỗi HAProxy thường gặp

Mỗi hướng dẫn trong loạt bài này bao gồm mô tả về các lỗi cấu hình HAProxy, mạng, hệ thống file hoặc quyền phổ biến. Loạt bài này bắt đầu với tổng quan về các lệnh và file log mà bạn có thể sử dụng để khắc phục sự cố HAProxy. Các hướng dẫn tiếp theo kiểm tra các lỗi cụ thể một cách chi tiết.

Trong hướng dẫn này, bạn sẽ học cách khắc phục sự cố và sửa lỗi Setting tune.ssl.default-dh-param to 1024 by default HAProxy Setting tune.ssl.default-dh-param to 1024 by default thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default bằng cách sử dụng các phương pháp được mô tả trong hướng dẫn Cách khắc phục sự cố HAProxy thường gặp ở đầu loạt bài này. Một khi bạn xác nhận server của bạn đang tạo thông báo cảnh báo, bạn sẽ tìm hiểu cách khắc phục bằng cách đặt tùy chọn cấu hình ssl-dh-param-file của HAProxy để sử dụng file dhparams.pem tùy chỉnh.

Bạn có thể gặp phải thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default về Setting tune.ssl.default-dh-param to 1024 by default HAProxy Setting tune.ssl.default-dh-param to 1024 by default khi server HAProxy của bạn được cấu hình bằng certificate SSL / TLS và thông số tune.ssl.default-dh-param không được đặt trong HAProxy's file cấu hình haproxy.cfg . Khi tham số không được đặt, HAProxy sẽ mặc định có giá trị 1024 bit cho phần thỏa thuận khóa Diffie-Hellman của quá trình bắt tay TLS, được coi là không an toàn .

Server HAProxy của bạn có thể kích hoạt cảnh báo này mà bạn không biết về nó. Bạn có thể cấu hình certificate SSL / TLS và HAProxy sẽ chạy, nhưng server có thể cảnh báo bạn về sự cố ở chế độ nền. Nếu bạn không chắc liệu server HAProxy của bạn có mặc định là thông số Diffie-Hellman 1024 bit hay không, bạn có thể sử dụng một công cụ như Kiểm tra server SSL Labs để kiểm tra. Nếu bạn nhận được báo cáo có dòng This server supports weak Diffie-Hellman (DH) key exchange parameters , thì server HAProxy của bạn bị ảnh hưởng.

Nếu bạn đã xác định rằng server HAProxy của bạn đang tạo cảnh báo về cài đặt tune.ssl.default-dh-param và bạn muốn bỏ qua việc khắc phục sự cố, phần Giải quyết vấn đề Secure tune.ssl.default-dh-param Cảnh báo tại phần cuối của hướng dẫn này giải thích cách khắc phục sự cố.

Đang kiểm tra cảnh báo tune.ssl.default-dh-param Sử dụng systemctl

Thực hiện theo các bước khắc phục sự cố từ hướng dẫn Cách khắc phục sự cố HAProxy phổ biến ở đầu loạt bài này, bước đầu tiên khi bạn khắc phục sự cố khi Setting tune.ssl.default-dh-param to 1024 by default thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default là kiểm tra trạng thái của HAProxy với systemctl .

Đầu ra từ systemctl status có thể chứa tất cả thông tin chẩn đoán mà bạn cần để giải quyết lỗi. Tuy nhiên, điều quan trọng là phải kiểm tra trạng thái hiện tại của dịch vụ haproxy đảm bảo rằng nó đang chạy và bất kỳ dịch vụ nào dựa vào nó vẫn có thể hoạt động trong khi bạn giải quyết cảnh báo.

Sử dụng lệnh systemctl này để kiểm tra trạng thái của HAProxy trên bất kỳ bản phân phối Linux nào:

  • sudo systemctl status haproxy.service -l --no-pager

Cờ -l sẽ đảm bảo systemctl xuất ra toàn bộ nội dung của một dòng, thay vì thay thế bằng systemctl ( ) cho các dòng dài. Cờ --no-pager sẽ xuất toàn bộ log ra màn hình của bạn mà không cần gọi một công cụ như less chỉ hiển thị màn hình nội dung tại một thời điểm.

Vì bạn đang khắc phục sự cố thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default , bạn sẽ nhận được kết quả tương tự như sau:

Output
● haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2020-10-06 14:31:39 UTC; 2min 31s ago Process: 71406 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS) Main PID: 71407 (haproxy) . . . Oct 06 14:31:39 bb9fb4c53743 systemd[1]: Starting HAProxy Load Balancer... Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: [WARNING] 279/143139 (71407) : parsing [/etc/haproxy/haproxy.cfg:69] : 'bind *:5000' : Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: unable to load default 1024 bits DH parameter for certificate '/etc/haproxy/fullchain.pem'. Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: , SSL library will use an automatically generated DH parameter. Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: [WARNING] 279/143139 (71407) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear. Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: Proxy main started. Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: Proxy static started. Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: Proxy app started. Oct 06 14:31:39 bb9fb4c53743 systemd[1]: Started HAProxy Load Balancer.

Có hai phần được đánh dấu quan trọng cần lưu ý trong kết quả này. Đầu tiên là dòng active (running) cho biết HAProxy có sẵn và đang chạy. Nếu server của bạn hiển thị một dòng như Active: failed , thì bạn cần khắc phục sự cố HAProxy bằng các phương pháp được mô tả trong hướng dẫn Cách khắc phục lỗi HAProxy phổ biến ở đầu loạt bài này.

Tập hợp thứ hai của các dòng được đánh dấu là từ tạp chí systemd và chứa cảnh báo tune.ssl.default-dh-param . Những dòng này cung cấp cho bạn tất cả thông tin về cảnh báo, cách nó được kích hoạt, các bước được thực hiện bởi HAProxy và cách giải quyết nó.

Nếu kết quả systemctl của bạn bao gồm các dòng có cảnh báo tune.ssl.default-dh-param , thì hãy bỏ qua phần [Đang giải quyết a tune.ssl.default-dh-param Warning] (Resolution-a-tunessldefault-dh-param-warning) ở cuối hướng dẫn này để tìm hiểu cách cấu hình HAProxy với giá trị an toàn hơn.

Ngược lại, nếu kết quả systemctl của bạn không cung cấp thông tin cụ thể về cảnh báo, nhưng bạn biết rằng server của bạn đang sử dụng các tham số Diffie-Hellman yếu, phần tiếp theo của hướng dẫn này sẽ hướng dẫn bạn cách sử dụng log journalctl để tìm thông báo cảnh báo.

Đang kiểm tra tune.ssl.default-dh-param Cảnh báo Sử dụng journalctl

Nếu kết quả systemctl của bạn không bao gồm cảnh báo tune.ssl.default-dh-param nhưng bạn biết rằng server của bạn bị ảnh hưởng, bạn nên tiếp tục sử dụng lệnh journalctl để kiểm tra log systemd cho HAProxy.

Chạy lệnh sau trên bất kỳ bản phân phối Linux nào để kiểm tra log của tạp chí systemd cho dịch vụ haproxy :

  • sudo journalctl -u haproxy.service -l --no-pager | grep tune.ssl.default-dh-param

Các | grep tune.ssl.default-dh-param phần của lệnh sử dụng một đường ống dẫn ( | ) để gửi kết quả từ journalctl đến grep làm đầu vào. Sử dụng đường dẫn nghĩa là chỉ những dòng phù hợp từ tạp chí mới được hiển thị trên màn hình của bạn.

Nếu tạp chí có cảnh báo tune.ssl.default-dh-param , thì bạn sẽ nhận được kết quả như sau:

Output
Oct 06 14:31:39 bb9fb4c53743 haproxy[71407]: [WARNING] 279/143139 (71407) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear.

Vì kết quả này bao gồm cảnh báo, bạn có thể bỏ qua phần Đặt giá trị an toàn tune.ssl.default-dh-param ở cuối hướng dẫn này để tìm hiểu cách cấu hình HAProxy với giá trị an toàn hơn.

Nếu bạn không nhận được bất kỳ kết quả nào sau khi chạy lệnh journaltcl , phần tiếp theo sẽ trình bày cách bạn có thể kiểm tra cảnh báo tune.ssl.default-dh-param bằng cách sử dụng công cụ kiểm tra cấu hình tích hợp của HAProxy.

Kiểm tra cảnh báo tune.ssl.default-dh-param Sử dụng haproxy -c hoặc Tệp log

HAProxy bao gồm một lệnh có thể kiểm tra và xác thực các file cấu hình của nó. Bạn có thể sử dụng lệnh để kiểm tra lỗi cú pháp hoặc cài đặt không hợp lệ mà không cần khởi động lại HAProxy và có nguy cơ mất thời gian cho các dịch vụ của bạn. Ngoài ra, nếu server HAProxy của bạn được cấu hình để ghi kết quả vào một file hoặc log hệ thống, bạn có thể kiểm tra các file log để kiểm tra cảnh báo tune.ssl.default-dh-param .

Để kiểm tra cảnh báo tune.ssl.default-dh-param bằng chính HAProxy, hãy chạy lệnh sau trên bất kỳ bản phân phối Linux nào. Nếu file cấu hình HAProxy của bạn ở vị trí khác với đường dẫn /etc/haproxy/haproxy.cfg đánh dấu, hãy đảm bảo thay thế bằng đường dẫn chính xác đến file của bạn:

  • sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Nếu server của bạn được cấu hình với SSL / TLS và không đặt tune.ssl.default-dh-param , thì bạn sẽ nhận được kết quả cảnh báo tương tự như sau:

Output
[WARNING] 279/150829 (71512) : parsing [/etc/haproxy/haproxy.cfg:69] : 'bind *:5000' : unable to load default 1024 bits DH parameter for certificate '/etc/haproxy/fullchain.pem'. , SSL library will use an automatically generated DH parameter. [WARNING] 279/150829 (71512) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear. Configuration file is valid

Dòng được đánh dấu chứa cảnh báo tune.ssl.default-dh-param .

Để kiểm tra thông báo cảnh báo bằng log của HAProxy, bạn có thể tìm kiếm các dòng trùng với chuỗi tune.ssl.default-dh-param bằng grep . Chạy lệnh sau để kiểm tra các cảnh báo:

  • sudo grep tune.ssl.default-dh-param /var/log/haproxy.log

Lưu ý nếu bạn đã cấu hình HAproxy với một vị trí log khác, hãy đảm bảo thay thế trong đường dẫn của bạn thay cho file /var/log/haproxy.log đánh dấu.

Nếu server của bạn đang tạo cảnh báo, thì bạn sẽ nhận được kết quả như sau:

Output
Oct 6 14:31:39 bb9fb4c53743 haproxy[71407]: [WARNING] 279/143139 (71407) : Setting tune.ssl.default-dh-param to 1024 by default, if your workload permits it you should set it to at least 2048. Please set a value >= 1024 to make this warning disappear.

Lưu ý : Các file log của bạn có thể không bao gồm thông báo cảnh báo, nhưng lệnh haproxy -c sẽ vẫn tạo ra cảnh báo. Nếu đúng như vậy, thì có khả năng là dịch vụ HAproxy của bạn đã chạy đủ lâu khiến file log bị xoay, vì vậy nó không bao gồm cảnh báo.

Kiểm tra thông báo bằng phương pháp haproxy -c là cách tin cậy nhất để xác định xem server của bạn có bị ảnh hưởng hay không, vì vậy bạn có thể bỏ qua các mục nhập file log bị thiếu một cách an toàn.

Đến đây bạn đã xác định liệu server của bạn có đang tạo cảnh báo tune.ssl.default-dh-param , bạn có thể tiến hành bước tiếp theo trong hướng dẫn này, giải thích hai phương pháp mà bạn có thể sử dụng để giải quyết vấn đề.

Đang giải quyết cảnh báo tune.ssl.default-dh-param

Bạn có thể giải quyết cảnh báo tune.ssl.default-dh-param trong HAProxy bằng một số cài đặt khác nhau. Một tùy chọn là đặt giá trị tune.ssl.default-dh-param giá trị lớn hơn 1024 một cách rõ ràng trong /etc/haproxy/haproxy.cfg cho mỗi thông báo cảnh báo. Tuy nhiên, tài liệu HAProxy khuyên bạn nên chỉ định các tham số Diffie-Hellman tùy chỉnh vì cách tiếp cận đó an toàn hơn, vì vậy ta sẽ sử dụng phương pháp đó thay thế.

Đầu tiên, bạn sẽ tạo file dhparams.pem bằng tiện ích openssl . Sau khi file được tạo, bạn sẽ thêm file đó vào phần cấu hình HAProxy chung của bạn để mọi khối frontend sẽ kế thừa cài đặt.

Để tạo các thông số DH tùy chỉnh, hãy chạy như sau:

  • sudo openssl dhparam -out /etc/haproxy/dhparams.pem 2048

Bạn sẽ nhận được kết quả như sau:

Output
Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ..............

Khi lệnh hoàn tất, hãy cấu hình HAProxy để sử dụng file thông số DH tùy chỉnh. Mở /etc/haproxy/haproxy.cfg trong vi hoặc trình soạn thảo bạn muốn .

sudo vi /etc/haproxy/haproxy.cfg 

Tìm phần trong file như sau:

Output
. . . # turn on stats unix socket stats socket /var/lib/haproxy/stats # utilize system-wide crypto-policies #ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM

Bây giờ thêm một dòng sau dòng ssl-default-server-ciphers PROFILE=SYSTEM như sau:

ssl-dh-param-file /etc/haproxy/dhparams.pem 

Toàn bộ phần sẽ giống như sau, bao gồm cả dòng ssl-dh-param-file đánh dấu mới mà bạn đã thêm:

/etc/haproxy/haproxy.cfg
. . . # turn on stats unix socket stats socket /var/lib/haproxy/stats # utilize system-wide crypto-policies #ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM ssl-dh-param-file /etc/haproxy/dhparams.pem

Khi bạn hoàn tất việc chỉnh sửa file , hãy lưu file đó bằng cách nhấn ESC , nhập :wq và nhấn ENTER .

Kiểm tra cấu hình bằng lệnh haproxy -c đảm bảo rằng bạn đã thêm cài đặt chính xác và HAProxy có thể truy cập file dhparams.pem tùy chỉnh:

  • sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Bạn sẽ nhận được kết quả thông báo rằng cấu hình hợp lệ như sau:

Output
Configuration file is valid

Nếu cấu hình của bạn hợp lệ, hãy khởi động lại HAProxy để nó sử dụng file thông số Diffie-Hellman mới:

  • sudo systemctl restart haproxy.service

Đến đây bạn đã cấu hình HAProxy với tập hợp các tham số Diffie-Hellman tùy chỉnh 2048 bit mà tất cả các giao diện user sẽ có thể sử dụng. Bạn cũng đã loại bỏ cảnh báo tune.ssl.default-dh-param .

Kết luận

Trong hướng dẫn này, bạn đã học cách khắc phục sự cố Setting tune.ssl.default-dh-param to 1024 by default HAProxy Setting tune.ssl.default-dh-param to 1024 by default thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default . Bạn đã khám phá bốn phương pháp khác nhau để kiểm tra cấu hình của HAProxy để tìm thông báo. Đầu tiên, bạn sử dụng systemctljournalctl để kiểm tra trạng thái của server HAProxy và cố gắng tìm thông báo trong log systemd . Sau đó, bạn kiểm tra file cấu hình HAProxy bằng cách sử dụng kiểm tra cấu hình haproxy -c sẵn. Cuối cùng, bạn đã kiểm tra các mục log bằng cách sử dụng grep trên file log của HAProxy.

Sau khi xác nhận server của bạn đang tạo thông báo cảnh báo Setting tune.ssl.default-dh-param to 1024 by default , bạn đã tạo file thông số Diffie-Hellman tùy chỉnh và cấu hình HAProxy để sử dụng nó bằng cách đặt ssl-dh-param-file chỉ thị cấu hình ssl-dh-param-file .

Đến đây bạn đã có cấu hình đó, server HAProxy của bạn sẽ mặc định sử dụng các tham số Diffie-Hellman an toàn hơn và thông báo cảnh báo tune.ssl.default-dh-param sẽ không còn trong log của bạn.


Tags:

Các tin trước