Zugriff auf verfügbare WLANs steuern

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
GregorS
Beiträge: 2881
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Zugriff auf verfügbare WLANs steuern

Beitrag von GregorS » 24.06.2024 01:35:49

Hallo zusammen!

Nachdem ich gestern schon wieder eine Weile daheim war, wollte ich mich mit meinem Notebook verbinden, was nicht ging, weil es sich mit einem offenen „Vodafone Homespot“ verbunden hatte. Normalerweise soll es sich in mein heimisches Fritzbox-WLAN einfügen.

Kann ich die Verbindung so steuern/begrenzen, dass sich mein Notebook nur in bestimmte WLANs einklinkt? Schon wegen der Signalqualität sollte mein heim-WLAN bevorzugt werden. Und wenn ich unterwegs bin, dann halt das verschlüsselte WLAN von Freunden.

TIA!

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
Draal
Beiträge: 598
Registriert: 11.03.2005 14:45:26

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von Draal » 24.06.2024 07:37:20

Ich nutze dafür den connection manager, auch connman genannt, in Verbindung mit einem überschaubaren Frontend (cmst).
Damit lassen sich alle Netzwerk Schnittstellen sehr gut verwalten.

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 24.06.2024 08:38:54

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 01:35:49
..., was nicht ging, weil es sich mit einem offenen „Vodafone Homespot“ verbunden hatte. ...
Ich mache das mit iwd:
If 'open' mode is disabled, then non-OWE enabled access points will not be connected to.
Ohne OWE werden WLAN-Verbindungen zu öffentlichen WLAN-Hotspots unverschlüsselt hergestellt. Dadurch besteht die Gefahr, dass Daten von Unbefugten mitgelesen oder manipuliert werden, sofern die Daten nicht zusätzlich per HTTPS oder VPN verschlüsselt werden.
Quelle: https://avm.de/service/wissensdatenbank ... ncryption/

EDIT:

OWE
Zuletzt geändert von mat6937 am 26.06.2024 09:16:42, insgesamt 1-mal geändert.
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

Benutzeravatar
GregorS
Beiträge: 2881
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von GregorS » 24.06.2024 10:10:28

Vielen Dank für Eure Antworten!

connman sieht vielversprechend aus, zumal es auch ein Paket connman-doc gibt. Da werd' ich mal einen Blick drauf werfen.

iwd scheint sich hingegen auf die Konfiguration meiner Fritzbox zu beziehen. Die ist aber schon so konfiguriert, dass sie eine verschlüsselte Verbindung mit meinem Notebook akzeptieren würde. Nur wechselt mein Notebook anscheinend nicht, wenn es bereits mit einem anderen (offenen) WLAN verbunden ist.

Ich möchte meinem Notebook quasi so etwas vorgeben: Verbinde Dich mit den Netzen „GS“ (das ist mein Heim-WLAN) oder mit „HINZKUNZ“ (das WLAN eines Freundes). sonst mit nichts.

Ich werde mal sehen, ob ich das mit connman hinbekomme.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
MSfree
Beiträge: 11068
Registriert: 25.09.2007 19:59:30

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von MSfree » 24.06.2024 10:31:29

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 10:10:28
iwd scheint sich hingegen auf die Konfiguration meiner Fritzbox zu beziehen.
Debianiwd soll der Nachfolger von Debianwpasupplicant sein.
Siehe auch hier: https://wiki.gentoo.org/wiki/Iwd

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 24.06.2024 15:57:31

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 10:10:28
iwd scheint sich hingegen auf die Konfiguration meiner Fritzbox zu beziehen.
Nein. iwd macht genau das was Du dort konfigurierst. Z. B.:

Code: Alles auswählen

:~# ls -la /var/lib/iwd
insgesamt 24
drwx------  3 root root 4096 24. Jun 15:35 .
drwxr-xr-x 53 root root 4096 16. Mai 21:02 ..
-rw-------  1 root root  804 24. Jun 15:35 <SSID>.psk
-rw-------  1 root root   85 24. Jun 15:35 .known_network.freq

Code: Alles auswählen

:~# cat /var/lib/iwd/<SSID>.psk
[Settings]
AutoConnect=true
Hidden=false
TransitionDisable=true
DisabledTransitionModes='open'
UseDefaultEccGroup=true

[Network]
MulticastDNS=false

[Security]
PreSharedKey=<geheim>
Passphrase=<geheim>
SAE-PT-Group19=<geheim>
SAE-PT-Group20=<geheim>

Code: Alles auswählen

:~# cat /var/lib/iwd/.known_network.freq
[f88117f4-####-####-####-472859334438]
name=/var/lib/iwd//<SSID>.psk
list= 2472

Code: Alles auswählen

:~# ls -la /etc/iwd/main.conf
-rw------- 1 root root 451 25. Mai 09:10 /etc/iwd/main.conf
Ich benutze iwd im standalone-Modus (d. h. nicht als backend für connman oder NM) mit dem integrierten dhcp-Client:

Code: Alles auswählen

iwd      621 root   16u  IPv4  19723      0t0  UDP 192.168.178.53:68
BTW: iwd ist nicht der Nachfolger für wpa_supplicant, sondern eine Alternative zum wpa_supplicant.
connman (mit wpa_supplicant) ist auch gut bzw. habe ich in der Vergangenheit auch benutzt.
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

Benutzeravatar
MSfree
Beiträge: 11068
Registriert: 25.09.2007 19:59:30

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von MSfree » 24.06.2024 16:09:47

mat6937 hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 15:57:31
BTW: iwd ist nicht der Nachfolger für wpa_supplicant,
https://wiki.gentoo.org/wiki/Iwd
iwd (iNet Wireless Daemon) is an up-and-coming wireless daemon for Linux.

Auf deutsch:
iwd isr der zukünftige WLAN daemon for Linux.

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 24.06.2024 16:20:24

MSfree hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 16:09:47
Auf deutsch:
iwd isr der zukünftige WLAN daemon for Linux.
iwd ist gut, aber ob iwd "der zukünftige" werden wird, wird sich zeigen. Das Gentoo-Wiki ist für mich nicht maßgebend. In OpenBSD gibt es auch eine gute Alternative zum wpa_supplicant, was den wpa_supplicant dort aber richtigerweise, auch nicht zu 100% ersetzt/verdrängt hat.

EDIT:

https://iwd.wiki.kernel.org/_detail/wik ... ecture.png
Zuletzt geändert von mat6937 am 29.06.2024 07:56:11, insgesamt 1-mal geändert.
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

wanne
Moderator
Beiträge: 7517
Registriert: 24.05.2010 12:39:42

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von wanne » 24.06.2024 18:27:57

Am Ende wirst du irgend ein (pseudo) intelligentes tool am laufen haben, dass da irgend was automatisiert. Wenn du ein "einfaches" wpa_supplicant+systemd-networkd setup hast, dann kannst du in der wpa_supplicant.conf eintragen welche Netzwerke genutzt werden und welche Priorität die bekommen. Wenn du ein übliches grafisches setup hast hast du da üblicherweise einen Netzwerkmanager drüber hängen der nochmal ein grafisches tool drüber hat. Musst du a) wissen welche das sind und b) wird es zunehmend schwieriger das verhalten der verschiedenen untereinander zu determinieren.
mat6937 hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 16:20:24
iwd ist gut, aber ob iwd "der zukünftige" werden wird, wird sich zeigen.
Das wird vor allem auch auf den Bereich an kommen. Für android dürfte es schon alleine wegen der LGPL flach fallen. Die dbus Abhängigkeit macht es für embedded Systeme zu einem nogo. – Da es auf Linux abgestimmt ist, wird es unter BSD keinen Fuß fassen. Klassischen UNIX-Leuten wird nicht gefallen, dass das ein Tool ist, dass explizit unter dem not invented here Syndrom leidet. – Die Scheiben explizit alles neu selbst. – Das wird IMHO nie die Stabilität von einer überall benutzten lib wie GnuTLS (wie sie der wpa_supplicant nutzt) erreichen. Und gleichzeitig noch alles mögliche machen will– nicht nur wifi macht sondern auch noch dhcp, routing, mac-Adressen ändern.... Alles dafür, dass es eventuell ein paar CPU-zyklen spart, weil es mehr an die Hardware auslagert. Am Ende drückt es das IMHO in die Mini-Nische von standard Linux-Desktop User.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7517
Registriert: 24.05.2010 12:39:42

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von wanne » 24.06.2024 18:37:26

mat6937 hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 08:38:54
Quelle: https://avm.de/service/wissensdatenbank ... ncryption/
Am Ende ist das eine Firma die damit Geld verdient wifi-crypto zu verkaufen. Du wirst wunderbar auch unabhängige Quellen finden, die das von da abgeschrieben haben. Aber am Ende ist das IMHO extrem irreführend. Um die Wifi-Verbindung abzuhören musst du quasi in der Wohnung oder direkt davor stehen. Dahinter hast du kilometer lange Kabel, an denen jeder beliebig mit hören kann. – Und das ganz emit viel höherem ertrag, weil darüber hunderte Verbindungen laufen. – Um die Abstrahlung von Kabeln auszulesen ist etwas teurere Hardware notwendig. Aber das bewegt sich zumindest abseits von Glasfaser auch in nem Bereich, wo man sich das selbst zum Spaß kaufen kann. Wir sehen zumindest bei den Geheimdiensten, dass die ganz massiv da und nie am wifi abhören. Ich wette Kriminelle werden das Preis/Leistungsverhältnis genauso schätzen. Daneben lassen die Internetanbieter vom billigsten Transportieren. Rein theoretisch kannst du der Telekom auch schlicht billigeren Transport anbieten. Wir haben das zu genüge gesehen, dass das Kriminelle für SMS/Telefonate machen. – Für Internet noch selten. – Vermutlich schlicht, weil wie gesagt mittlerweile jeder sichere Protokolle nutzt. Am ende ist Wifi-Crypto ähnlich sinnvoll wie ne Tabakdose als Kugelschutz im Krieg. – Ja funktioniert, wenn genau da drauf geschossen wird. – Real willst du entweder ne Kugelsichere Weste, die (wie ssh/WhatsApp...) alles schützt. Oder du brauchst den Schutz nicht.
Deswegen ist eben schon lange alles https/ssh/axolotl... das auch ohne extra wifi-Verschlüsslung nicht abgehört werden kann. Kein mensch nutzt noch telnet/ICQ oder ähnliche unverschlüsselte Kuriositäten.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
GregorS
Beiträge: 2881
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von GregorS » 24.06.2024 19:13:55

Primär geht's mir gar nicht um die Verschlüsselung. Ich möchte nur, dass sich mein Notebook nur in bestimmte WLANs einloggt.

EDIT:
Wo kann ich das konfigurieren und wie sieht so ein Eintrag beispielsweise aus? Ach ja: Mein Notebook läuft mit Devuan Daedalus, ich nehme aber an, dass das keine Rolle spielt. Hier mal ein Auszug aus xterm:

Code: Alles auswählen

root@tablet:/etc# find . -name "*wpa_*"
./dbus-1/system.d/wpa_supplicant.conf
./systemd/system/dbus-fi.w1.wpa_supplicant1.service
./systemd/system/multi-user.target.wants/wpa_supplicant.service
./wpa_supplicant
root@tablet:/etc# ls -l wpa_supplicant/
insgesamt 40
-rwxr-xr-x 1 root root   937 24. Feb 2023  action_wpa.sh
-rw-r--r-- 1 root root 25569 24. Feb 2023  functions.sh
-rwxr-xr-x 1 root root  4696 24. Feb 2023  ifupdown.sh
root@tablet:/etc# 
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

KP97
Beiträge: 3530
Registriert: 01.02.2013 15:07:36

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von KP97 » 24.06.2024 20:23:15

Iwd braucht keinen wpa_supplicant. Für dieses Tool gibt es auch eine grafische Oberfläche, die muß man aber selbst kompilieren. Mit checkinstall aber sehr einfach.
Das hatte ich vor einiger Zeit mal beschrieben.
Für den Gnome-Networkmanager braucht es wieder wpa_supplicant, ebenso für systemd-network. Bei Devuan fällt das aber aus...

https://github.com/J-Lentz/iwgtk

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 24.06.2024 20:46:12

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 19:13:55
Wo kann ich das konfigurieren und wie sieht so ein Eintrag beispielsweise aus?
In der wpa_supplicant.conf kannst Du das konfigurieren. Z. B.:

Code: Alles auswählen

# Example configuration limiting AP selection to a specific set of APs;
# any other AP not matching the masked address will be ignored.
network={
	ssid="example"
	psk="very secret passphrase"
	bssid_accept=02:55:ae:bc:00:00/ff:ff:ff:ff:00:00 00:00:77:66:55:44/00:00:ff:ff:ff:ff
}
Quelle: https://w1.fi/cgit/hostap/plain/wpa_sup ... icant.conf
Hatte ich im Einsatz auf debian, ohne NM bzw. ohne connman, aber mit systemd-networkd und eine wpa_supplcant.service-unit ohne dbus-Abhängigkeit.
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

Benutzeravatar
GregorS
Beiträge: 2881
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von GregorS » 24.06.2024 21:00:28

mat6937 hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 20:46:12
GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 19:13:55
Wo kann ich das konfigurieren und wie sieht so ein Eintrag beispielsweise aus?
...
Quelle: https://w1.fi/cgit/hostap/plain/wpa_sup ... icant.conf
Hatte ich im Einsatz auf debian, ohne NM bzw. ohne connman, aber mit systemd-networkd und eine wpa_supplcant.service-unit ohne dbus-Abhängigkeit.
Danke für den Link! Der Inhalt meiner wpa_supplicant.conf ist deutlich weniger „Gesprächig“:

Code: Alles auswählen

<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
        <policy user="root">
                <allow own="fi.w1.wpa_supplicant1"/>

                <allow send_destination="fi.w1.wpa_supplicant1"/>
                <allow send_interface="fi.w1.wpa_supplicant1"/>
                <allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
        </policy>
        <policy group="netdev">
                <allow send_destination="fi.w1.wpa_supplicant1"/>
                <allow send_interface="fi.w1.wpa_supplicant1"/>
                <allow receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
        </policy>
        <policy context="default">
                <deny own="fi.w1.wpa_supplicant1"/>
                <deny send_destination="fi.w1.wpa_supplicant1"/>
                <deny receive_sender="fi.w1.wpa_supplicant1" receive_type="signal"/>
        </policy>
</busconfig>
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 24.06.2024 21:05:55

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 21:00:28
Der Inhalt meiner wpa_supplicant.conf ist deutlich weniger „Gesprächig“:
Ja, weil das ist die dbus-abhängige config, mit der der wpa_supplicant als backend für den NM oder für connman, fungiert.
Ob und wie Du hier "bssid_accept= ..." (als whitelist) benutzen bzw. unterbringen kannst, weiß ich nicht, denn ich habe das ohne NM/connman/dbus gemacht (siehe oben).
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

Benutzeravatar
GregorS
Beiträge: 2881
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von GregorS » 24.06.2024 21:43:13

mat6937 hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 21:05:55
... ich habe das ohne ... dbus gemacht ...
Uh, ja, das habe ich überlesen.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

fischig
Beiträge: 3791
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von fischig » 25.06.2024 00:26:33

Ich empfehle einen Nano-Router am besten TL-WR802N. Ist aber mehr was für unterwegs. Aber wenn's zuhause=stationär schon nicht hinhaut, wäre das vielleicht doch eine Alternative.

mat6937
Beiträge: 3209
Registriert: 09.12.2014 10:44:00

Re: Zugriff auf verfügbare WLANs steuern

Beitrag von mat6937 » 25.06.2024 07:48:26

GregorS hat geschrieben: ↑ zum Beitrag ↑
24.06.2024 10:10:28
connman sieht vielversprechend aus, ...
Wenn Du connman porbierst, dann Versuch mal auch mit:

Code: Alles auswählen

BackgroundScanning = false
in der "/etc/connman/main.conf" (default ist true), denn:
When BackgroundScanning is false, ConnMan will not perform any scan regardless of wifi is connected or not, unless it is requested by the user through a D-Bus call.
D. h. m. E., dass sich connman dann nur für die bereits bekannten/konfigurierten BSSIDs "interessieren" sollte. Das offene Wlan (in deiner Umgebung) hast Du ja nicht (absichtlich) konfiguriert/eingetragen und wird evtl. (nur) via BackgroundScanning gefunden und benutzt.

EDIT:

Was Du noch (evtl. nur temporär) machen/testen kannst, ist das blocken der BSSID (mac-adresse) des offenen Wlans, mit iptables (d. h. für Datenpakete ab Schicht 2 inkl.) :

Code: Alles auswählen

iptables -I INPUT 1 -i <wlan-Interface> -m mac --mac-source <unerwünschte-BSSID> -j DROP
Wenn Du nftables benutzt kannst Du evtl. schon ab Schicht 2 inkl. blocken. Musst dann schauen ob die Wlan-Verbindung zustande kommen kann und wenn ja, dann sollte mit iptables icmp/tcp/udp/... nicht möglich sein und mit nftables auch arp nicht möglich sein. Ob (bei Wlan-Verbindung) dhcp via broadcast noch möglich ist, weiß ich nicht, aber das siehst Du dann ja, wenn keine IP-Adresse zugewiesen werden kann.

EDIT 2:

Ich habe nachgeschaut und dhcp ist Ebene 7, d. h. IP-Adresse kann _nicht_ zugewiesen werden.

EDIT 3:

wpa_supplicant kompiliert ohne dbus-Abhängigkeit (... und an der FB7590):

Code: Alles auswählen

:~# ldd /usr/local/bin/wpa_supplicantx | grep -i dbus
# keine Ausgabe!
eigene service-unit:

Code: Alles auswählen

:~# systemctl cat wpa_supplicantx
# /lib/systemd/system/wpa_supplicantx.service
[Unit]
Description=WPA supplicant daemon (interface- and nl80211 driver-specific version)
Before=network.target
Wants=network.target
ConditionPathIsSymbolicLink=/sys/class/net/wlan0
ConditionPathExists=/etc/wpa_supplicant/wpa_supplicantx.conf
IgnoreOnIsolate=true

[Service]
Type=simple
ExecStart=/usr/local/bin/wpa_supplicantx -B -c/etc/wpa_supplicant/wpa_supplicantx.conf -Dnl80211 -iwlan0 -qq
ExecReload=/bin/kill -HUP $MAINPID
RemainAfterExit=yes
Restart=on-failure
RestartSec=5
TimeoutStartSec=35
StandardOutput=null

[Install]
WantedBy=multi-user.target
Die andere service-unit ist maskiert:

Code: Alles auswählen

:~# systemctl status wpa_supplicant
● wpa_supplicant.service
     Loaded: masked (Reason: Unit wpa_supplicant.service is masked.)
     Active: inactive (dead)
config-Datei mit bssid_accept im network-block:

Code: Alles auswählen

:~# cat /etc/wpa_supplicant/wpa_supplicantx.conf
# erstellt am 24.05.2023
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
#
eapol_version=2
filter_ssids=1
ap_scan=1
bss_max_count=10
bss_expiration_age=45
ignore_old_scan_res=1
freq_list=2472
scan_cur_freq=1
interworking=1
auto_interworking=1
bgscan=""
pmf=1
#
network={
	disabled=0
	scan_ssid=0
	bssid_accept=<BSSID>
	mode=0
	priority=3
	scan_freq=2472
	freq_list=2472
	proto=RSN
	auth_alg=OPEN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=CCMP
	ssid="<SSID>"
	psk=geheim
	id_str="####"
	ieee80211w=1
	ocv=1
}
Debian 12.6 mit LXDE, OpenBSD 7.5 mit i3wm, FreeBSD 14.0 mit Xfce

Antworten