암호화된 트래픽을 사용하는 HAproxy의 Snort IDS

암호화된 트래픽을 사용하는 HAproxy의 Snort IDS

HAproxy를 사용하면 풀의 다른 모든 백엔드 서버에서 백엔드 서버로 트래픽을 전달할 수 있나요? 네트워킹 관점에서 이는 검사를 위해 스위치의 모든 포트를 하나의 포트로 미러링하는 것과 비슷합니다. 이렇게 하면 암호화되지 않은 모든 트래픽을 루프백 주소로 전달하고 SNORT로 검사할 수 있습니다.

현재 우리는 모든 트래픽을 HAproxy 노드로 암호화하고 암호화된 해당 트래픽을 웹 서버로 보냅니다. 대역외 IDS가 있지만 트래픽을 해독하는 인증서만 있으므로 haproxy에서는 완벽한 순방향 비밀성 또는 diffie-helman 암호를 구현할 수 없습니다.

F5로 이 작업을 수행할 수 있는 가이드를 읽었지만 이는 우리에게는 선택 사항이 아닙니다.

제공할 수 있는 통찰력에 감사드립니다.

답변1

HAProxy는 자체적으로 이를 수행할 수 없지만 상당히 간단한 선언 세트를 사용한 경우 frontend/listen다음을 사용할 수 있습니다.iptables TEE (참조여기사용법) 상당히 간단해야 합니다.

서버의 "공용" IP가 10.10.10.10이고, 백엔드가 192.168.1.11 및 192.168.1.12이고, IDS가 172.16.172.10인 시스템의 경우 HAProxy 구성은 다음과 같습니다.

listen IN
  mode tcp
  bind 10.10.10.10:443
  <other HAProxy options/directives here>
  server hap-intermediary 127.1.1.1:443

frontend INTERMEDIARY
   mode http
   bind 127.1.1.1:443 ssl crt /path/to/cert.pem
  <other HAProxy options/directives here>
  <backend selection logic, if needed>

  default_backend SERVERS

backend SERVERS
  <other HAProxy options/directives here>
  server server1 192.168.1.11:443 check check-ssl ssl
  server server2 192.168.1.12:443 check check-ssl ssl

이는 기본적으로 모든 트래픽을 서버에 입력된 형태로 IN전달한 다음 요청을 해독하고 원하는 대로 선택합니다.INTERMEDIARYINTERMEDIARY

iptables그런 다음 다음과 같은 규칙을 설정해야 합니다 .

iptables -t mangle -A PREROUTING -d 127.1.1.1 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 127.1.1.1 -j TEE --gateway 172.16.172.10

물론 이는 모든 경로와 네트워크가 설정되어 있다고 가정하지만 제대로 작동해야 합니다.

모든 HAProxy 관련 작업을 없애고 iptables백엔드 호스트와 TEE해당 트래픽을 IDS와 일치시키기 위한 몇 가지 규칙을 설정할 수 있을 것 같습니다.

# Server 1
iptables -t mangle -A PREROUTING -d 192.168.1.11 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.11 -j TEE --gateway 172.16.172.10
# Server 2
iptables -t mangle -A PREROUTING -d 192.168.1.12 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.12 -j TEE --gateway 172.16.172.10

관련 정보