pf를 통해 도메인 이름을 기반으로 포트 리디렉션

pf를 통해 도메인 이름을 기반으로 포트 리디렉션

pf 방화벽을 실행하는 머신(machine1)에 공개 IP가 있습니다. LAN의 해당 방화벽 뒤에는 여러 대의 시스템이 있습니다.

LAN의 machine2에는 포트 443에서 실행되는 서비스가 있습니다. 해당 서비스를 LAN(인터넷) 외부에서 사용할 수 있도록 하려면 machine1의 pf를 통해 리디렉션합니다.

rdr on $ext_if proto tcp from any to $ext_addr port 443 -> SOMEIP port 443

이제 LAN에 포트 443에서 서비스가 실행되는 machine3이 있습니다.

machine2.example.com 및 machine3.example.com과 같은 도메인 이름이 둘 다 machine1의 공개 IP를 가리키도록 설정되어 있습니다.

pf를 "도메인 이름 인식"으로 설정하여 443에 서비스가 있는 시스템을 분류하여 라우팅할 수 있는 방법이 있습니까? LAN에 있는 모든 시스템의 포트를 변경하는 것은 선택 사항이 되어서는 안 됩니다.

답변1

OpenBSD의 PF 정규화된 도메인 이름에 대한 문서를 기반으로 지원됩니다.

언급 된 문서 src_addr, dst_addr:

규칙 세트가 로드될 때 DNS를 통해 확인될 정규화된 도메인 이름입니다. 결과로 나오는 모든 IP 주소는 규칙으로 대체됩니다.`

원천:https://www.openbsd.org/faq/pf/filter.html

답변2

iptables가 도메인별로 요청을 필터링할 수 있다고 생각하지 않지만 이는 nginx. pfSense에 설치할 수 있으면 다양한 도메인/IP 구성을 기반으로 다른 서버에 대한 프록시로 설정할 수 있습니다. 필요한 경우 로드 밸런서 역할도 할 수 있으며 방화벽을 구성할 필요가 없습니다.

또는 VM 중 하나에 별도의 nginx 프록시 서버를 설정할 수 있습니다. 그런 다음 방화벽이 80 및 443 포트로의 모든 트래픽을 해당 VM으로 리디렉션하도록 한 다음 nginx를 사용하여 특정 VM에 대한 요청을 프록시합니다. 기존 VM에 설정할 수도 있습니다.

관련 정보