Bypass de VPN para serviços específicos

0

Seguindo este exemplo :

sudo sysctl -w net.ipv4.conf.eth0.rp_filter=0
sudo sysctl -w net.ipv4.conf.tun0.rp_filter=0
sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.default.rp_filter=0
sudo sysctl -w net.ipv4.conf.lo.rp_filter=0 

sudo sysctl -w net.ipv4.conf.all.forwarding=1
sudo sysctl -w net.ipv4.conf.default.forwarding=1
sudo sysctl -w net.ipv4.conf.eth0.forwarding=1
sudo sysctl -w net.ipv4.conf.lo.forwarding=1
sudo sysctl -w net.ipv4.conf.tun0.forwarding=1

sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo sysctl -w net.ipv6.conf.default.forwarding=1
sudo sysctl -w net.ipv6.conf.eth0.forwarding=1
sudo sysctl -w net.ipv6.conf.lo.forwarding=1
sudo sysctl -w net.ipv6.conf.tun0.forwarding=1

sudo sysctl -w net.ipv4.tcp_fwmark_accept=1

iptables -F
iptables -t mangle -F
iptables -t nat -F

ip route flush table 101
ip route flush cache

ip rule del fwmark 2 table 101
ip rule add fwmark 2 table 101

ip route add table 101 default via 192.168.0.1 dev eth0
ip route add table 101 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.102

iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2

No entanto, quando inicio o OpenVPN e, em seguida, inicio sessão no meu servidor com o ssh e, em seguida, executo last , vejo o IP do meu serviço VPN, não o meu IP externo.

O que estou perdendo?

SO: Ubuntu 16.10

    
por Vlad 22.01.2017 / 23:42

1 resposta

1

Respondendo minha própria pergunta:

iptables -F
iptables -t mangle -F
iptables -t nat -F

echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 2 > /proc/sys/net/ipv4/conf/tun0/rp_filter
ip route flush table 101
ip rule add fwmark 2 table 101
ip route add default via 192.168.0.1 table 101
ip route flush cache

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t mangle -A OUTPUT -p tcp --dport 22    -j MARK --set-mark 2

Resumidamente, ip route flush cache deve ir logo após o último comando ip route add e, para o iptables, OUTPUT chain deve ser usado em vez de PREROUTING .

    
por 24.01.2017 / 05:19