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ố.
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.
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:
OutputOct 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.
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:
OutputOct 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 đề.
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:
OutputGenerating 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:
OutputConfiguration 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
.
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 systemctl
và journalctl
để 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.