20 Feb 2021

Eduroam mit Zertifikaten und wpa_supplicant

Viele Universitäten bieten das gemeinsame Netzwerk eduroam an. Grundsätzlich gibt es zwei Arten, wie man sich hiermit verbinden kann: Mit Benutzer und Passwort oder mit Benutzer und Zertifikat. Welche Methode genutz wird, hängt von der jeweiligen Heimatuniversität ab, an der ihr studiert. Zur Methode mit Passwort gibt es viele Beschreibungen im Internet. Allerdings ist es schwer etwas zu finden, Wie man sich mit Zertifikaten ohne grafische Oberfläche und ohne Netzwerk-Manager mit Linux mit eduroam verbindet. An sich ist das relativ einfach, wie ich im Folgenden am Beispiel von Debian 10 beschreiben werde. Das Verfahren funktioniert mit Ubuntu oder einem Raspberry Pi identisch, und auf anderen Distributionen vermutlich ähnlich.

Zunächst benötigt man das CA-Zertifikat (beispielsweise das der Telekom, je nach Universität), das Benutzerzerfikat mit Passwort und eure Benutzerkennung. Diese Daten bekommt ihr von eurer Universität. Legt das CA-Certifikat unter /etc/ssl/eduroam/telekom.crt und das Benutzerzertifikat unter /etc/ssl/eduroam/Network_Certificate.p12 ab. Das Zertifikatspasswort ist im weiteren Beispiel topsecret und die Benutzerkennung username@uni-musterstadt.de.

Zum Einrichten müsst ihr die Pakete wpasupplicant und openssl installieren:

root@computer $ apt-get install wpasupplicant openssl

Ferner benötigt ihr die Treiber für euren WLAN-Empfänger. Falls sie nicht mit eurem System vorinstalliert sind, ist das Paket firmware-misc-nonfree ein guter Ausgangspunkt, ansonsten kann hier unter dem Stichwort debian und eurer WLAN-Karte eure Lieblingssuchmaschine weiterhelfen. Nach der Treiberinstallation müsst ihr den Rechner unter Umständen neu starten.

Unter /etc/wpa_supplicant/wpa_supplicant.conf legt ihr folgende Datei an, passt dabei die identity und das private_key_passwd an:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE

network={
        ssid="eduroam"
        key_mgmt=WPA-EAP
        eap=TLS
        identity="username@uni-musterstadt.de"
        ca_cert="/etc/ssl/eduroam/telekom.crt"
        private_key="/etc/ssl/eduroam/Network_Certificate.p12"
        private_key_passwd="topsecret"
}

Nutzt den Befehl ip link um herauszufinden, wie eure WLAN-Karte heißt, im Beispiel ist es wlan0. Mit diesem Namen müsst ihr noch die Datei /etc/network/interfaces folgende Zeilen ergänzen (bzw. ersetzen, falls sie bereits vorhanden sind):

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

Zuletzt startet den Netzwerkdienst (oder den ganzen Rechner) neu:

root@computer $ systemctl restart networking.service