NAT hacia host en cliente VPN no funciona
-
Hola
He visto este tema en otros hilos, especialmente en Inglés, pero no lo he visto resuelto y sospecho que puede ser un bug.
Tengo 3 servdores PFSense, 1 en una casa matriz corriendo un servidor OpenVPN y otros 2 en sucursales corriendo clientes OpenVPN conectados site-to-site hacia la matriz en capa 3. Todo funciona perfectamente, los dispositivos de las sucursales navegan a través del gateway de la casa matriz gracias a que agregué esta regla en el firewall:
En el servidor de la casa matriz creé un par de reglas NAT de salida para las sucursales:
El problema surge cuando con reglas NAT en la matriz que desvían el tráfico hacia unos dispositivos en las sucursales:
Estas no funcionan, al parecer permiten correctamente el tráfico de entrada pero el tráfico de regreso no vuelve por el tunel VPN desde las sucursales, pese a que en las sucursales tengo creada la regla que indica que el tráfico debe salir por el gateway de la VPN, misma regla que los obliga a navegar usando ese gateway:
En los losg se ve que el tráfico hacia los dispositivos en las suucrsales pasa sin problemas por el tunel, pero solo de entrada, de regreso no aparece nada.
¿Se me estará pasando algo por alto? ¿Será un bug?
Cualquier ayuda es bien recibida.
-
@evilside
Hola
No sé si te entiendo bien. ¿El NAT que has creado debe ir por dentro de la conexión openvpn site-to-site o debe ir a través de internet (o sea fuera de la openvpn site-to-site)?
Lo pregunto, porque en las capturas de pantalla aparece el adaptador WAN. Yo supongo que WAN es el adaptador de internet. Yo no tengo una conexión openvpn site-to-site en mis instalaciones, pero cuando tengo un servidor openvpn clásico (al que se conectan clientes openvpn de usuarios finales), me aparece un adaptador "openVPN" en las opciones de interface a la hora de hacer los NAT. Quizás puedas probar a hacer los NAT usando ese adaptador en lugar de WAN. -
Gracias por tu respuesta @lucasll
Efectivamente el NAT Forward debe cruzar por los tuneles VPN. Los servidores finales a donde llegan esos NAT salen a Internet por medio de los gateway VPN_VPN4 que se autogeneran cuando se crean los tunes VPN, esto lo hago creando una regla en los PFSense de las sucursales, específicamente en la interfaz en la cual están conectados esos servidores:
Dejo un diagrama con la conexión para que se entienda mejor.
-
@evilside
Hola.¿Llegaste a probar a hacer los NAT con el adaptador "openVPN"?
Otra idea. Según la documentación, se pueden crear adaptadores OPT a partir de adaptadores OpenVPN, permitiendo, según la documentación "... allows the firewall to perform complex NAT ...". Te dejo el enlace por si fuera de ayuda:
https://docs.netgate.com/pfsense/en/latest/vpn/openvpn/assign.html -
@lucasll Ya tenía asignada una interfaz para las conexiones VPN, pero la verdad no sirve de mucho. El tráfico que pasa por ahí va encapsulado en la IP del tunel VPN (Redes 10.0.9.0/30 y 10.0.8.0/30) así que no se saca nada con crear reglas sobre esa interfaz.
El tráfico de entrada llega al servidor pasando por los tuneles (Puedo verlo en los logs), el problema es que el tráfico de regreso sale por la WAN del PFSense remoto en vez de regresar por el gateway de la VPN.
Yo tengo creada una regla en la interfaz donde está conectado el servidor para que todo el tráfico de salida use el gateway de la VPN, pero no funciona cuando el trafico llega inicialmente por la regla NAT desde el PFSense remoto, solo funciona cuando el servidor es quien inicia la conexión.
Estoy averiguando si eso se puede resolver mediante una regla Float, que por lo que he leido puede establecer un control más fino sobre el tráfico en ambas direcciones. Contaré como le va...