Einführung
In diesem Tutorial erfahren Sie, wie Sie eine Warnmeldung von HAProxy Setting tune.ssl.default-dh-param auf 1024 standardmäßig
diagnostizieren und beheben können, indem Sie die in der Anleitung zur Fehlerbehebung bei häufigen HAProxy-Fehlern beschriebenen Methoden am Anfang dieser Serie anwenden. Sobald Sie bestätigt haben, dass Ihr Server die Warnmeldung generiert, erfahren Sie, wie Sie diese beheben, indem Sie die Konfigurationsoption ssl-dh-param-file
von HAProxy verwenden, um eine benutzerdefinierte Datei dhparams.pem
zu verwenden.
Sie können eine Warnmeldung von HAProxy Setting tune.ssl.default-dh-param auf 1024 standardmäßig
erhalten, wenn Ihr HAProxy-Server mit einem SSL/TLS-Zertifikat konfiguriert ist und der Parameter tune.ssl.default-dh-param
nicht in der Konfigurationsdatei haproxy.cfg
von HAProxy festgelegt ist. Wenn der Parameter nicht festgelegt ist, verwendet HAProxy standardmäßig einen Wert von 1024 Bits für den Diffie-Hellman-Schlüsselaustauschteil des TLS-Handshakes, was als unsicher angesehen wird.
Ihr HAProxy-Server könnte diese Warnung auslösen, ohne dass Sie davon wissen. Sie können ein SSL/TLS-Zertifikat konfigurieren, und HAProxy wird ausgeführt, aber der Server könnte Sie im Hintergrund vor dem Problem warnen. Wenn Sie nicht sicher sind, ob Ihr HAProxy-Server standardmäßig einen 1024-Bit-Diffie-Hellman-Parameter verwendet, können Sie ein Tool wie den SSL Labs Server Test verwenden, um dies für Sie zu überprüfen. Wenn Sie einen Bericht erhalten, der eine Zeile enthält Dieser Server unterstützt schwache Diffie-Hellman (DH)-Schlüsselexchange-Parameter
, dann ist Ihr HAProxy-Server betroffen.
Wenn Sie bereits festgestellt haben, dass Ihr HAProxy-Server eine Warnung bezüglich der tune.ssl.default-dh-param
-Einstellung generiert und Sie die Fehlerbehebung überspringen möchten, erklärt der Abschnitt „Lösung einer Sicheren tune.ssl.default-dh-param
-Warnung“ am Ende dieses Tutorials, wie Sie das Problem beheben können.
Überprüfen einer tune.ssl.default-dh-param
-Warnung mit systemctl
Wenn Sie die Fehlerbehebungsschritte aus dem Wie man häufige HAProxy-Fehler behebt-Tutorial am Anfang dieser Serie befolgen, ist der erste Schritt beim Debuggen einer Einstellung tune.ssl.default-dh-param auf 1024 standardmäßig
-Warnung, den Status von HAProxy mit systemctl
zu überprüfen.
Die Ausgabe von systemctl status
kann alle diagnostischen Informationen enthalten, die Sie benötigen, um den Fehler zu beheben. Es ist jedoch wichtig, den aktuellen Status des haproxy
-Dienstes zu überprüfen, um sicherzustellen, dass er läuft und dass alle Dienste, die darauf angewiesen sind, weiterhin funktionieren, während Sie die Warnung beheben.
Verwenden Sie diesen systemctl
-Befehl, um den Status von HAProxy auf jeder Linux-Distribution zu überprüfen:
Die -l
-Flag wird sicherstellen, dass systemctl
den gesamten Inhalt einer Zeile ausgibt, anstatt Auslassungen (…
) für lange Zeilen einzusetzen. Die --no-pager
-Flag gibt das gesamte Protokoll auf Ihrem Bildschirm aus, ohne ein Werkzeug wie less
zu aktivieren, das nur einen Bildschirminhalt gleichzeitig anzeigt.
Da Sie eine Warnmeldung Setting tune.ssl.default-dh-param to 1024 by default
untersuchen, sollten Sie eine Ausgabe erhalten, die ähnlich wie die folgende aussieht:
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.
In dieser Ausgabe sind zwei wichtige markierte Abschnitte zu beachten. Der erste ist die Zeile active (running)
, die angibt, dass HAProxy verfügbar und aktiv ist. Wenn Ihr Server eine Zeile wie Active: failed
anzeigt, müssen Sie HAProxy mit den in der Anleitung Wie man häufige HAProxy-Fehler behebt am Anfang dieser Serie beschriebenen Methoden untersuchen.
Die zweite Gruppe von markierten Zeilen stammt aus dem systemd
-Journal und enthält die tune.ssl.default-dh-param
-Warnung. Diese Zeilen geben Ihnen alle Informationen über die Warnung, wie sie ausgelöst wird, die von HAProxy durchgeführten Schritte und wie Sie das Problem beheben können.
Wenn Ihr systemctl
-Ausgabezeilen mit der tune.ssl.default-dh-param
-Warnung enthält, gehen Sie zum Abschnitt Beheben einer tune.ssl.default-dh-param
-Warnung am Ende dieses Tutorials, um zu erfahren, wie Sie HAProxy mit einem sichereren Wert konfigurieren können.
Wenn Ihre systemctl
-Ausgabe keine spezifischen Informationen über die Warnung enthält, Sie jedoch wissen, dass Ihr Server schwache Diffie-Hellman-Parameter verwendet, wird Sie der nächste Abschnitt dieses Tutorials durch die Verwendung von journalctl
-Protokollen dabei unterstützen, die Warnmeldung zu lokalisieren.
Überprüfen einer tune.ssl.default-dh-param
-Warnung mit journalctl
Wenn Ihre systemctl
-Ausgabe keine tune.ssl.default-dh-param
-Warnung enthält, Sie jedoch wissen, dass Ihr Server betroffen ist, sollten Sie mit dem Verwenden des journalctl
-Befehls fortfahren, um die systemd
-Protokolle für HAProxy zu überprüfen.
Führen Sie den folgenden Befehl auf einer beliebigen Linux-Distribution aus, um die Protokolle des systemd
-Journals für den Dienst haproxy
zu überprüfen:
Der Teil | grep tune.ssl.default-dh-param
des Befehls verwendet einen Pipe (|
), um die Ausgabe von journalctl
an das grep
-Kommando als Eingabe zu senden. Die Verwendung des Pipes bedeutet, dass nur übereinstimmende Zeilen aus dem Journal auf Ihrem Bildschirm angezeigt werden.
Wenn das Journal eine Warnung für tune.ssl.default-dh-param
enthält, erhalten Sie eine Ausgabe wie die folgende:
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.
Da diese Ausgabe die Warnung enthält, können Sie zum Abschnitt Festlegen eines sicheren Werts für tune.ssl.default-dh-param
am Ende dieses Tutorials springen, um zu erfahren, wie Sie HAProxy mit einem sichereren Wert konfigurieren können.
Wenn Sie nach Ausführung des Befehls journaltcl
keine Ausgabe erhalten, zeigt der nächste Abschnitt, wie Sie mit dem integrierten Konfigurationsprüfungstool von HAProxy nach einer Warnung für tune.ssl.default-dh-param
suchen können.
Überprüfen auf eine Warnung für tune.ssl.default-dh-param
mit haproxy -c
oder Log-Dateien
HAProxy enthält einen Befehl, der seine Konfigurationsdateien überprüfen und validieren kann. Sie können den Befehl verwenden, um nach Syntaxfehlern oder ungültigen Einstellungen zu suchen, ohne HAProxy neu zu starten und das Risiko von Ausfallzeiten für Ihre Dienste einzugehen. Darüber hinaus können Sie, wenn Ihr HAProxy-Server so konfiguriert ist, dass Ausgaben in eine Datei oder die Systemprotokolle protokolliert werden, die Protokolldateien überprüfen, um nach einer tune.ssl.default-dh-param
-Warnung zu suchen.
Um nach einer tune.ssl.default-dh-param
-Warnung mit HAProxy selbst zu suchen, führen Sie den folgenden Befehl auf jeder Linux-Distribution aus. Wenn sich Ihre HAProxy-Konfigurationsdatei an einem anderen Ort als dem markierten /etc/haproxy/haproxy.cfg
-Pfad befindet, stellen Sie sicher, dass Sie den korrekten Pfad zu Ihrer Datei einsetzen:
Wenn Ihr Server mit SSL/TLS konfiguriert ist und kein tune.ssl.default-dh-param
festgelegt ist, erhalten Sie eine Warnmeldung ähnlich der folgenden:
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
Die markierte Zeile enthält die tune.ssl.default-dh-param
-Warnung.
Um die Warnmeldung mithilfe der HAProxy-Protokolle zu überprüfen, können Sie nach Zeilen suchen, die der Zeichenfolge tune.ssl.default-dh-param
entsprechen, indem Sie den grep
-Befehl verwenden. Führen Sie den folgenden Befehl aus, um nach Warnungen zu suchen:
Beachten Sie, dass Sie, wenn Sie HAProxy mit einem anderen Protokollspeicherort konfiguriert haben, den Pfad anstelle der markierten Datei /var/log/haproxy.log
einsetzen müssen.
Wenn Ihr Server die Warnung generiert, erhalten Sie eine Ausgabe wie die folgende:
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.
Hinweis: Ihre Protokolldateien enthalten möglicherweise nicht die Warnmeldung, aber der Befehl haproxy -c
wird trotzdem die Warnung generieren. Wenn dies der Fall ist, liegt es wahrscheinlich daran, dass Ihr HAproxy-Dienst lange genug ausgeführt wurde, damit die Protokolldatei rotiert wurde und die Warnung nicht enthält.
Die Überprüfung der Nachricht mit der Methode haproxy -c
ist der zuverlässigste Weg, um festzustellen, ob Ihr Server betroffen ist, sodass Sie fehlende Einträge in der Protokolldatei sicher ignorieren können.
Nachdem Sie festgestellt haben, ob Ihr Server eine tune.ssl.default-dh-param
-Warnung generiert, können Sie mit dem nächsten Schritt in diesem Tutorial fortfahren, der zwei Methoden erläutert, mit denen Sie das Problem beheben können.
Beheben einer tune.ssl.default-dh-param
-Warnung
Sie können eine tune.ssl.default-dh-param
-Warnung in HAProxy mit einigen verschiedenen Einstellungen beheben. Eine Option besteht darin, den Wert von tune.ssl.default-dh-param
explizit in /etc/haproxy/haproxy.cfg
auf etwas Größeres als 1024 gemäß der Warnmeldung festzulegen. Die HAProxy-Dokumentation empfiehlt jedoch, benutzerdefinierte Diffie-Hellman-Parameter anzugeben, da diese Methode sicherer ist. Wir werden daher diese Methode verwenden.
Zuerst erstellen Sie eine dhparams.pem
-Datei mit dem openssl
-Dienstprogramm. Sobald die Datei erstellt ist, fügen Sie sie dem globalen HAProxy-Konfigurationsabschnitt hinzu, damit alle frontend
-Blöcke die Einstellung erben.
Um die benutzerdefinierten DH-Parameter zu generieren, führen Sie Folgendes aus:
Sie erhalten eine Ausgabe wie folgt:
OutputGenerating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..............
Wenn der Befehl abgeschlossen ist, konfigurieren Sie HAProxy so, dass es die benutzerdefinierte DH-Parameterdatei verwendet. Öffnen Sie /etc/haproxy/haproxy.cfg
in vi
oder Ihrem bevorzugten Editor.
sudo vi /etc/haproxy/haproxy.cfg
Suchen Sie den Abschnitt in der Datei wie folgt:
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
Fügen Sie nun eine Zeile nach der ssl-default-server-ciphers PROFILE=SYSTEM
-Zeile hinzu, wie dies:
ssl-dh-param-file /etc/haproxy/dhparams.pem
Der gesamte Abschnitt sollte wie folgt aussehen, einschließlich der neuen hervorgehobenen ssl-dh-param-file
-Zeile, die Sie hinzugefügt haben:
/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
Wenn Sie mit der Bearbeitung der Datei fertig sind, speichern Sie sie und schließen Sie sie, indem Sie ESC
drücken, :wq
eingeben und ENTER
drücken.
Testen Sie die Konfiguration mit dem Befehl haproxy -c
, um sicherzustellen, dass Sie die richtige Einstellung hinzugefügt haben und dass HAProxy auf die benutzerdefinierte dhparams.pem
-Datei zugreifen kann:
Sie sollten eine Ausgabe erhalten, die besagt, dass die Konfiguration gültig ist, wie folgt:
OutputConfiguration file is valid
Wenn Ihre Konfiguration gültig ist, starten Sie HAProxy neu, damit es die neue Diffie-Hellman-Parameterdatei verwendet:
Sie haben HAProxy nun mit einem Satz benutzerdefinierter Diffie-Hellman-Parameter mit 2048 Bit konfiguriert, die alle Frontends verwenden können. Sie haben auch die Warnungen von tune.ssl.default-dh-param
unterdrückt.
Zusammenfassung
In diesem Tutorial haben Sie gelernt, wie Sie eine Warnmeldung von HAProxy Setting tune.ssl.default-dh-param to 1024 by default
beheben können. Sie haben vier verschiedene Methoden untersucht, um die Konfiguration von HAProxy zu überprüfen und die Meldung zu finden. Zuerst haben Sie systemctl
und journalctl
verwendet, um den Status des HAProxy-Servers zu überprüfen und die Meldung in den systemd
-Protokollen zu suchen. Dann haben Sie die HAProxy-Konfigurationsdatei mithilfe des integrierten haproxy -c
-Konfigurationsprüfens überprüft. Schließlich haben Sie nach Logeinträgen mithilfe des grep
-Befehls in der HAProxy-Protokolldatei gesucht.
Nachdem Sie bestätigt haben, dass Ihr Server eine Warnmeldung von Setting tune.ssl.default-dh-param to 1024 by default
generiert, haben Sie eine benutzerdefinierte Diffie-Hellman-Parameterdatei generiert und HAProxy so konfiguriert, dass es diese verwendet, indem Sie die Konfigurationsanweisung ssl-dh-param-file
festlegen.
Jetzt, da Sie diese Konfiguration vorgenommen haben, verwendet Ihr HAProxy-Server standardmäßig sicherere Diffie-Hellman-Parameter, und die Warnmeldung von tune.ssl.default-dh-param
wird nicht mehr in Ihren Protokollen angezeigt.