Port forward da LAN para um cliente OpenVPN (iptables?)

2

Eu tenho um servidor OpenVPN em execução em uma rede local (endereçável localmente em 192.168.1.12) e gostaria de encaminhar solicitações para ele de outros dispositivos na rede local, sobre apenas a porta 3000, para um dos clientes VPN. (10.8.0.6)

Meu resultado final é que os dispositivos 192.168.x.x consigam acessar um servidor da web digitando 192.168.1.12:3000 em um navegador, mas realmente se comunicando com 10.8.0.6:3000.

O encaminhamento de ip está habilitado no servidor vpn.

(estas tentativas modificadas de outras perguntas parecem não funcionar)

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3000 -j DNAT --to-destination 10.8.0.6:3000
iptables -A FORWARD -p tcp -d 10.8.0.6 --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    
por Joe 25.06.2016 / 17:53

3 respostas

0

Acontece que ... nada estava errado com minha regra inicial do iptables. Embora apenas o primeiro fosse necessário!

    
por 25.06.2016 / 23:49
0

Algo similar pode ser alcançado adicionando uma "rota estática" aos seus computadores na LAN, informando-os onde eles podem encontrar os clientes VPN.

Clientes da LAN

Por exemplo, você pode adicionar uma rota a uma máquina Linux em sua LAN como esta:

(sudo) ip route add 10.8.0.0/24 via 192.168.1.12

No Windows, o mesmo pode ser alcançado assim:

route add 10.8.0.0 mask 255.255.255.0 192.168.1.12

(Se estiver usando o Windows, considere o uso da opção -p com route para tornar a rota persistente.

OpenVPN Server

Obviamente, seus clientes VPN também precisam saber sobre sua LAN, o que pode ser feito adicionando isso ao seu servidor OpenVPN.conf:

push "route 192.168.1.0 255.255.255.0"

(supondo que a máscara de rede da sua LAN seja / 24)

Agora, se você fez todos os itens acima, basta acessar o servidor da Web mencionado da seguinte forma: link

    
por 25.06.2016 / 20:16
0

Você pode fazer o mesmo sem qualquer regra de iptables envolvida usando o tunelamento SSH. Execute o seguinte comando no seu servidor OpenVPN:

$ ssh -L 3000:10.8.0.6:3000 root@localhost &

Depois disso, se você abrir o link e ele será encaminhado para o 10.8.0.6:3000

A conexão SSH real será executada em segundo plano e você precisará executar o comando novamente após reinicializar o servidor ou, ocasionalmente, descartar a conexão.

Dê uma olhada aqui para mais exemplos de tunelamento SSH, pode ser extremamente útil em casos como esse.

    
por 30.06.2016 / 15:03