AP mit hostapd - angemeldete Clients rauswerfen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Mahlzeit liebe pi-Gemeinde,

    ich habe hier einen pi (2) mit aktuellem raspbian image auf dem hostapd in Verbindung mit einem TPLink 722n läuft. Der AccessPoint ansich funktioniert perfekt. Nun hätte ich 2 Fragen:

    1) Suche ich eine Möglichkeit angemeldete Nutzer via Terminal abzumelden (z.B. wenn ein gewisse Nutzungsdauer überschritten wurde).
    2) Der Zugang zum AP ist testweise via WPA2 Passwort und MAC-Filter geschützt, leider finde ich kein LOG mit fehlgeschlagenen Anmeldungen... sobald der MAC Filter deaktiviert wird, finde ich zwar die Daten in der /var/log/syslog, möchte aber auch gern wissen wer es versucht wenn der MAC-Filter aktiv ist.

    Jemand eine Idee, wie ich diese beiden Themen lösen kann? Mir steht die SSH Verbindung zum AP zur Verfügung.

    Grüße M.


  • 2) Der Zugang zum AP ist testweise via WPA2 Passwort und MAC-Filter geschützt, leider finde ich kein LOG mit fehlgeschlagenen Anmeldungen... sobald der MAC Filter deaktiviert wird, finde ich zwar die Daten in der /var/log/syslog, möchte aber auch gern wissen wer es versucht wenn der MAC-Filter aktiv ist.

    Jemand eine Idee, wie ich ...

    Versuch mal auf einer anderen/früheren Ebene (z. B. preauthentication und 4-way-hand-shake) zu loggen/sniffen:

    Code
    sudo tcpdump -vvveni any ether proto 0x88c7 or ether proto 0x888e


    oder mit der richtigen MAC-Adresse des AP (statt Interface "-i any"):

    Code
    sudo tcpdump -vvven ether src or dst <richtige-MAC-Adresse-des-AP> and ether proto 0x88c7 or ether proto 0x888e

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • 1) Suche ich eine Möglichkeit angemeldete Nutzer via Terminal abzumelden ...


    Noch jemand eine Idee für den 1. Punkt??

    Versuch mal mit:

    Code
    which hostapd_cli


    und danach:

    Code
    sudo hostapd_cli disassociate <MAC-Adresse-Client> && sudo hostapd_cli deauthenticate <MAC-Adresse-Client>

    EDIT:

    Als Test, versuch mal auf deinem PI auch mit:

    Code
    sudo arptables -I OUTPUT --destination-mac <MAC-Adresse-Client> -j DROP

    und mit:

    Zitat


    sudo arptables -I INPUT --proto-type 0x888e --source-mac <MAC-Adresse-Client> -j DROP


    so dass der WLAN-Client evtl. nicht mehr am rekeying teilnehmen kann und danach vom AP auch abgemeldet wird.
    BTW: In welchen Zeitabständen sendet dein AP die EAPOL-Pakete für das rekeying?

    EDIT 1.1:

    Hinweis: arptables funktioniert auf den OSI-Ebenen 2/3 und kann EAPOL-Pakete (0x888e) nicht blocken.

    EDIT 2:

    Kannst Du während der Laufzeit (runtime), dem MAC-Filter des AP, Client-MAC-Adressen hinzufügen bzw. entfernen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (27. Oktober 2015 um 10:19)

  • Guten Morgen und vorab vielen Dank für deine Unterstützung,

    Zitat

    which hostapd_cli


    Ausgabe:

    Zitat

    /usr/sbin/hostapd_cli

    Zitat

    sudo hostapd_cli disassociate B4:XX:D1:D0:XX:8B && sudo hostapd_cli deauthenticate B4:XX:D1:D0:XX:8B


    Ausgabe:

    Zitat

    Failed to connect to hostapd - wpa_ctrl_open: No such file or directory

    Zitat

    sudo arptables -I OUTPUT --destination-mac B4:XX:D1:D0:XX:8B -j DROP


    Ausgabe: nix / keine Fehlermeldung / Client ist aber immer noch am AP angemeldet

    Bzgl dem MacFilter, diesen kann ich über die hostapd.conf auch deaktivieren. Nach einer Änderung muss nur der hostapd neugestartet werden, dies würde ich aber gern vermeiden wollen da hierbei alle Clients getrennt werden.

    Hast noch eine Idee für mich??

    Einmal editiert, zuletzt von Micky (27. Oktober 2015 um 08:02)


  • Ausgabe:

    Evtl. hast Du den hostapd nicht richtig bzw. nicht vollständig konfiguriert. Wie sind die Ausgaben von:

    Code
    sudo cat /etc/hostapd/hostapd.conf | grep -i ctrl_interface
    Code
    sudo hostapd_cli help | grep -i disassociate
    Code
    sudo hostapd_cli all_sta


    ?


    Ausgabe: nix / keine Fehlermeldung / Client ist aber immer noch am AP angemeldet


    Das sollte auch so sein. Kann der Client jetzt noch mit dem AP kommunizieren?
    Wie ist die Ausgabe von:

    Code
    sudo arptables -nvx -L


    ?

    EDIT:

    Gleichzeitig mit dem Anwenden der arptables-Regel, den arp-cache des PI (mit dem hostapd) leeren:

    Code
    sudo ip -s neighbour flush all


    Nach einer Änderung muss nur der hostapd neugestartet werden, ...

    Nein, so sollte das nicht sein. D. h., die Änderung und Wirksamkeit des MAC-Filters des hostapd, sollte ohne dessen Neustart möglich sein. Dann hat dein hostapd dieses Feature (noch) nicht.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (27. Oktober 2015 um 09:35)

  • Guten Morgen rpi444,

    Code
    sudo cat /etc/hostapd/hostapd.conf | grep -i ctrl_interface


    Ausgabe:
    ctrl_interface=wlan0
    ctrl_interface_group=0

    Code
    sudo hostapd_cli help | grep -i disassociate


    Ausgabe:
    Failed to connect to hostapd - wpa_ctrl_open: No such file or directory

    Code
    sudo hostapd_cli all_sta


    Ausgabe:
    Failed to connect to hostapd - wpa_ctrl_open: No such file or directory

    Zitat

    Das sollte auch so sein. Kann der Client jetzt noch mit dem AP kommunizieren?


    ja, Kommunikation funktioniert nachwievor.

    Code
    sudo arptables -nvx -L
    Chain INPUT (policy ACCEPT 55284 packets, 1548K bytes)
    
    
    Chain OUTPUT (policy ACCEPT 156 packets, 4368 bytes)
    -j DROP -i * -o * --dst-mac b4:XX:d1:XX:cf:XX , pcnt=0 -- bcnt=0
    
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

    Einmal editiert, zuletzt von Micky (27. Oktober 2015 um 10:05)

  • Code
    sudo cat /etc/hostapd/hostapd.conf | grep -i ctrl_interface


    Ausgabe:
    ctrl_interface=wlan0
    ctrl_interface_group=0

    Versuch mal mit:

    Code
    ctrl_interface=/var/run/hostapd


    , denn:


    Automatisch zusammengefügt:


    ..., leider finde ich kein LOG mit fehlgeschlagenen Anmeldungen...

    Versuch mal auch, ob Du mit dem "verbose debugging mode" beim hostapd:

    Code
    logger_syslog=-1
    logger_syslog_level=0


    , fehlgeschlagene Anmeldungen, in der syslog findest.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (27. Oktober 2015 um 10:31)

  • Mahlzeit,

    nochmal kurz zur Sicherheit, du möchtest dass ich die /etc/hostapd/hostapd.conf folgendermaßen modifiziere:

    statt:

    Code
    ctrl_interface=wlan0
     ctrl_interface_group=0

    soll folgendes drin stehen:

    Code
    ctrl_interface=/var/run/hostapd

    Oder sollen die beiden o.g. Zeilen drin bleiben??
    Automatisch zusammengefügt:
    Nachtrag: Also wenn ich die hostapd.conf um den o.g. Teil modifiziere (wie in dem Post drüber beschrieben) und dann Folgendes absetze wird der Client aus dem WLAN Netzwerk entfernt

    Code
    sudo hostapd_cli disassociate <MAC-Adresse-Client> && sudo hostapd_cli deauthenticate <MAC-Adresse-Client>

    --> wenn ich dann die MAC über die arptables blockiere, kommt er auch nicht mehr rein. Über ein Skript werde ich dies dann zeitlich steuern, sodass er ne Sperre für 30-60min bekommen kann.

    Die Anpassung mit dem Loglevel funktioniert ebenfalls, nun finde ich im syslog auch die fehlgeschlagenen Anmeldungen. Dank deiner Hilfe konnte ich nun beide Punkte realisieren. An dieser Stelle ein ganz dickes Dankeschön für deine tolle Unterstützung.

    Grüße M.

    Einmal editiert, zuletzt von Micky (27. Oktober 2015 um 13:19)


  • ... dann Folgendes absetze wird der Client aus dem WLAN Netzwerk entfernt

    Code
    sudo hostapd_cli disassociate <MAC-Adresse-Client> && sudo hostapd_cli deauthenticate <MAC-Adresse-Client>

    OK, mich würde jetzt interessieren ob die deauthentication eines WLAN-Clienten (wie oben beschrieben), mit tcpdump gesnifft/angezeigt werden kann. Starte mal auf deinem PI, vor einer deauthentication mit hostapd_cli, tcpdump mit folgendem Filter:

    Code
    sudo tcpdump -vvveni any ether proto 0x0c


    auf deinem PI (... wo sich der hostapd befindet).

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (27. Oktober 2015 um 13:50)

  • habe folgendes gestestet:

    1. Terminal -->

    Code
    sudo tcpdump -vvveni any ether proto 0x0c


    2. Terminal -->

    Code
    sudo hostapd_cli disassociate XX:XX:XX:XX:XX:XX && sudo hostapd_cli deauthenticate XX:XX:XX:XX:XX:XX

    Ausgabe 1. Terminal --> nix
    Ausgabe 2. Terminal --> Selected Interface WLAN0 OK
    Automatisch zusammengefügt:
    Nachtrag zur Ausgabe am 1. Terminal (nach Strg+C):

    0 packets captured
    1 packet received by filter
    0 packets dropped by kernel

    Einmal editiert, zuletzt von Micky (27. Oktober 2015 um 14:13)


  • Nachtrag zur Ausgabe am 1. Terminal (nach Strg+C):

    0 packets captured

    OK, dann ist das nicht der richtige tcpdump-Filter.

    Gibt es in der syslog des PI evtl. Informationen/Ausgaben, wenn Du auf diese Art und Weise einen WLAN-Client vom AP abmeldest?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • 1) Suche ich eine Möglichkeit angemeldete Nutzer via Terminal abzumelden ...

    BTW: Inzwischen gibt es einen patch für hostapd, mit dem man "Nutzer/Clients" (Stationen) mit hostapd_cli auch bannen kann. Auszug aus dem Patch:

    Diff
    --- a/hostapd/hostapd_cli.c
    +++ b/hostapd/hostapd_cli.c
    @@ -65,6 +65,7 @@ static const char *const commands_help =
    "   new_sta <addr>       add a new station\n"
    "   deauthenticate <addr>  deauthenticate a station\n"
    "   disassociate <addr>  disassociate a station\n"
    +"   ban <addr>           ban a station\n"

    Quelle: Siehe: http://lists.infradead.org/pipermail/host…ber/034199.html

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!