Introduction
Dans ce tutoriel, vous apprendrez comment résoudre et corriger un message d’avertissement HAProxy Setting tune.ssl.default-dh-param to 1024 by default
en utilisant les méthodes décrites dans le tutoriel Comment résoudre les erreurs courantes de HAProxy au début de cette série. Une fois que vous avez confirmé que votre serveur génère le message d’avertissement, vous apprendrez à le corriger en définissant l’option de configuration ssl-dh-param-file
de HAProxy pour utiliser un fichier dhparams.pem
personnalisé.
Vous pouvez rencontrer un message d’avertissement HAProxy Setting tune.ssl.default-dh-param to 1024 by default
lorsque votre serveur HAProxy est configuré avec un certificat SSL/TLS et que le paramètre tune.ssl.default-dh-param
n’est pas défini dans le fichier de configuration haproxy.cfg
de HAProxy. Lorsque le paramètre n’est pas défini, HAProxy utilisera par défaut une valeur de 1024 bits pour la partie d’accord de clé Diffie-Hellman de la poignée de main TLS, ce qui est considéré comme non sécurisé.
Votre serveur HAProxy peut déclencher cet avertissement sans que vous en soyez conscient. Vous pouvez configurer un certificat SSL/TLS et HAProxy fonctionnera, mais le serveur peut vous avertir de l’issue en arrière-plan. Si vous n’êtes pas sûr que votre serveur HAProxy utilise un paramètre Diffie-Hellman de 1024 bits par défaut, vous pouvez utiliser un outil tel que le Test de serveur SSL Labs pour vérifier. Si vous recevez un rapport contenant la ligne Ce serveur prend en charge des paramètres d'échange de clés Diffie-Hellman (DH) faibles
, alors votre serveur HAProxy est concerné.
Si vous avez déjà déterminé que votre serveur HAProxy génère un avertissement concernant le paramètre tune.ssl.default-dh-param
et que vous souhaitez passer directement à la résolution, la section Résolution d’un avertissement Secure tune.ssl.default-dh-param
à la fin de ce tutoriel explique comment résoudre le problème.
Vérification d’un avertissement tune.ssl.default-dh-param
en utilisant systemctl
En suivant les étapes de dépannage du tutoriel Comment résoudre les erreurs courantes de HAProxy au début de cette série, la première étape lors du dépannage d’un message d’avertissement Setting tune.ssl.default-dh-param to 1024 by default
est de vérifier le statut de HAProxy avec systemctl
.
La sortie de systemctl status
peut contenir toutes les informations de diagnostic dont vous avez besoin pour résoudre l’erreur. Cependant, il est important d’examiner l’état actuel du service haproxy
pour s’assurer qu’il fonctionne et que tous les services qui en dépendent sont toujours en mesure de fonctionner pendant que vous résolvez l’avertissement.
Utilisez cette commande systemctl
pour examiner l’état de HAProxy sur n’importe quelle distribution Linux:
Le drapeau -l
garantira que systemctl
affiche le contenu entier d’une ligne, au lieu de substituer des points de suspension (…
) pour les lignes longues. Le drapeau --no-pager
affichera l’intégralité du journal sur votre écran sans invoquer un outil tel que less
qui ne montre qu’un écran de contenu à la fois.
Étant donné que vous dépannez un message d’avertissement Setting tune.ssl.default-dh-param to 1024 by default
, vous devriez recevoir une sortie similaire à ce qui suit:
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.
Il y a deux sections importantes mises en évidence à noter dans cette sortie. La première est la ligne active (running)
, qui indique que HAProxy est disponible et en cours d’exécution. Si votre serveur affiche une ligne comme Active: failed
, vous devrez dépanner HAProxy en utilisant les méthodes décrites dans le tutoriel Comment résoudre les erreurs courantes de HAProxy au début de cette série.
Le deuxième ensemble de lignes en surbrillance provient du journal de systemd
et contient l’avertissement tune.ssl.default-dh-param
. Ces lignes vous fournissent toutes les informations sur l’avertissement, comment il est déclenché, les étapes prises par HAProxy et comment le résoudre.
Si la sortie de votre systemctl
inclut des lignes avec l’avertissement tune.ssl.default-dh-param
, passez à la section Résolution d’un Avertissement tune.ssl.default-dh-param
à la fin de ce tutoriel pour apprendre comment configurer HAProxy avec une valeur plus sécurisée.
Sinon, si la sortie de votre systemctl
ne donne pas d’informations spécifiques sur l’avertissement, mais que vous savez que votre serveur utilise des paramètres Diffie-Hellman faibles, la prochaine section de ce tutoriel vous guidera à travers l’utilisation des journaux journalctl
pour localiser le message d’avertissement.
Vérification d’un Avertissement tune.ssl.default-dh-param
en Utilisant journalctl
Si la sortie de votre systemctl
n’inclut pas un avertissement tune.ssl.default-dh-param
mais que vous savez que votre serveur est concerné, vous devriez procéder à l’utilisation de la commande journalctl
pour examiner les journaux systemd
pour HAProxy.
Exécutez la commande suivante sur n’importe quelle distribution Linux pour inspecter les journaux du service haproxy
dans le journal systemd
:
La partie | grep tune.ssl.default-dh-param
de la commande utilise un tube (|
) pour envoyer la sortie de journalctl
à la commande grep
en tant qu’entrée. L’utilisation du tube signifie que seules les lignes correspondantes du journal seront affichées à l’écran.
Si le journal comprend un avertissement tune.ssl.default-dh-param
, vous recevrez une sortie comme suit:
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.
Étant donné que cette sortie inclut l’avertissement, vous pouvez passer à la section Configuration d’une valeur sécurisée pour tune.ssl.default-dh-param
à la fin de ce tutoriel pour apprendre comment configurer HAProxy avec une valeur plus sécurisée.
Si vous ne recevez aucune sortie après avoir exécuté la commande journaltcl
, la section suivante démontrera comment vérifier la présence d’un avertissement tune.ssl.default-dh-param
en utilisant l’outil de vérification de configuration intégré à HAProxy ou les fichiers journaux.
Vérification d’un avertissement tune.ssl.default-dh-param
à l’aide de haproxy -c
ou des fichiers journaux
HAProxy inclut une commande qui peut examiner et valider ses fichiers de configuration. Vous pouvez utiliser la commande pour vérifier les erreurs de syntaxe ou les paramètres invalides sans redémarrer HAProxy et risquer des temps d’arrêt pour vos services. De plus, si votre serveur HAProxy est configuré pour enregistrer la sortie dans un fichier ou dans les journaux système, vous pouvez examiner les fichiers journaux pour rechercher un avertissement tune.ssl.default-dh-param
.
Pour vérifier un avertissement tune.ssl.default-dh-param
en utilisant HAProxy lui-même, exécutez la commande suivante sur n’importe quelle distribution Linux. Si votre fichier de configuration HAProxy se trouve dans un emplacement différent du chemin /etc/haproxy/haproxy.cfg
mis en évidence, assurez-vous de substituer le chemin correct de votre fichier:
Si votre serveur est configuré avec SSL/TLS et n’a pas de tune.ssl.default-dh-param
défini, alors vous recevrez une sortie d’avertissement similaire à ce qui suit:
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
La ligne mise en évidence contient l’avertissement tune.ssl.default-dh-param
.
Pour vérifier le message d’avertissement en utilisant les journaux de HAProxy, vous pouvez rechercher les lignes correspondant à la chaîne tune.ssl.default-dh-param
en utilisant la commande grep
. Exécutez la commande suivante pour vérifier les avertissements:
Notez que si vous avez configuré HAProxy avec un emplacement de journal différent, assurez-vous de substituer votre chemin à la place du fichier mis en évidence /var/log/haproxy.log
.
Si votre serveur génère l’avertissement, alors vous recevrez une sortie comme suit:
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.
Note: Vos fichiers journaux peuvent ne pas inclure le message d’avertissement, mais la commande haproxy -c
générera toujours l’avertissement. Si tel est le cas, il est probable que votre service HAproxy fonctionne depuis suffisamment longtemps pour que le fichier journal ait été roté, donc il ne contient pas l’avertissement.
Vérifier la présence du message à l’aide de la méthode haproxy -c
est le moyen le plus fiable de déterminer si votre serveur est concerné, vous pouvez donc ignorer en toute sécurité les entrées manquantes dans le fichier journal.
Maintenant que vous avez déterminé si votre serveur génère un avertissement tune.ssl.default-dh-param
, vous pouvez passer à l’étape suivante de ce tutoriel, qui explique deux méthodes que vous pouvez utiliser pour résoudre le problème.
Résolution d’un avertissement tune.ssl.default-dh-param
Vous pouvez résoudre un avertissement tune.ssl.default-dh-param
dans HAProxy avec quelques paramètres différents. Une option consiste à définir explicitement la valeur tune.ssl.default-dh-param
sur quelque chose de plus grand que 1024 dans /etc/haproxy/haproxy.cfg
selon le message d’avertissement. Cependant, la documentation de HAProxy recommande de spécifier des paramètres Diffie-Hellman personnalisés car cette approche est plus sécurisée, nous utiliserons donc cette méthode à la place.
Tout d’abord, vous allez générer un fichier dhparams.pem
en utilisant l’utilitaire openssl
. Une fois le fichier créé, vous l’ajouterez à la section de configuration globale de HAProxy afin que tous les blocs frontend
héritent du paramètre.
Pour générer les paramètres DH personnalisés, exécutez ce qui suit:
Vous recevrez une sortie comme celle-ci:
OutputGenerating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..............
Une fois la commande terminée, configurez HAProxy pour utiliser le fichier de paramètres DH personnalisés. Ouvrez /etc/haproxy/haproxy.cfg
dans vi
ou votre éditeur préféré.
sudo vi /etc/haproxy/haproxy.cfg
Trouvez la section dans le fichier comme suit:
Output. . .
# Activer la socket Unix des statistiques
stats socket /var/lib/haproxy/stats
# Utiliser les politiques de crypto au niveau du système
#ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
Ajoutez maintenant une ligne après la ligne ssl-default-server-ciphers PROFILE=SYSTEM
comme ceci:
ssl-dh-param-file /etc/haproxy/dhparams.pem
La section entière devrait ressembler à ce qui suit, y compris la nouvelle ligne ssl-dh-param-file
que vous avez ajoutée:
/etc/haproxy/haproxy.cfg. . .
# Activer la socket Unix des statistiques
stats socket /var/lib/haproxy/stats
# Utiliser les politiques de crypto au niveau du système
#ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM
ssl-dh-param-file /etc/haproxy/dhparams.pem
Lorsque vous avez terminé d’éditer le fichier, enregistrez-le et fermez-le en appuyant sur ESC
, en tapant :wq
, et en appuyant sur ENTER
.
Testez la configuration en utilisant la commande haproxy -c
pour vous assurer que vous avez ajouté le paramètre correct et que HAProxy peut accéder au fichier dhparams.pem
personnalisé:
Vous devriez recevoir une sortie indiquant que la configuration est valide comme suit:
OutputConfiguration file is valid
Si votre configuration est valide, redémarrez HAProxy pour qu’il utilise le nouveau fichier de paramètres Diffie-Hellman :
Vous avez maintenant configuré HAProxy avec un ensemble de paramètres Diffie-Hellman personnalisés de 2048 bits que tous les frontaux pourront utiliser. Vous avez également supprimé les avertissements tune.ssl.default-dh-param
.
Conclusion
Dans ce tutoriel, vous avez appris comment résoudre un message d’avertissement HAProxy Setting tune.ssl.default-dh-param to 1024 by default
. Vous avez exploré quatre méthodes différentes pour examiner la configuration de HAProxy afin de trouver le message. Tout d’abord, vous avez utilisé systemctl
et journalctl
pour examiner l’état du serveur HAProxy et essayer de trouver le message dans les journaux systemd
. Ensuite, vous avez examiné le fichier de configuration HAProxy en utilisant la vérification de configuration intégrée haproxy -c
. Enfin, vous avez vérifié les entrées de journal en utilisant la commande grep
sur le fichier journal de HAProxy.
Après avoir confirmé que votre serveur générait un message d’avertissement Setting tune.ssl.default-dh-param to 1024 by default
, vous avez généré un fichier de paramètres Diffie-Hellman personnalisé et configuré HAProxy pour l’utiliser en définissant la directive de configuration ssl-dh-param-file
.
Maintenant que vous avez cette configuration en place, votre serveur HAProxy utilisera par défaut des paramètres Diffie-Hellman plus sécurisés, et le message d’avertissement tune.ssl.default-dh-param
ne figurera plus dans vos journaux.