로컬 TCP 릴레이는 자신이 TLS 종단점이 되지 않고도 Monit의 HTTPS 보고서를 SOCKS로 전달할 수 있습니다. 라우팅은 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이 검증을 요청하는 신원이 달라집니다.

릴레이는 loopback으로 다시 매핑된 이름을 조회하는 대신 수집기의 실제 IP를 일부러 사용합니다. 수집기 주소가 바뀌면 그 IP를 갱신하십시오. 리스너는 보고 경로의 일부로 계속 사용 가능하게 두십시오. fork는 수락된 릴레이 연결을 별도로 처리합니다.

관련 글