Ubuntu-Clients über "workstations" an das w-LAN grün anbinden

Hallo,

und Danke für die Infos! Ich habe damit einiges ausprobieren können und seit heute ebenfalls eine Lösung im Einsatz mit:

/usr/bin/nmcli dev wifi connect "SSID" password "Passwort"


Eckdaten:

  • Server: LMN_v7.0
  • Clients: Linux-Mint-XFCE_20.3, versch. WLAN-Karten

Lösungsansatz:

  • Beim Booten des Linux-OS wird die WLAN-Verbindung im network-manager eingetragen - automatisch mit der Bezeichnung der jeweiligen Netzwerkkarte *1)
  • Dadurch ist die WLAN-Verbindung bereits beim Login verfügbar

Umsetzung:

  • Skript „60_cw.sh“, welches beim Booten eine WLAN-Verbindung in den network-manager einträgt.
    Dadurch sollte der Eintrag bei allen Netzwerkkarten-Bezeichnungen funktionieren (2 getestet).
    Es sind keine weiteren Anpassungen nötig z.B. bei LINBO *2)
  • Das Ausführen beim Booten kann man z.B. per Hook-Skript (client-side onBoot) machen oder auch per postsync. Ich verwende übrigens nur noch Hook-Skripte und habe das Skript auf den Client daher kopiert nach: /etc/linuxmuster-linuxclient7/onBoot.d/
    Hook scripts · linuxmuster/linuxmuster-linuxclient7 Wiki · GitHub
  • Aus dem network-manager sind die WLAN-Zugangsdaten nur für Nutzer mit root-Rechten auslesbar (GUI, nmcli device wifi show-password und Dateien getestet) .
  • Die WLAN-Zugangsdaten für das Skript werden gesondert hinterlegt und sind auch nur für Nutzer mit root-Rechten auslesbar (getestet).
  • Zum Eintragen der WLAN-Zugangsdaten gibt es ein zweites, nur einmal anzuwendendes Skript „cw_SSID_PSK_speichern.sh“
  • Beim Erstellen des Images gelangt der WLAN-Eintrag des Image-PCs in die Konfig-Dateien des network-managers unter /etc/NetworkManager/system-connections/. Das ist nicht problematisch, da weitere Verbindungen zum selben Netzwerk einfach parallel angelegt werden.
  • Mehr Infos direkt in den Skripten…

*1) Eine alternative Lösung ist, allen versch. Netzwerkkarten nur eine Bezeichnung zuzuweisen, so dass der eine Eintrag im network-manager, den man als linuxadmin macht, für alle passt. (Man könnte evtl. auch beide Lösungen gemeinsam einsetzen.)

*2) Dies hat u.a. @rettich hier beschrieben:


Und hier die Skripte:

1. 60_cw.sh

#!/bin/bash

# client-side onBoot-Skript linuxmuster.net 7.0
# _cw.sh
#
# connect-wifi-Skript um einem Client Zugang zum WLAN zu ermöglichen
#
# Zugehöriges Skript:
# cw_SSID_PSK_speichern.sh
#
# Mehr Infos:
# https://github.com/linuxmuster/linuxmuster-linuxclient7/wiki/Hook-scripts
#
#
# Anleitung:
# Kopieren Sie das Skript nach 
# /etc/linuxmuster-linuxclient7/onBoot.d/
#
# und passen Sie die Rechte an z.B. mit:
# sudo chown root:root /etc/linuxmuster-linuxclient7/onBoot.d/dateiname
# sudo chmod 700 /etc/linuxmuster-linuxclient7/onBoot.d/dateiname
#
#
# Linux Mint 20.3 Xfce 64bit
# 2023-08-17
# GPL v3
# Sen


/usr/bin/nmcli dev wifi connect "$(openssl base64 -d -in /usr/local/bin/.cw_ss)" password "$(openssl base64 -d -in /usr/local/bin/.cw_ps)"


exit

2. cw_SSID_PSK_speichern.sh

#!/bin/bash

# Client-root-Skript
# cw_SSID_PSK_speichern.sh
#
# Zugehörig zu Skript:
# _cw.sh
#
# Hinterlegt verschlüsselt ihre WLAN-Anmeldedaten für das connect-wifi-Skript _cw.sh
#
#
# Anleitung:
# Ersetzen Sie unten WLAN-Passwort und WLAN-Name mit ihren Daten,
# machen Sie das Skript ausführbar
# und führen Sie dieses Skript als root im Terminal aus.
# Löschen Sie danach unbedingt das Skript vom Client!
#
#
# Linux Mint 20.3 Xfce 64bit
# 2023-08-17
# GPL v3
# Sen


### Ihre WLAN-Anmeldedaten

PSK="WLAN-Passwort"

SSID="WLAN-Name"


### Programm

sudo echo -n "$SSID" | openssl enc -base64 > /usr/local/bin/.cw_ss && sudo chown root:root /usr/local/bin/.cw_ss && sudo chmod 600 /usr/local/bin/.cw_ss

sudo echo -n "$PSK" | openssl enc -base64 > /usr/local/bin/.cw_ps && sudo chown root:root /usr/local/bin/.cw_ps && sudo chmod 600 /usr/local/bin/.cw_ps


exit

Beste Wünsche!
Stefan