Направление HTTPS-трафика сборщика Monit через локальный релей SOCKS
Сохраняйте имя хоста сборщика в URL Monit, пока локальный слушатель loopback передаёт TCP-соединение через SOCKS4.
Локальный TCP-релей может передавать HTTPS-отчёты Monit через SOCKS, не становясь сам конечной точкой TLS. Маршрутизация должна сохранять имя сборщика для HTTPS и одновременно сообщать релею его настоящий адрес назначения.
Предположим, сборщик — collector.example по адресу 203.0.113.40:443. В существующей схеме на базе socat релей выглядит так:
socat TCP4-LISTEN:9900,bind=127.0.0.1,reuseaddr,fork \
SOCKS4:socks.example:203.0.113.40:443,socksport=1080Здесь 127.0.0.1:9900 принимает локальное соединение Monit. socks.example:1080 — это сервер SOCKS4, которому поручено подключиться к настоящему адресу сборщика на порту 443. Замените все документационные адреса значениями развёртывания.
Разрешите имя сборщика локально на этот слушатель и сохраните имя в monitrc:
127.0.0.1 collector.example
set mmonit https://monit:[email protected]:9900/collectorПервая строка — запись в файле hosts; вторая — конфигурация Monit. Используйте настоящие учётные данные сборщика с требуемым URL-кодированием. Сопоставление в файле hosts влияет и на другие приложения, использующие это имя на машине.
Рукопожатие HTTPS по-прежнему принадлежит сборщику, поэтому сохраните его имя хоста и предусмотренную политику проверки сертификата. Если изменить URL на localhost, изменится идентичность, которую Monit просит проверить.
Релей намеренно использует настоящий IP сборщика, а не ищет имя, переназначенное на loopback. Обновляйте этот IP при изменении адреса сборщика. Держите слушатель доступным как часть пути отчётов; fork даёт принятым соединениям релея отдельную обработку.