Suas interfaces de entrada e saída estão invertidas no comando iptables.
Eles devem ser:
sudo iptables -A FORWARD --in-interface enp5s0 --out-interface tun0 -j ACCEPT
e:
sudo iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE
Estou tentando encaminhar o tráfego de uma interface física enp5s0 para um virtual tun0 . O objetivo é fazer com que tun0 receba essencialmente todos os pacotes de enp5s0 .
Primeiro, habilito o encaminhamento com um comando
sudo sysctl -w net.ipv4.ip_forward=1
Em seguida, crio tun0 executando
sudo ip tuntap add dev tun0 mod tun
Eu atribuo o endereço IP e ligo o dispositivo:
sudo ifconfig tun0 10.1.8.5 netmask 255.255.255.0 promisc up
Eu quero fazer com que todos os pacotes passem de enp5s0 para tun0 , então eu tenho que usar iptables . Eu preciso fazer uma regra que permita o encaminhamento de enp5s0 para tun0 , então o comando é
sudo iptables -A FORWARD --in-interface tun0 --out-interface enp5s0 -j ACCEPT
Então eu ative o NAT executando
sudo iptables -t nat -A POSTROUTING --out-interface enp5s0 -j MASQUERADE
tcpdump não mostra tráfego em tun0 .
Além disso, tentei quase a mesma coisa, mas usando o dispositivo TAP. Eu criei uma ponte com brctl , adicionei tap0 e enp5s0 , mas nenhum pacote foi recebido por tap0 e tudo deu certo com enp5s0 . Nada como default gw 10.1.8.5 funciona no caso do TUN. Onde está um erro?
Suas interfaces de entrada e saída estão invertidas no comando iptables.
Eles devem ser:
sudo iptables -A FORWARD --in-interface enp5s0 --out-interface tun0 -j ACCEPT
e:
sudo iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE
Tags vpn iptables tunneling forwarding