network-manager speichert Passwort nicht

Eine kleine Unschönheit beim Upgrade hab ich beim NetworkManager unter xubuntu festgestellt.

Ich nutze Zertifikate um mich an meinem WLAN anzumelden (Radius). Diese setzen ein Password vorraus (anders lässt es der NM eigendlich nicht zu). Leider war das NM-Applet partou nicht in der Lage, eine ordentliche Config-File zu erzeugen, bei der das Password so hinterlegt wurde, dass das WLAN noch vor der Anmeldung verbunden werden konnte.

Dem konnte ich nur manuell beikommen. Unter /etc/NetworkManager/sysem-connections/ liegen die Config-Files. Die entsprechende Datei öffnen und manuell den passenden Parameter setzten
private-key-password=SuperSicher;)

Squeezebox und Radius

Betreibt man privat einen Radius-Server und will seine Squeezebox mittels EAP-TLS ins Netzwerk einbinden, wird man vom der geführten Konfiguration darauf hingewiesen, dass dieser Modus nicht unterstützt wird. Das ist gelinde gesagt Bullshit. Die Entwickler waren sich nur zu fein ein entsprechenden Konfigurationstool anzubieten.

Bevor es losgeht, braucht man erst mal die entsprechenden Client-Certs. Leider unterstützt der wpa_supplicant nicht alle Formattypen, explizit müssen die Client-Certs im DER-Format sein. Beim Root-CA-Cert ist es egal.

Wer zb aus dem PEM Format ein DER machen will, kann das wie folgt machen

openssl x509 -in newcert.pem -inform PEM -out newcert.der -outform DER #Konvertiert das Signierte ClientCert
openssl rsa -in newkey.pem -inform PEM -out newkey.der -outform DER #Konvertiert den Client-Key

Ist das erledigt muss man die Squeezebox erst mal mittels Kabel anschließen und per SSH auf die Box zugreifen. Am besten unter /etc/certs die erzeugten certs (inklusive root-ca) per scp ablegen.

Anschließend nimmt man sich die /etc/wpa_supplicant.conf vor und legt wie folgt ein Netzwerk an (oder modifiziert es):

network={
    ssid="SSID"
    scan_ssid=1
    #proto=RSN  #WPA2
    key_mgmt=WPA-EAP
    pairwise=CCMP
    group=CCMP
    eap=TLS
    identity="frei zu wählen"
    ca_cert="/etc/cert/root.ca.pem"
    client_cert="/etc/cert/client-cert.der"
    private_key="/etc/cert/client-key.der"
    private_key_passwd="password"
}

Das ist aber nur die halbe Miete, leider muss man die Netzwerkfähig auch noch manuell vornehmen. Die GUI ist nicht nicht der Lage von einem Halb-Vorkonfigurierten WLAN eine DHCP Request zu machen.

Also noch schnell in die /etc/network/interfaces und das Netzwerk hinterlegt/angepasst

auto lo
iface lo inet loopback

mapping eth1
        script /etc/network/if_mapping

iface eth0 inet dhcp
        script /etc/network/udhcpc_action
auto eth1=SSID
iface SSID inet dhcp
        script /etc/network/udhcpc_action

Nach einem Neustart der Box sollte sich das Gerät ordnungsgemäß am Radius-Server anmelden.

Update:
Squeezeboxen unterstützen nur eine KeyLength von 2048bit