
Estou executando um servidor openvpn no meu VPS com um IP público. Existe um servidor backend conectado à VPN. Estes são os IPs na VPN: VPS: 10.8.0.1 servidor backend: 10.8.0.2. eth0 é a interface pública, tun0 é a interface VPN
Agora, gostaria de encaminhar, por exemplo, a porta 22 do servidor backend para a porta 2200 do VPS. Aqui está o que fiz no VPS (baseado em vários tutoriais e perguntas já feitas):
- porta aberta 2200
- encaminhamento IPv4 habilitado
coloque isso em /etc/ufw/before.rules (sim, estou usando o ufw e funciona corretamente):
*nat
:PRÉ-ROTE ACEITAR [0:0]
:POSTROUTING ACEITAR [0:0]
-A PRÉ-ROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 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 MASQUERADE
Recarreguei o ufw ou até reiniciei tudo...
Tentei outras soluções, comentando algumas linhas (como a primeira regra POSTROUTING acima). Nada -obviamente- ajudou.
A saída de nmap VPS-public-IP -p 2200
diz que a porta está 'filtrada' e quando tento fazer ssh para a porta 2200, ela simplesmente trava e não faz nada, nem recebo nenhum erro - isso também acontece quando tento fazer ssh do VPS para o servidor backend pela VPN (que normalmente funciona). o que estou perdendo?
Responder1
Para pessoas que ainda podem estar procurando uma solução.
Dependendo da sua política FORWARD (assumindo seu 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
Também pode adicionar esta regra para conexões 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