web-dev-qa-db-fra.com

transfert iptables entre deux interfaces

J'ai donc une box Linux avec deux interfaces sans fil, l'une est une station et l'autre un AP.

wlan0 (station) - Connecté à la connexion Internet

wlan1 (AP) - D'autres clients s'y connectent.

Je souhaite que les clients connectés à wlan1 puissent accéder à Internet sur wlan0. Et je voudrais le faire avec iptables car mon noyau n'a pas de support de pontage ...

Voici ce que j'ai essayé jusqu'à présent avec iptables mais cela ne fonctionne pas:

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

J'apprécierais toute aide.

29
broody

Tout d'abord, pour permettre aux hôtes se connectant sur votre interface privée de sortir sur Internet, vous n'avez pas besoin de ponter les interfaces, vous devez acheminer les paquets arrivant sur une interface, vers l'autre, où ils sortent à l'état sauvage.

Pour ce faire, il vous suffit de:

  1. Activez le transfert sur votre box Linux:
  2. Autorisez des paquets spécifiques (ou tous) à traverser votre routeur
  3. Comme quelqu'un l'a dit, comme netfilter est un pare-feu sans état, autorisez le trafic pour les connexions déjà établies
  4. Changer l'adresse source des paquets sortis sur 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
    

Ça devrait le faire.

39
Torian