Спрямування 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 дає прийнятим з'єднанням релея окрему обробку.