web-dev-qa-db-fra.com

Comment utiliser NAT IPTABLES Rules pour HostaPD

Mon PC est équipé de deux interfaces nettes - WLAN0 et Eth0. Je souhaite utiliser le port WiFi comme point d'accès sur WLAN0. J'utilise donc l'installation HostAPD et cela fonctionne correctement en mode de routage dans le réseau local. Les utilisateurs peuvent se connecter à un tel point d'accès créé et DHCP fonctionne correctement dans les deux segments. Le PC avec HostAPD n'a pas de pare-feu et/ou de règles IPTABLES (IPTABLES et pare-feu désactivés). Je veux utiliser uniquement le pare-feu construire dans le routeur ADSL.

Ma configuration nette est la suivante

...... pc avec hostapd ................. Connexion de câble .................. Routeur ADSL

..... wlan0 .............. ETH0 ..... <----------------------- --------> ........... 192.168.0.1 .......................... <---> Internet 192.168.10.1 ... 192.168.0.7 .................................. Ajout du routage statique à 192.168.10.x

ifconfig sur PC:

eth0      Link encap:Ethernet  HWaddr 00:12:3F:F2:31:65  
       inet addr:192.168.0.7  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::212:3fff:fef2:3165/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2169539 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1008097 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3056198487 (2.8 GiB)  TX bytes:72727161 (69.3 MiB)
      Interrupt:16 

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:3398 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3398 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:495444 (483.8 KiB)  TX bytes:495444 (483.8 KiB)

mon.wlan0 Link encap:UNSPEC  HWaddr 00-14-A5-04-94-3C-90-F0-00-00-00-00-00-00-00-00  
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:151 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:17092 (16.6 KiB)  TX bytes:0 (0.0 b)

wlan0     Link encap:Ethernet  HWaddr 00:14:A5:04:94:3C  
      inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
      inet6 addr: fe80::214:a5ff:fe04:943c/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1502 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 b)  TX bytes:279392 (272.8 KiB)

Je suis totalement noob dans iptables. Alors, quelqu'un peut-il m'aider à configurer Simple NAT IPTABLE CONFIG sur PC? Je souhaite que tous les utilisateurs connectés au réseau via Hostapd (réseau 192.168.10.x) pour avoir accès à Internet? Je ne veux pas filtrer aucun trafic, tout simplement Nat.


OK MERCI. Mais je ne peux pas obtenir de connexion à Internet au segment WiFi. Le client connecté au WiFi a une adresse 192.168.10.48 (via DHCP). Le trafic complètement, je peux remarquer sur Port Eth0 de cette adresse est

16:50:14.671587 ARP, Request who-has 192.168.0.48 tell 192.168.0.1, length 46

Avis - L'adresse est 192.168.0.48 non 192.168.10.48. Donc, des coutures de mascarade pour travailler.

Eisven, je ne peux pas ping à 192.168.0.1 - Le port du routeur ADSL. C'était possible avant.

Et qu'en est-il de l'accès d'Internet aux utilisateurs WiFi? Bien sûr, je serai configuré dans l'ADSL Routeur, transférer un port de ports IP particulière d'Internet à une adresse IP particulière de cet utilisateur WiFi.

ÉDITER

systemStl montre que iptables est:

iptables.service          loaded active exited

Mais bien sûr je courais:

systemctl enable iptables.service
systemctl start iptables.service

ÉDITER

Travaux! Mais je dois ajouter manuellement chaque fois que je démarre un ordinateur (du script de démarrage):

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Est-ce une situation normale?

8
mackowiakp

Sous la forme la plus simple:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Cela permettra à tous les utilisateurs WiFi Access à Internet.

Bien sûr, en supposant que votre autre configuration de routage soit déjà terminée, à savoir:

  1. Transfert activé dans le noyau

    sysctl net.ipv4.ip_forward=1
    
  2. Transfert activé dans iptables:

    iptables -P FORWARD ACCEPT
    iptables -F FORWARD
    

Utilisation tcpdump -nn -i eth0 Pour regarder le trafic sur eth0 En cas de problème de voir s'il se rapproche correctement, si la réponse revient, etc.

Edit : "Je dois ajouter manuellement chaque fois que je démarre ordinateur (à partir du script de démarrage) ..." Cela dépend de la distribution Linux que vous avez. Malheureusement, chaque distribution a son propre outil de pare-feu - à la fin, ils n'appellent que iptables mais pour une raison quelconque, les auteurs pensent que les utilisateurs veulent que les utilisateurs veulent.

Pour répondre à votre question - le plus probable que votre pare-feu puisse être configuré pour ajouter ceci NAT règle automatiquement. La voie exacte varie toutefois entre Linux Distros sans bonne raison. Triste mais vrai.

6
MLu

J'ai écrit un pare-feu pour toutes les occasions. Veuillez lire le README et le script avant de l'utiliser. J'ai inclus les règles nécessaires à l'hôte

Pièces essentielles:

Hostap

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Hostap exige que les lignes ci-dessous soient acceptées pour fonctionner

iptables -A INPUT -j ACCEPT >> /dev/null 2>&1 
iptables -A OUTPUT -j ACCEPT >> /dev/null 2>&1

https://github.com/diveyez/fw.sh

5
Ricky Neff