Estou tentando conseguir algo fácil, mas aparentemente estou faltando alguma coisa.
Na minha caixa, tenho um cliente VPN em execução que criou uma tun0
interface. A caixa tem tráfego externo vindo do eth0
.
Eu gostaria de encaminhar o tráfego de eth0
para tun0
. Eu executo os seguintes comandos:
iptables -A FORWARD -i eth0 -o tun0 -s 192.168.100.0/28 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -o tun0 -j MASQUERADE
Observe que seleciono o intervalo de IPs de origem porque desejo encaminhar apenas um determinado intervalo.
Executando tcpdump
na eth0
interface, posso ver o tráfego vindo de uma máquina no intervalo, 192.168.100.0/28
mas não consigo ver o tráfego entrando tun0
.
O encaminhamento de IP está naturalmente ativado.
Não tenho certeza do que realmente estou perdendo aqui.
Configuração IP de eth0
is 192.168.10.93/24
while tun0
is10.8.8.15/24
➜ ~ ip r
default via 192.168.10.1 dev eth0 metric 100
10.8.8.0/24 dev tun0 scope link src 10.8.8.15
172.17.0.0/16 dev docker0 scope link src 172.17.0.1
172.30.32.0/23 dev hassio scope link src 172.30.32.1
192.168.10.0/24 dev eth0 scope link src 192.168.10.93 metric 100
Responder1
Como no final das contas isso pode significar a 192.168.100.0/28
saída do tráfego, tun0
isso pode ser resolvido com algo como:
ip rule add from 192.168.100.0/28 lookup 10000
ip route add default via ${tun0gwip} table 10000
Mantenha também o iptables MASQUERADE que é necessário, a menos que o tun0 gw possa rotear de volta para sua outra rede.
Responder2
Esta é a combinação exata de comandos que resolveu o problema:
Crie uma nova tabela de rotas chamada vpn
em
➜ ~ cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 vpn
e então execute:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o tun0 -s 192.168.100.0/28 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip route add default dev tun0 table vpn
ip route add 192.168.100.0/28 dev eth0 table vpn
ip rule add from 192.168.100.0/28 table vpn