[Public] Paketfilterung im WLAN zwischen Clients?

Sebastian Meyer ich at sebmeyer.de
Di Feb 15 11:07:25 CET 2022


Hallo Rainer, Hallo Liste,

im Prinzip ergibt deine Frage wenig Sinn: Wenn du den Traffic zwischen den Clients filtern willst, muss der gesammte Traffic durch deine Firewall laufen. Du hast dann also so oder so die komplette Client Isolation, nur dass die Firewall den Traffic dann selektiv weiterleitet.
In Fall eines Linux APs bietet sich natürlich an, dass der auch die Firewallrolle übernimmt.

Ohne Client Isolation läuft der Traffic nicht zwangsweise durch deinen Filter, und damit kannst du ihn eben auch nicht filtern.

Weil mich die Details auch interessieren, habe ich mich mal schlau gelesen:
(Achtung: Auch den letzten Absatz zum Thema br0 interface beachten!)

In reinem 802.11 läuft die Kommunikation zwischen den Clients stets über den AP (unter Linux realisiert durch hostapd). Die Frage ist dann aber, ob die Datenpakete erst im Netzwerkstack an die IP Layer (aka Layer 3) hochgereicht werden - also iptables und damit die Firewall erreichen - oder ob die Hardware die WLAN Frames anhand der MAC Adresse direkt auf der niedrigeren MAC Layer (Layer 2) weiterleitet.

Und genau hier greift die Client Isolation ein. Die Beschreibung in der hostapd.conf sagt:

# Client isolation can be used to prevent low-level bridging of frames between
# associated stations in the BSS. By default, this bridging is allowed.
#ap_isolate=1

Ich lese das so: Wenn ein Client Alice Daten an einen Client Bob im selben WLAN senden will, dann setzt Alice die MAC Adresse von Bob in den WLAN Frame. Die WLAN Hardware (oder der WLAN Treiber) des AP sieht dann, dass die MAC von Bob sich im selben WLAN befindet wie die von Alice, und leitet den Frame direkt weiter - ähnlich wie bei einem Netzwerkswitch, er arbeitet auch nur auf Layer 2, also den MAC Adressen. TCP/IP ist aber Layer 3 und wird dabei garnicht beachtet. Macht auch Sinn, weil man so weniger Last auf der CPU des AP erzeugt. Ist bei einem modernen Linux Rechner relativ egal, aber bei einem mickrigen, eingebetteten System unter Umständen problematisch.

Zusätzlich gibt es augenscheinlich mindestens zwei weitere Optionen, wie Clients direkt kommunizieren können, die ebenfalls unterbunden werden sollten:

1. Jeder Client erhält neben dem individuellen Session Key zur verschlüsselten Kommunikation mit dem AP den einheitlichen GFK. Mit diesem können die Clients Broadcasts senden, die jeder andere Client dann auch wieder entschlüsseln kann. Das kann man in hostapd mit "disable_dgaf=1" abschalten (dann erhält jeder Client einen individuellen GFK). Die Option ist unter "Hotspot 2.0" gelistet, ich bin mir aber nicht sicher, ob das damit irgendwas zu tun hat. Aber diese Stackoverflow Antwort klingt stark danach:
https://superuser.com/questions/1198712/iptables-to-filter-traffic-exchanged-within-the-same-wireless-lan
Auch bei dem Link beachten, dass Client Isolation aktiviert werden soll.

2. Wenn 802.11z (TDLS - Tunneled Direct Link Setup") aktiviert ist, können Clients direkt kommunizieren. Wikipedia sagt, dass der Chromecast das für Streaming z.B. vom Laptop Bildschim einsetzt. In der hostapd.conf sollte man das mit tdls_prohibit=1 verhindern können.


Außerhalb des WLANs kommt noch das Bridge Interface in deinem Linux dazu, d.h. falls du das nutzt: Wenn dein wlan0 Interface mit dem Ethernet Interface eth0 als bridge br0 konfiguriert ist, sollte es so sein, dass das Bridge Interface die Weiterleitung auch wieder direkt auf der Layer 2 übernimmt. Also bevor die Pakete iptables erreichen. Das kann man aber wohl umstellen, siehe folgender Stackoverflow Beitrag:
https://unix.stackexchange.com/questions/499756/how-does-iptable-work-with-linux-bridge
Den conntrack Teil solltest du erstmal ignorieren können, wichtig ist, dass mit bridge-nf-call-iptables alle Pakete, die durch die Bridge gehen, auch von iptables gefiltert werden.


Ich hoffe, ich konnte dir halbwegs weiterhelfen.

Gruß,
Sebastian

> Rainer Martin <rainer at martinrainer.de> hat am 14.02.2022 21:08 geschrieben:
> 
> 
> 
> Hallo Leute,
> 
> 
> ich suche eine Möglichkeit, Datenpakete im WLAN zu filtern, also auch zwischen den Endgeräten.
> 
> Müsste doch mit einem Linux-WLAN-AccessPoint und Filter auf dem Bridge-Interface möglich sein, oder?
> 
> Ich will keine komplette Client-Isolation.
> 
> Was mich wundert ist, dass ich dazu nix finde ... Macht die WLAN-Hardware im AP-Mode die Weiterleitung autark, ohne Möglichkeit selektiv zu filtern?
> 
> 
> Vielen Dank schon mal,
> 
>                       Rainer
> 
> 
> --
> public at lists.hacksaar.de - Öffentliche Liste Technik Kultur Saar e.V.
> Konfiguration: https://lists.hacksaar.de/listinfo/public
> Abbestellen: public-unsubscribe at lists.hacksaar.de
> 
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.hacksaar.de/pipermail/public/attachments/20220215/e469e5a0/attachment.htm>


Mehr Informationen über die Mailingliste Public