Corrigindo rota e iptables para uma interface OpenVPN tun0, com roteamento selecionado e seguro

Corrigindo rota e iptables para uma interface OpenVPN tun0, com roteamento selecionado e seguro

Configurei meu roteador para usar VPNs de terceiros para segurança máxima. Como os ISPs que estou usando bloquearam todos os protocolos VPN conhecidos, incluindo os protocolos OpenVPN, sou forçado a configurar meu roteador para usar o proxy http, para que o OpenVPN possa ocultar sua impressão digital do firewall censurador do ISP.

Dito isso, eu uso uma VPN comercial de terceiros e seus arquivos de configuração tcp do OpenVPN
para disponibilizar a Internet irrestrita para meus dispositivos conectados.

Como o cliente OpenVPN precisa do proxy http para se conectar ao seu servidor, primeiro configurei o proxy http no meu roteador e depois conectei o cliente OpenVPN à Internet.

Observe que tanto o proxy http quanto o cliente OpenVPN são executados em ummesmoRoteador OpenWRT,nãodispositivos separados!

Dito isto, uma vez que muitos dos provedores comerciais de VPN em seus servidores OpenVPN enviam suas configurações de rota e gateway em seus clientes depois que o cliente estabelece a conexão, portanto, todas as interfaces LAN do cliente, incluindo o processador do roteador, são forçadas a usar o tráfego de Internet redirecionado do cliente e como resultado, o processo de proxy em execução no roteador que deveria obter sua internet diretamente da wan é forçado a usar a interface tun0 internet e após alguns segundos ele falha e como consequência o cliente openvpn falha muito pouco depois.

Para evitar o problema acima mencionado, adicioneisem puxarcomando para ocliente.ovpnarquivo.

Observe que, como estou usando VPNs comerciaisNão tenho acesso aos servidores OpenVPN deles! e meu roteador usaiptables(fw3)e não o nftables(fw4) então o arquivo client.ovpn tem a seguinte aparência,

`cliente dev tun0 proto tcp remoto XX.YY.ZZ.RR 443 nobind auth-user-pass cred.txt

persist-tun
......
http-proxy 192.168.55.1 1080 auto
http-proxy-retry
route-nopull

`

A configuração acima se conecta ao servidor OpenVPN (servidor comercial) perfeitamente e cria uma interface tun0 em meu dispositivo roteador OpenWRT.

Posso rastrear um site por meio do dispositivo tun0 sem problemas,

#traceroute -i tun0 www.yahoo.com
traceroute to www.yahoo.com (87.248.119.251), 30 hops max, 46 byte packets
 1  *  10.124.148.1 (10.124.148.1)  1357.499 ms  195.523 ms
 2  vlan112.as02.stk1.se.m247.ro (146.70.16.241)  199.262 ms  190.672 ms  *

Dito isto, como não extraio nenhuma configuração de rota e firewall do servidor OpenVPN, devo criar minhas próprias regras de rota e iptables assim que esta interface tun0 for criada.

Mas antes de explicar mais, devo mencionar que o endereço IP local do meu roteador é 192.168.55.1 e os dispositivos br-lan (lan bridge) estão obtendo seu endereço IP de um endereço de pool DHCP 192.168.55.65-192.168.55.126 ou melhor, (255.255). .255.192/26).

Minha intenção e objetivo é configurar o roteador para fazer o seguinte,

[a] todos os dispositivos da br-lan (intervalo 192.168.55.65-192.168.55.126)exceto o próprio roteador 192.168.55.1deve obter todo o tráfego da Internet, incluindo ssh, dns, icmp, tcp, udp... do dispositivo tun0.

[b] Por razões de segurança, se não houver interface tun0 ou nenhuma resposta da interface tun0, todo o tráfego de Internet dos dispositivos br-lan (intervalo 192.168.55.65-192.168.55.126), exceto o roteador, deverá ser bloqueado da Internet, que se traduz em todos os dispositivos mencionados, só deve ter acesso à Internet se o tun0 estiver ativo e respondendo,não há outras alternativas, como rotas ponderadas, caminhos alternativossão aceitos.

[c] Todos os dispositivos br-lanIncluindoo roteador, impressoras, PCs, NAS, .. devem ser capazes de encontrar e comunicar-se entre si na mesma sub-rede, sem restrições.

Eu sei que existem alguns comandos OpenVPN que posso inserir no arquivo de configuração client.ovpn para tornar possíveis algumas rotas, como,

filtro pull ignorar "gateway de redirecionamento"ourota 192.168.55.64 255.255.255.192 mas os comandos acima me travaram algumas vezes e não consegui acessar a página do roteador, além disso, nenhum deles funcionou como esperado.

Além disso, executei manualmente o seguinte script após a criação do tun0, mas ele não permitiu que o tráfego da Internet passasse pelo tun0 em dispositivos br-lan.

Criei a tabela ovpn no seguinte arquivo

/etc/iproute2/rt_tables
#reserved values
#
128     prelocal
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
1       ovpn

e

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

iptables -A FORWARD -i br-lan -o tun0 -s 192.168.55.64/26 -j ACCEPT
iptables -A FORWARD -i tun0 -o br-lan -j ACCEPT

iptables -A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

ip route add default dev tun0 table ovpn
ip route add 192.168.55.64/26 dev br-lan table ovpn

ip rule add from 192.168.55.64/26 table ovpn

Pesquisei muito no Google para encontrar uma solução, mas tenho certeza que deveria tratar o tun0 como uma interface semi-wan simples.

Aqui está minha tabela de rotas simples, sem roteamento manual extra,

#route -n  
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG    0      0        0 phy1-sta0
10.124.148.0    0.0.0.0         255.255.254.0   U     0      0        0 tun0
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 phy1-sta0
192.168.55.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan

e mais

#ip route show
default via 192.168.8.1 dev phy1-sta0 proto static src 192.168.8.118
10.124.148.0/23 dev tun0 proto kernel scope link src 10.124.148.113
192.168.8.0/24 dev phy1-sta0 proto kernel scope link src 192.168.8.118
192.168.55.0/24 dev br-lan proto kernel scope link src 192.168.55.1

Eu apreciaria qualquer dica ou solução para o objetivo mencionado, sou novato em roteamento e iptables.

Aliás não sei fazer as configurações necessárias comoif_tun0_up.sheif_tun0_down.shautomatizado para criar e limpar as rotas automaticamente no arquivo client.ovpn.

Ser capaz de fazer umgama de dispositivos LAN(br-lan)exceto o roteadorpara receber o tráfego da Internet do provedor VPN.

Protegendo e bloqueandoimpedir que os usuários da LAN acesseminseguroInternet. Automatizandoa tarefa de criar e excluir oregras de rotas e iptablescom aberturaefechandoa interface tun0.

Responder1

Não é uma resposta completa, mas pode levá-lo na direção. No client.ovpn eu especificaria qual rede você deseja passar pela VPN, com a seguinte instrução no client.ovpn. Primeiro exemplo:

route 10.0.0.0 255.255.255.0 vpn_gateway

Como você está usando um provedor comercial, os dispositivos tun0 obtêm um endereço IP de seu pool, então eu não recomendaria tornar os dispositivos LAN acessíveis. Na maioria das vezes é um ip firewallado, sem portas abertas para os serviços que você deseja. É um cliente VPN. Se você deseja tornar sua LAN acessível por meio de uma VPN, você precisa de uma VPN site a site com seu próprio servidor VPN.

informação relacionada