Acheminer le trafic HTTPS du collecteur Monit via un relais SOCKS local
Conservez le nom d'hôte du collecteur dans l'URL de Monit pendant qu'un écouteur loopback fait passer la connexion TCP par SOCKS4.
Un relais TCP local peut transporter les rapports HTTPS de Monit via SOCKS sans devenir lui-même le point de terminaison TLS. Le routage doit préserver le nom du collecteur pour HTTPS tout en donnant au relais sa véritable adresse de destination.
Supposons que le collecteur soit collector.example à l'adresse 203.0.113.40:443. Dans un montage existant basé sur socat, le relais a cette forme :
socat TCP4-LISTEN:9900,bind=127.0.0.1,reuseaddr,fork \
SOCKS4:socks.example:203.0.113.40:443,socksport=1080Ici, 127.0.0.1:9900 accepte la connexion locale de Monit. socks.example:1080 est le serveur SOCKS4, auquel il est demandé de se connecter à la véritable adresse du collecteur sur le port 443. Remplacez toutes les adresses de documentation par les valeurs du déploiement.
Résolvez localement le nom du collecteur vers cet écouteur, et conservez le nom dans monitrc :
127.0.0.1 collector.example
set mmonit https://monit:[email protected]:9900/collectorLa première ligne est une entrée du fichier hosts ; la seconde est la configuration de Monit. Utilisez les véritables identifiants du collecteur avec l'encodage URL requis. Un mappage dans le fichier hosts affecte aussi les autres applications qui utilisent ce nom sur la machine.
La poignée de main HTTPS appartient toujours au collecteur, donc conservez son nom d'hôte et la politique de vérification du certificat prévue. Remplacer l'URL par localhost change l'identité que Monit demande de vérifier.
Le relais utilise délibérément l'IP réelle du collecteur plutôt que de résoudre le nom remappé vers loopback. Mettez à jour cette IP lorsque l'adresse du collecteur change. Gardez l'écouteur disponible dans le chemin des rapports ; fork donne un traitement distinct aux connexions de relais acceptées.