eduroam meets NixOS
Via configuration.nix (oder wahlweise bei Nutzung von Home Manager via home.nix) folgende Pakete bereitstellen:
cacert, um das Zertifikatpaket für die Verbindung bereitzustellen. (Alternativ funktioniert die Verbindung anscheinend auch ohne Zertifikat.)
networking.wireless.enable
Das Passwort kann auch als Hash (vom Passwort) abgelegt werden. (Alternativ kann das Passwort auch als Klartext abgelegt werden.) Beim verwendeten Programm wpa_supplicant (durch die Option networking.wireless.enable
) wird der veraltete Standard MD4 für den Hash verwendet.
Der Hash vom Passwort kann sich einfach (einmalig) mit dem Paket für den früheren Standard von OpenSSL ermittelt werden.
Entweder einzeilige Kommandos zum (blinden) Einlesen vom Passwort, um den Hash vom Passwort zu ermitteln.
nix-shell -p openssl_legacy --run 'cat - | iconv -t utf16le | openssl md4'^D
^D
nix-shell -p openssl_legacy --run 'read -s blind_typed_password ; echo -n $blind_typed_passwd | iconv -t utf16le | openssl md4'
Oder einzeilige Kommandos mit dem Passwort das_Passwort
(zwischen Anführungsstriche), um den Hash vom Passwort zu ermitteln. [Achtung! Das Passwort wird vermutlich im Verlauf der Kommandozeile gespeichert werden.]
nix-shell -p openssl_legacy --run 'echo -n "das_Passwort" | iconv -t utf16le | openssl md4'
Weiter folgende Zeilen in der configuration.nix (wie folgend) oder noch smarter eduroam.nix mit Verweis in der configuration.nix:
networking.wireless = { enable = true; networks = { eduroam = { auth='' proto=RSN key_mgmt=WPA-EAP eap=PEAP identity="s23456@htw-dresden.de" # password="das_Passwort" password=hash:das_Passwort_als_Hash #domain_suffix_match="radius.htw-dresden.de" domain_suffix_match="radius.htw-dresden.de" anonymous_identity="69873312454253036930@htw-dresden.de" phase1="peaplabel=0" phase2="auth=MSCHAPV2" #ca_cert="/etc/ssl/certs/ca-bundle.crt" ca_cert="/etc/ssl/certs/ca-bundle.crt" ''; }; }; };
Abschließen mit nixos-rebuild switch
oder home-manager switch
.
Zack. Fertig. eduroam.
networking.networkmanager.enable
Alternativ zur deklarativen Beschreibung der Verbindung mit dem Netzwerk eduroam mit networking.wireless.enable
(wpa_supplicant) kann auch einfach "herkömmlich" networking.networkmanager.enable
(NetworkManager) verwendet werden.
Der Wert für "Anonyme Identität" ist 69873312454253036930@htw-dresden.de
.
Der Wert für "Benutzername" ist die (eigene) individuelle s-Nummer (im Bild s00000
) mit der Domain @htw-dresden.de
.
Der Wert für "Password" ist das (eigene) individuelle Passwort (für die (eigene) individuelle s-Nummer) (im Bild **************
). [Wer das eigene Passwort nicht kennt ist doof.]
Der Wert für "CA-Zertifikat" ist die Datei ca-bundel.crt
aus dem Ordner /etc/ssl/certs
.
Daraus sollte sich eine Datei für eine Profil der Verbindung für NetworkManager ergeben.
(Der Wert für uuid
sollte ein (nahezu beliebiger) durch Zufall generierter Wert sein.)
(Der Wert für interface
sollte die Bezeichnung der Schnittstelle für das kabellose Netzwerk sein, wie es beispielsweise mit dem Kommando ip a
oder dem Kommando ifconfig
auch zu finden ist.)
[connection]
id=eduroam
uuid=37779d8b-d2f1-479e-a677-f1059ac5006a
type=wifi
interface-name=wlp0s20f3
[wifi]
mode=infrastructure
ssid=eduroam
[wifi-security]
auth-alg=open
key-mgmt=wpa-eap
[802-1x]
anonymous-identity=69873312454253036930@htw-dresden.de
ca-cert=/etc/ssl/certs/ca-bundle.crt
eap=ttls;
identity=s00000@htw-dresden.de
password=**************
phase2-auth=mschapv2
[ipv4]
method=auto
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
Siehe auch
- ((GitHub) NixOS) /nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
- ((GitHub) NixOS) /nixpkgs/nixos/modules/services/networking/networkmanager.nix