Por roteamento de usuários em wifi

2

Eu estou usando vpn, mas eu quero ter um usuário que possa acessar a rede não através da VPN, mas usando o meu endereço IP real.

O problema é que todas as soluções encontradas pelo google'ing rápido, por exemplo, este link exige ter alguma rota configurada manualmente, marcar o tráfego usando o iptables e depois rotea-lo.

Mas como fazer o processo por usuário / roteamento quando estou em wi-fi? Eu tenho algumas rotas pré-configuradas porque eu posso ir a algum lugar e me conectar a outra rede wifi com gateway diferente. Eu realmente não quero mexer com terminal toda vez que eu conectar a outra rede usando gui. Escrever um script que analise a rota adicionada pelo networkmanager e reconfigure as rotas também não parece ser a maneira correta de fazê-lo.

Então, qual é a melhor maneira de ter um usuário acessando a interface especificada (wlan0), independentemente das configurações do gateway de roteamento da interface, e todos os outros usuários acessando outra interface (tun da vpn)?

    
por user1940679 29.08.2015 / 22:37

1 resposta

0

Fiz isso usando uma idéia oposta - roteando todos, exceto o usuário "direto", para a vpn ao invés de rotear o usuário direto para a interface wlan. Porque os ips de rede vpn são estáticos

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done
echo 1 > /proc/sys/net/ipv4/route/flush

iptables -t mangle -A OUTPUT -m owner ! --uid-owner direct2net -j MARK --set-mark 42
iptables -t mangle -A OUTPUT -d (vpn ip) -j MARK --set-mark 0

iptables -t nat -A POSTROUTING -m mark --mark 42 -j SNAT --to-source (local ip in vpn's network)

ip rule add fwmark 42 table 42
ip route add default via (vpn network gateway) dev tun0 table 42
    
por 30.08.2015 / 21:48