Não é possível encaminhar o tráfego de eth para TUN / TAP

0

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?

    
por Nikita Zeulin 09.05.2018 / 15:10

1 resposta

0

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
    
por 09.05.2018 / 15:26