Como faço para encaminhar eth0 para wlan0?

0

Eu tentei encaminhar eth0 para wlan0 no meu Raspberry Pi B + usando NAT em iptables com os seguintes comandos:

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD --in-interface eth0 -j ACCEPT iptables --table nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE

Mas não funcionou, quando eu tentei ping google.com eu tenho ping: unknown host google.com no meu laptop que está conectado à porta eth0 no meu Raspberry Pi B +. No meu Raspberry Pi B +, eu só tenho acesso normal à internet a partir do wlan0.  Os endereços IP na minha rede wifi estão parecendo assim: 192.168.1.xxx.

Como faço para encaminhar eth0 para wlan0?

    
por wb9688 28.11.2015 / 10:03

2 respostas

0

O iptables permite filtrar o tráfego e configurar as traduções NAT como você fez, mas na verdade não tem nada a ver com a configuração do seu dispositivo como um roteador para encaminhar o tráfego entre duas interfaces. O único comando que realmente faz algo relacionado a isso é o ip_forward. O resto é tudo para a sua configuração de IP no Pi e seu laptop.

(para esclarecer, sua segunda linha diz ao iptables para permitir que o tráfego entre eth0 e FORWARD em qualquer lugar que não seja Pi, mas na verdade não permite que o tráfego flua para o outro lado, por isso é inútil e só relevante se você tiver definido o iptables para descartar todo o tráfego FORWARD por padrão)

Portanto, se o próprio Pi tiver acesso à Internet, as perguntas reais que você precisa abordar são:

  • qual é a configuração de IP no lado eth0 da sua rede, tudo está alinhado para que seu laptop possa se comunicar normalmente com o Pi e seu laptop está usando o endereço eth0 do Pi como um gateway?

  • Se você alterou iptables o suficiente para o padrão negar todo o tráfego FORWARD e somente as regras acima estão em vigor, a regra acima garante que os pacotes possam sair, mas nenhuma resposta pode voltar, então o que você realmente deseja que o iptables filtrar?

por 01.12.2015 / 16:39
0

Pelo menos os comandos mostrados parecem corretos. Se esta não é uma configuração de firewall completa que você usa no Raspberry Pi, ou seja, se você tiver outras regras ou tiver alterado a diretiva de encaminhamento padrão (ela é ACCEPT por padrão, alterada com iptables -P), provavelmente também será necessário ativar responder ao tráfego, adicionando a correspondência de estado:

iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Isso permitirá que o rastreador de conexão detecte pacotes de resposta como pertencentes à mesma conexão originada na interface interna e aceite-os.

Eu não me lembro com certeza, se o kernel do Raspberry Pi não tiver ativado a correspondência conntrack, você terá que usar a extensão de estado (antiga, obsoleta):

iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Você precisa inserir apenas um deles. Eu prefiro adicionar isso como primeira regra na cadeia.

A interface eth0 no Raspberry Pi e seu computador por trás dele devem ter endereços de outra rede. Por exemplo, você pode usar 192.168.10.1/24 (ou /255.255.255.0 que é o mesmo) no RasPi e 192.168.10.2 no host de destino.

No host de destino, você configura o endereço eth0 do RasPi (192.168.10.1 no exemplo anterior) como o gateway padrão, e os servidores DNS são iguais aos definidos no seu RasPi. Você pode inspecionar quais servidores o RasPi usa emitindo nele: cat /etc/resolv.conf, e procure por entradas de 'nameserver'. Ou você pode simplesmente configurar o DNS público do Google (8.8.8.8, 8.8.4.4).

    
por 02.12.2015 / 09:42

Tags