Encaminhar determinado cliente através do túnel OpenVPN

0

Tenho o cliente openvpn em execução na minha caixa centos que uso como roteador para minha rede interna. Eu tenho duas interfaces para alcançar o mundo exterior.

eth0 - normal internet 
tun0 - openvpn tunnel 

Eu desabilito a opção auto route do opevpn, colocando a opção "route-noexec" e eu cuido de todas as rotas manualmente agora. depois de subir o túnel openvpn minha tabela de roteamento é assim.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.80.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.44.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 dummy0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.44.1    0.0.0.0         UG    0      0        0 eth0

Agora tenho host interno que conectou a interface 192.168.80.0 na minha caixa de centos

192.168.80.50

Eu preciso rotear todo o tráfego desse usuário pela interface tun0 e todo o outro tráfego por meio da eth0

Eu tentei adicionar regras POSTROUTING assim

iptables -t nat -A POSTROUTING -s 192.168.80.50 -o tun0 -j MASQUERADE
iptables -t nat -A POSTROUTING  -o eth0 -j MASQUERADE

mas todos os clientes passam apenas pela eth0, incluindo 192.168.80.50. como posso conseguir isso?

    
por gripen fighter 23.04.2018 / 11:21

3 respostas

0

Com base em esta resposta no SuperUser :

crie uma tabela de roteamento para alguns IPs:

ip rule add from <sourceIP>/<mask> table <name>

Em seguida, declare uma nova rota para corresponder à tabela de roteamento <name> :

ip route add default via <router> dev tun0 table <name> 

seria mais fácil ter uma sub-rede para as pessoas que precisassem usar a VPN, pois com essa configuração você precisa especificar todo o IP na tabela <name>

    
por 23.04.2018 / 13:21
0

Se você quiser colocar todo o tráfego para clientes VPN selecionados através do túnel VPN, você deve configurar isso "no lado do cliente" - nesta configuração de usuário. No arquivo de configuração do cliente, é a opção: "redirect-gateway autolocal". No servidor VPN, você provavelmente precisa configurar SNAT ou MASQUERADE para esses IPs de clientes VPN.

    
por 23.04.2018 / 11:40
0

Dê uma olhada no 'roteamento de origem do iptables' e neste post: link

Você pode criar uma tabela de roteamento específica para os clientes VPN com um gateway específico (no seu caso, esse seria o terminal de sua conexão VPN) e simplesmente adicionar uma regra iptables apontando para essa tabela de roteamento.

Espero que isso ajude.

    
por 23.04.2018 / 15:17