
Estoy ejecutando un servidor openvpn en mi VPS con una IP pública. Hay un servidor backend conectado a la VPN. Estas son las IP de la VPN: VPS: 10.8.0.1 servidor backend: 10.8.0.2. eth0 es la interfaz pública, tun0 es la interfaz VPN
Ahora, me gustaría reenviar, por ejemplo, el puerto 22 del servidor backend al puerto 2200 del VPS. Esto es lo que hice en el VPS (basado en varios tutoriales y preguntas ya formuladas):
- puerto abierto 2200
- habilitado el reenvío IPv4
pon esto en /etc/ufw/before.rules (sí, estoy usando ufw y funciona correctamente):
*nat
:PRERUTAMIENTO ACEPTAR [0:0]
:POSTOUTING ACEPTAR [0:0]
-A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destino 10.8.0.2:22
-A POSTROUTING -d 10.8.0.2 -p tcp --dport 22 -j SNAT --to-source VPS-public-IP:2200
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASCARADA
Recargué ufw o incluso reinicié todo...
Probé otras soluciones, comentando algunas líneas (como la primera regla POSTROUTING anterior). Nada -obviamente- ayudó.
El resultado de nmap VPS-public-IP -p 2200
dice que el puerto está 'filtrado' y cuando intento realizar ssh al puerto 2200, simplemente se cuelga y no hace nada, ni siquiera aparece ningún error; eso también sucede cuando intento realizar ssh desde el VPS al servidor backend. a través de la VPN (que normalmente funciona). ¿Qué me estoy perdiendo?
Respuesta1
Para personas que aún podrían estar buscando una solución.
Dependiendo de su póliza FORWARD (asumiendo su DROP)
iptables -t nat -A PREROUTING -p tcp -d xx.xx.xxx.xxx --dport 80
-j DNAT --to-destination yyy.yyy.yy.yy:80
iptables -A FORWARD -p tcp -d yyy.yyy.yy.yy --dport 80 -j ACCEPT
Result: x:80 --> X --y:80--> Y
iptables -t nat -A POSTROUTING -p tcp -d yyy.yyy.yy.yy --dport 80
-j SNAT --to-source xx.xx.xxx.xxx
Result: x:80 --> X <--y:80--> Y
iptables -A FORWARD -p tcp -s yyy.yyy.yy.yy --sport 80 -j ACCEPT
Result: x:80 <--> X <--y:80--> Y
También podría agregar esta regla para conexiones iniciadas localmente: x --> x:80
iptables -t nat -A OUTPUT -p tcp --dport 80 -d xx.xx.xxx.xxx
-j DNAT --to-destination yyy.yyy.yy.yy:80
Result:
x:80 ->- X <--y:80--> Y
|_____V