Redirecionamento IP (eth0) Publico para Host conectado em VPN (tun0) não funciona. [RESOLVIDO]

1. Redirecionamento IP (eth0) Publico para Host conectado em VPN (tun0) não funciona. [RESOLVIDO]

EVERTON SILVA
tomrc

(usa Debian)

Enviado em 21/03/2020 - 12:46h

Como é meu primeiro tópico gostaria de me apresentar:
Pessoal, boa tarde. Sempre utilizo o vivaolinux para esclarecer e me ajudar no dia a dia, sou entusiasta do sistema Linux, tanto profissionalmente quanto para uso "domestico". Apesar de ter graduação/pós em Sistemas de Informação todo meu conhecimento em Linux é auto didata.
Agradeço muito ao Viva o Linux que tem me ajudado nessa caminhada. Obrigado.

Tenho tido problemas para criar um redirecionamento de portas, o que preciso é que a porta 3389 por exemplo, seja redirecionada a uma maquina conectada por OpenVPN (não sei se isso é possível). Meu servidor é uma maquina hospedada na DigitalOcean, verifiquei e não possui bloqueio de firewall.

Vou colocar neste exemplo um IP válido na eth0 68.183.26.221 e minha rede VPN tun0 192.168.254.1 , meu GW está conforme abaixo:

root@debian-s-1vcpu-1gb-nyc1-01:/etc/openvpn# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 68.183.16.1 0.0.0.0 UG 0 0 0 eth0
10.10.0.0 * 255.255.0.0 U 0 0 0 eth0
10.136.0.0 * 255.255.0.0 U 0 0 0 eth1
68.183.16.0 * 255.255.240.0 U 0 0 0 eth0
192.168.254.0 192.168.254.2 255.255.255.0 UG 0 0 0 tun0
192.168.254.2 * 255.255.255.255 UH 0 0 0 tun0


Montei uma tabela básica de redirecionamento conforme abaixo:

#!/bin/bash
# Flushing all rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X


iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp --dport 3300 -j DNAT --to-destination 68.183.26.221:3389 #Este redirecionamento funciona bem.
iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp --dport 3389 -j DNAT --to-destination 192.168.254.10:3389 #Este não funciona :(

iptables -I INPUT 1 -p tcp --match multiport --port 3300,3389 -j ACCEPT
iptables -I INPUT 2 -p udp --match multiport --port 3300,3389 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --match multiport --port 3300,3389 -j ACCEPT
iptables -I OUTPUT 2 -p udp --match multiport --port 3300,3389 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/conf/eth0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/tun0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/tun0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/forwarding


Caso alguém tenha passado por esta dificuldade, ou que já tenha realizado esse tipo de redirecionamento e puder ajudar fico grato.
Se precisarem de mais informações só falar.

Mais uma vez, obrigado. Abraços.
Tom


  


2. MELHOR RESPOSTA

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 26/03/2020 - 12:04h

Boa tarde.
Perfeito, ficou bacana o esboço, não esquece de fechar o post!
Se possível marcar como melhor resposta, isso ajuda outros na busca por informações semelhantes e tbm meu trb de consultoria fora do VOL!
Abs.

tomrc escreveu:

Prezado Carlos, obrigado pela resposta.

Fiz um esboço para explicar melhor o que eu precisava (consegui resolver): https://ibb.co/R25Gg9G
No fim as configurações do servidor OpenVPN e o cliente estavam configurados corretamente, assim como o gw, era uma regra no iptable que estava faltando.

Ficou assim:

#!/bin/bash
# Flushing all rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp --dport 3389 -j DNAT --to-destination 192.168.254.10:3389

iptables -I INPUT 1 -p tcp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I INPUT 2 -p udp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I OUTPUT 2 -p udp --match multiport --port 80,8080,3389 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/conf/eth0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/eth1/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth1/forwarding
echo "1" > /proc/sys/net/ipv4/conf/tun0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/tun0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/forwarding

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save

Estava faltando esta linha:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 

Havia feito tantos testes, indas e vindas, que não me atentei ao MASQUERADE...
Obrigado, abraços.





Network Analyst - Consultor para empresas
contact skype: carlossouzainfo
Grupo Facebook: https://www.facebook.com/groups/539635016678374/
21 99180-8165 (WhattsApp)

3. Re: Redirecionamento IP (eth0) Publico para Host conectado em VPN (tun0) não funciona. [RESOLVIDO]

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 23/03/2020 - 15:31h

Boa tarde.
Bom de forma geral sua explicação tá bem confusa.
Seria isso: Você tem um servidor fora da sua infra local e vc precisa acessar esse servidor para alguma aplicação remota tipo RDP (3389)
Você se conecta a este servidor via VPN ao que entendi.

01 - Outros serviços neste mesmo servidor funcionam via VPN?
02 - Já tentou um Telnet pra saber se o serviço esta respondendo?
03 - Como entendi que vc administra esse servidor recomendo remover todas as regras de firewall, claro com exceção da regra de NAT para checar


Aguardo,

Network Analyst - Consultor para empresas
contact skype: carlossouzainfo
Grupo Facebook: https://www.facebook.com/groups/539635016678374/
21 99180-8165 (WhattsApp)


4. Re: Redirecionamento IP (eth0) Publico para Host conectado em VPN (tun0) não funciona.

EVERTON SILVA
tomrc

(usa Debian)

Enviado em 25/03/2020 - 22:01h

Prezado Carlos, obrigado pela resposta.

Fiz um esboço para explicar melhor o que eu precisava (consegui resolver): https://ibb.co/fXxvPgk
No fim as configurações do servidor OpenVPN e o cliente estavam configurados corretamente, assim como o gw, era uma regra no iptable que estava faltando.

Ficou assim:

#!/bin/bash
# Flushing all rules
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp --dport 3389 -j DNAT --to-destination 192.168.254.10:3389

iptables -I INPUT 1 -p tcp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I INPUT 2 -p udp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --match multiport --port 80,8080,3389 -j ACCEPT
iptables -I OUTPUT 2 -p udp --match multiport --port 80,8080,3389 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/conf/eth0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/eth1/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/eth1/forwarding
echo "1" > /proc/sys/net/ipv4/conf/tun0/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/tun0/forwarding
echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/forwarding

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables-save

Estava faltando esta linha:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 

Havia feito tantos testes, indas e vindas, que não me atentei ao MASQUERADE...
Obrigado, abraços.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts