Redirección de puertos según el nombre de dominio a través de pf

Redirección de puertos según el nombre de dominio a través de pf

Tenemos una IP pública en una máquina (máquina1) que ejecuta pf firewall. Tenemos varias máquinas detrás de ese firewall en una LAN.

En la máquina2 de la LAN tenemos un servicio ejecutándose en el puerto 443. Para que ese servicio esté disponible fuera de la LAN (Internet), redirigimos a través de pf en la máquina1.

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

Ahora tengo una máquina3 en la LAN que también tiene un servicio ejecutándose en el puerto 443.

Tenemos nombres de dominio configurados como machine2.example.com y machine3.example.com, ambos apuntando a la IP pública en una máquina1.

¿Hay alguna manera de hacer que pf sea "conocedor del nombre de dominio" para determinar a qué máquina con servicio en 443 enrutar? Cambiar los puertos en cualquier máquina de la LAN no debería ser una opción.

Respuesta1

Según la documentación de PF de OpenBSD, se admiten nombres de dominio completos.

La documentación para src_addr, dst_addrmenciona esto:

Un nombre de dominio completo que se resolverá mediante DNS cuando se cargue el conjunto de reglas. Todas las direcciones IP resultantes se sustituirán en la regla.

Fuente:https://www.openbsd.org/faq/pf/filter.html

Respuesta2

Si bien no creo que iptables pueda filtrar solicitudes por dominio, parece un trabajo perfecto para nginx. Si puede instalarlo en pfSense, puede configurarlo como proxy para otros servidores según varias configuraciones de dominio/IP. Incluso puede actuar como equilibrador de carga si es necesario y no necesitará configurar su firewall.

Alternativamente, puede configurar un servidor proxy nginx separado en una de las máquinas virtuales. Luego, su firewall redirigirá todo el tráfico a los puertos 80 y 443 de esa máquina virtual, que luego usará nginx para enviar solicitudes a máquinas virtuales específicas. También se puede configurar en cualquiera de las máquinas virtuales existentes.

información relacionada