
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 주소는 규칙으로 대체됩니다.`
답변2
iptables가 도메인별로 요청을 필터링할 수 있다고 생각하지 않지만 이는 nginx
. pfSense에 설치할 수 있으면 다양한 도메인/IP 구성을 기반으로 다른 서버에 대한 프록시로 설정할 수 있습니다. 필요한 경우 로드 밸런서 역할도 할 수 있으며 방화벽을 구성할 필요가 없습니다.
또는 VM 중 하나에 별도의 nginx 프록시 서버를 설정할 수 있습니다. 그런 다음 방화벽이 80 및 443 포트로의 모든 트래픽을 해당 VM으로 리디렉션하도록 한 다음 nginx를 사용하여 특정 VM에 대한 요청을 프록시합니다. 기존 VM에 설정할 수도 있습니다.