Linux Clients automatisch im WLAN

Hallo zusammen,

nach einigem rumprobieren hab ich es geschafft.
Die Networkmanagermethode hat bei mir (14.04) nicht funktioniert: das
WLAN war vor der Anmeldung nicht verbunden (eingerichtet als linuxadmin).
Also hab ich die wpa_supplicant Version umgesetzt.
Allerdings hat das erstmal auch nicht funktioniert, weil mein internet
(grünes) WLAN versteckt ist.
Es funktioniert nun mit diesen Einstellungen:

/etc/network/interfaces

allow-hotplug wlan0
	iface wlan0 inet dhcp
	wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

und /etc/wpa_supplicant/wpa_supplicant.conf

    network={
    	ssid="SCHULE-intern"
    	psk=12345678912345678asdhgfialsbi3h54213k5h3rt8sdgfajs
    	scan_ssid=1

Das scan_ssid=1 war nötig, weil das WLAN versteckt ist.

Soweit, so gut.
Nun habe ich aber folgendes Problem:
der networkmanager fühlt sich nicht mehr zuständig für das WLAN (wird
nicht gemanaged).
Das wäre ja nicht so schlimm aber: ohne Netzwerkkabel zeigt der nm “kein
Netzwerk” an (leeres Kuchenstück), obwohl das WLAN verbunden ist.
Ist das bei euch auch so?
Kann man da was machen?

LG

Holger

1 „Gefällt mir“

Hallo Holger,

Das ist bei mir auch so. Und das muss m.E. eigentlich auch so sein, da ja das WLAN „am nm vorbei“ aktiviert wird. Ich habe nichts dagegen unternommen.

Ich hatte aber noch ein anderes Problem: Wenn man den Client per Kabel anschließt (darum kümmert sich dann der NetworkManager), aber das WLAN ebenfalls verfügbar ist, gibt’s z.B. Probleme mit der Namensauflösung („Internet geht nicht…“)

Das habe ich mit dem Script /etc/NetworkManager/dispatcher.d/99disablewifi gelöst:

#!/bin/bash
if [ "$1" = "enp1s0" ]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
           ;;
   esac
fi

(Quelle: linux - Disable WLan if Wired/Cable Network is available - Super User )

Viele Grüße

Andreas

2 „Gefällt mir“

Hallo Andreas,

danke für das script.
Ich hab 14.04 und damit nmcli in Version 0.9.8.8 und nicht 0.9.10, deswegen heißt der Befehl bei mir nicht
nmcli radio wifi off
sondern
nmcli nm wifi off

LG

Holger

Hi zusammen,

ich finde dieses Thema sollte unbedingt richtig dokumentiert werden. Ich checks grade nur halbwegs wie das bei euch funktioniert. Von jedem Schnipsel hab ich schon mal gehört, aber eine Wikiseite zu dem Thema wäre super-sinnvoll.

Hat jemand die Muße das zu schreiben, bei dem das funktioniert?
VG, Tobias

Hallo ,

ich habe heute mal testweise dieses Setup probiert, aber ein Problem festgestellt: Wenn die WLAN-Verbindung am Networkmanager vorbei mit wpa_supplicant gemanaged wird, geht bei mir Firefox automatisch in den Offline-Modus. Ist das bei euch auch so bzw. was hab ich falsch gemacht :)?

Ich würde auch die Lösung mit dem Networkmanager nehmen, aber ich möchte das nur für einzelne Rechner (am besten per postsync) im Image haben. Wo speichert der Networkmanager seine Einstellungen? (Edit: Hier

/etc/NetworkManager
/etc/NetworkManager/system-connections

)

vG Stephan

Bei mir funktioniert folgende Lösung (HP ProBook 450 G3 mit Xenial-Standard-Cloop), die komplett per postsync realisierbar ist. Dazu folgende vier Dateien auf dem Server ablegen:

  1. /var/linbo/linuxmuster-client/xenial/patchklasse/etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

allow-hotplug wlp2s0
        iface wlp2s0 inet dhcp
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

(wlp2s0 muss ggfs. angepasst werden.)

  1. /var/linbo/linuxmuster-client/xenial/patchklasse/etc/wpa_supplicant/wpa_supplicant.conf
network={
        ssid="DEINE_SSID"
        scan_ssid=1
        psk=hierdenmitwpa_passphraseerzeugtenschluesselangeben
}

scan_ssid=1 braucht man bei verborgener SSID, den Schlüssel erzeugt man mit wpa_passphrase "DEINE_SSID" "DEIN_SCHLÜSSEL"

  1. /var/linbo/linuxmuster-client/xenial/common/postsync.d/98-chmod-wpa_supplicant
#!/bin/sh
if [ -f /mnt/etc/wpa_supplicant/wpa_supplicant.conf ] 
then
echo " - fixing permissions for /etc/wpa_supplicant/wpa_supplicant.conf"
chmod 600 /mnt/etc/wpa_supplicant/wpa_supplicant.conf
fi

Damit der PSK nicht für alle lesbar ist.

  1. /var/linbo/linuxmuster-client/xenial/patchklasse/etc/NetworkManager/dispatcher.d/99disablewifi
#!/bin/bash
if [ "$1" = "enp1s0" ]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
           ;;
   esac
fi

Schaltet das WLAN-Interface ab, wenn das Laptop per Kabel am LAN ist. (enp1s0 ggfs. anpassen.)

Viele Grüße

Andreas

2 „Gefällt mir“

Hallo Stephan,

das Problem habe ich noch nicht beobachtet. Keine Ahnung, was da schiefgeht.

Viele Grüße

Andreas

Hallo Andreas,

vielen Dank! Ich habe es jetzt mal so umgesetzt, doch es gibt / gab folgende Probleme:

  • Der Networkmanager hat beim Verbindungswechsel 127.0.0.1 in die /etc/resolv.conf geschrieben (und den hostnamen auf no), sodass die Namensauflösung nicht mehr geklappt hat. Ich habe das update der resolv.conf im Networkmanager deaktiviert. Damit geht es erstmal.
  • Das ifup/down Skript wird scheinbar nicht ausgeführt. Kannst du mir mal zum Vergleich deine NetworkManager.conf schicken?

In diesem Zusammenhang noch eine andere Frage:

  • Wie tragt ihr die WLAN-Clients in die workstations ein? Mit neuem Hostnamen oder dem gleichen?

vG Stephan

Hallo Stephan,

Hast du den Interface-Namen (enp1s0) für dich angepasst?

Das ist dann möglicherweise die direkte Folge, wenn das Script nicht ausgeführt wird. Ich hatte (als ich ebenfalls das Problem mit der Namensauflösung bei paralleler Verwendung von LAN und WLAN hatte) aber leider nicht weiter recherchiert, woran das genau liegt, sondern bin direkt auf die Lösung mit nmcli radio wifi off gestoßen. Momentan kann ich das leider auch nicht weiter testen, da auf besagten HP-Laptops seit dem Kernelupgrade die Netzwerkkarte nicht mehr funktioniert: LINBO ab 2.3.39 - neuer Kernel verursacht manchmal boot-probleme - #56 von amu

Mit dem gleichen Hostnamen.

Viele Grüße
Andreas

Auf einem Nicht-WLAN-Client steht das bei mir auch drin: nameserver 127.0.1.1
Auf einem WLAN-Client steht da: nameserver 10.16.1.1

Die /etc/NetworkManager/NetworkManager.conf hat auf beiden den gleichen Inhalt:

[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=false

Andreas

Ja, habe ich. Das komische ist, wenn ich das Netzwerkkabel abziehe, ist meine Netzwerkkarte immer noch „Up“, und nicht „Down“. Ich werde mir das in den kommenden Tagen noch mal genauer anschauen.

Danke für deine Hilfe!

vG Stephan

Hallo,

ich wärme das Thema nochmal auf.

Ich habe eine LMN V7.0 mit nur Linux-Mint-XFCE-Clients.
Das WLAN-Passwort (PSK) für die Schullaptops (alles Lenovo T430), die übers grüne Netz laufen, ist momentan im Image indem ich als linuxadmin den PSK im Netzwerkmanager eingegeben und diese Verbindung für alle Benutzer freigeben habe. Das funktioniert soweit gut.

Sobald ich aber das Image auf einem nicht WLAN-Client erstelle, kommen die T430 nicht mehr ins WLAN. Und andere WLAN-Geräte als die T430 kommen mit dem Image, welches ich auf einem T430 erstellt habe, nicht ins WLAN. Das scheint mir die selbe Problematik zu sein, die auch andere hier schon beschrieben haben.

Gibt es eine Möglichkeit, wie man alle WLAN-Geräte mit einem Image ins WLAN bekommt (am besten ohne die oben von zefanja beschriebenen Probleme)?

Mit besten Wünschen!

Stefan

Hat jemand verschiedene Linux-WLAN-Clients mit dem selben LINBO-Image im Einsatz?
Wie sind die Netzwerkeinstellungen der Clients konfiguriert?

Mit besten Wünschen
Stefan

Hallo Stefan,

nächste Woche bin ich wieder zu Hause, dann könnte ich nachschauen, wenn du es dann noch brauchst.
Welche Dateien sind für dich von Interesse?

Viele Grüße
Wilfried

Hallo Stefan,
wir haben bei uns an der Schule ubuntu 22.04 Clients mit nur einem Image. Das läuft, egal auf welchem Client ich das Image anfertige. Spezielle Einstellungen hab ich keine vorgenommen.
Wenn du magst, kann ich dir das Image auch zur Verfügung stellen.
Allerdings bin ich die nächsten zwei Wochen noch im Urlaub…
Gruß,
Mathias

Hallo Stefan,
ich hatte die selben Probleme und habe dann, weils vor den Projekttagen knapp war, für jede Hardware ein Image erstellt. Eine Idee ohne dass ich es geprüft hätte: Die Netzwerkkarte heißt evtl. nicht gleich bei unterschiedlicher Hardware?
LG
Max

Hallo Max, hallo Stefan,
stimmt, den Namen der Netzwerkkarte habe ich auf eth0 gesetzt. Leider weiß ich nicht mehr auswendig, wie ich das gemacht habe, kann ich aber in 1 1/2 Wochen nachschauen :slight_smile:
Gruß,
Mathias

Hallo und schon einmal Danke für die Hilfsangebote!

Da das Thema komplex ist, fasse ich mal zusammen.

Problem (DAS HABE ICH JA SCHON):

Netzwerk-Manager-PSK-Einstellungen sind nicht so im Image, dass verschiedene Client-Typen damit ins WLAN kommen

Lösungsansatz (DAS WÄRE FÜR MICH ERST EINMAL DAS WICHTIGSTE):

Mir wäre es wichtig, erst einmal herauszufinden, welche Manipulationen prinzipiell nötig sind um möglichst viele versch. WLAN-Clienttypen mit möglichst geringem Aufwand zu integrieren.


PS: Danach kann man sich überlegen, wie man die Manipulationen umsetzt (LINBO-Einstellungen // direkt ins Image oder postsync oder client-side hook script // rc.local oder cronjob @reboot oder ……)

Es gibt ja schon viele Lösungshinweise, de mich z.T zu weiteren Fragen führen…

- WLAN-Name und LAN-Name des Clients sollten unterschiedlich sein

??? Ist das in der LMNv7 nötig, unnötig oder sogar ungut?

- Netzwerk-Manager sollte weiter verwendbar sein, z.B. wegen Laptops, die außer Haus eingesetzt werden

=> Lösung per wpasupplicant… wäre eher nicht meine Wahl

- OS sollte vor dem Login schon mit WLAN verbunden sein

??? Reicht es dazu das OS direkt zu manipulieren?

z.B. PSK in rc.local eintragen (=> rc.local gilt als veraltet, Alternative könnte z.B. sein: cronjob @reboot, PSK auslesbar?)

und/oder

??? Müssen auch die Kernel-Parameter per LINBO angepasst werden?

z.B. durch Einträge in /etc/network/interfaces UND start.conf-Einträge für‘s LINBO-Image des OS

- Welche Einträge müssen gemacht werden?

- PSK sollte nicht aus Datei auszulesen sein

Hallo Stefan,
so, ich hab mal in meinen Clients nachgesehen:
ich habe in /etc/default/grub.d\init-select.cfg den Eintrag

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
Das bewirkt dass die erste Netzwerkkarte eth0 und die erste WLAN-Karte wlan0 heißt. Dann sollten deine Probleme behoben sein. Zumindest war das bei mir so.

Ach ja, die Laptops sollten vor der Anmeldung bereits im WLAN sein. Sonst kann die Anmeldung nicht klappen.

Die Parameter kannst du in der 7.1 ganz bequem in der Schulkonsole einztragen:

  1. Als global-admin anmelden.
  2. Unter Linbo4 → Gruppenname in die Kernel-Optionen net.ifnames=0 biosdevname=0 eintragen.

Das sollte es gewesen sein.
Gruß,
Mathias

Hallo Mathias,

Danke für die Anleitung!

Ich habe heute eine andere Lösung implementiert - aber nutze vielleicht zukünftig auch die von Dir zusätzlich.

Hier meine Doku:

MbW!
Stefan

1 „Gefällt mir“