iptables encaminhamento entre duas interfaces

16

Então eu tenho uma caixa linux com duas interfaces sem fio, uma é uma estação e a outra um AP.

wlan0 (station) - Conectado à conexão com a internet

wlan1 (AP) - Outros clientes se conectam a ele.

Eu gostaria que os clientes conectados ao wlan1 pudessem acessar a internet no wlan0. E eu gostaria de fazer isso com o iptables já que meu kernel não tem suporte a ponte ...

Aqui está o que eu tentei até agora com o iptables, mas não está funcionando:

iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT

Eu gostaria de receber ajuda.

    
por broody 25.09.2012 / 03:08

1 resposta

23

Primeiro, para permitir que os hosts que se conectam em sua interface privada saiam para a Internet, você não precisa interligar as interfaces, você precisa rotear os pacotes que chegam em uma interface, para a outra, onde eles saem para o selvagem.

Para fazer isso, você só precisa:

  1. Ativar o encaminhamento na sua caixa do Linux:
  2. Permitir que pacotes específicos (ou todos) passem pelo seu roteador
  3. Como alguém afirmou, como o netfilter é um firewall sem estado, permita o tráfego para conexões já estabelecidas
  4. Altere o endereço de origem nos pacotes que saem para a internet
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
    iptables -A FORWARD -i wlan0 -o wlan1 -m state --state ESTABLISHED,RELATED \
             -j ACCEPT
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Isso deve ser feito.

    
por 25.09.2012 / 04:18