Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
de:eduroam:easyroam [2024/11/22 17:11] – [Installation der easyroam Profile auf Linux Geräten ohne Desktop Umgebung (wpa-supplicant only)] Ralf Paffrath | de:eduroam:easyroam [2024/12/01 11:28] (aktuell) – [Installation der eduroam Profile auf ANDROID, wenn alle Stricke reißen] Ralf Paffrath |
---|
In eduroam gibt es neben anderen Verfahren zur Anmeldung die Authentifizierungsmethode EAP-TLS. Bei dieser Methode kommen ausschließlich Client/Nutzer Zertifikate für die Anmeldung zum Einsatz. Diese Zertifikate für eduroam können die eduroam Nutzenden auf www.easyroam.de nur generieren, wenn sie im Besitz einer gültigen DFN-AAI IdP Kennung mit Opt-In sind. Die eduroam Client/Server Zertifikate sind Teil einer "Self-Signed PKI" und können nur in eduroam eingesetzt werden. Der easyroam Server speichert ausschließlich nur die Pairwise - ID (Pseudonym) des DFN-AAI IdP Accounts und die Seriennummer des Client/Nutzer Zertifikats. Letzteres ist auch Teil der Roaming Identität. Eine Besonderheit gegenüber aktuellen EAP-TLS Angeboten ist, dass die eduroam Nutzenden nicht mehr mit Namen im Zertifikat erkennbar sind. Somit ist es unmöglich Bewegungsprofile der eduroam Nutzenden zu erstellen. Jedoch ist es möglich, eine Zuordnung zwischen Pairwise - ID und Zertifikats-Seriennummer herzustellen und den eduroam Nutzenden eindeutig mit einer Person in Verbindung zu bringen. Somit ist man nicht generell anonym in eduroam unterwegs, wie das auch bisher der Fall ist. | In eduroam gibt es neben anderen Verfahren zur Anmeldung die Authentifizierungsmethode EAP-TLS. Bei dieser Methode kommen ausschließlich Client/Nutzer Zertifikate für die Anmeldung zum Einsatz. Diese Zertifikate für eduroam können die eduroam Nutzenden auf www.easyroam.de nur generieren, wenn sie im Besitz einer gültigen DFN-AAI IdP Kennung mit Opt-In sind. Die eduroam Client/Server Zertifikate sind Teil einer "Self-Signed PKI" und können nur in eduroam eingesetzt werden. Der easyroam Server speichert ausschließlich nur die Pairwise - ID (Pseudonym) des DFN-AAI IdP Accounts und die Seriennummer des Client/Nutzer Zertifikats. Letzteres ist auch Teil der Roaming Identität. Eine Besonderheit gegenüber aktuellen EAP-TLS Angeboten ist, dass die eduroam Nutzenden nicht mehr mit Namen im Zertifikat erkennbar sind. Somit ist es unmöglich Bewegungsprofile der eduroam Nutzenden zu erstellen. Jedoch ist es möglich, eine Zuordnung zwischen Pairwise - ID und Zertifikats-Seriennummer herzustellen und den eduroam Nutzenden eindeutig mit einer Person in Verbindung zu bringen. Somit ist man nicht generell anonym in eduroam unterwegs, wie das auch bisher der Fall ist. |
| |
Die Server Software ist eine .NET Entwicklung in C-Sharp geschrieben. Es wurde bewusst auf PHP verzichtet, da PHP nicht die Server Sicherheit bot, die an die Server Software gelegt wurde. Der Server unterstützt aktuell drei Sprachen: Deutsch, Englisch und Chinesisch (wird zur Zeit überarbeitet). | Die Server Software ist eine .NET Entwicklung in C-Sharp geschrieben. Es wurde bewusst auf PHP verzichtet, da PHP nicht die Server Sicherheit bot, die an die Server Software gelegt wurde. Der Server unterstützt aktuell zwei Sprachen: Deutsch und Englisch. |
| |
Die Anleitungen auf einem Blick finden die easyroam Nutzenden [[https://doku.tid.dfn.de/de:eduroam:easyroam-anleitungen|hier]]. | Die Anleitungen auf einem Blick finden die easyroam Nutzenden [[https://doku.tid.dfn.de/de:eduroam:easyroam-anleitungen|hier]]. |
Domain: easyroam.eduroam.de | Domain: easyroam.eduroam.de |
Nutzerzertifikat auswählen: Dateinamen, den man, s. oben, beim Einlesen der PKCS12-Datei vergeben hat, auswählen, z.B. MyAndroidCert</code> | Nutzerzertifikat auswählen: Dateinamen, den man, s. oben, beim Einlesen der PKCS12-Datei vergeben hat, auswählen, z.B. MyAndroidCert</code> |
<alert>ACHTUNG: Als Identität gibt man die Seriennummer des easyroam Pseudozertifikats an, gefolgt vom easyroam Realm der EIGENEN!!! Einrichtung. | <alert>ACHTUNG: Die hier aufgeführten Beispiele sind als Illustration gedacht und sollten keinesfalls unreflektiert via copy + paste übernommen werden! \\ \\ Als Identität gibt man die Seriennummer des easyroam Pseudozertifikats an, gefolgt vom easyroam Realm der EIGENEN!!! Einrichtung. |
Beispiel: Wenn vorher der Realm anonymous@dfn.de oder anonymous@uni-greifswald.de eingegeben wurde, muss nun vor dem dfn.de oder vor uni-greifswald.de ein easyroam-pca stehen, mit Angabe der Seriennummer des Pseudozertifikats, z.B. 12345678910@easyroam-pca.dfn.de oder 12345678910@easyroam-pca.uni-greifswald.de. Die Seriennummer und der Realm, also 12345678910@easyroam-pca.dfn.de und 12345678910@easyroam-pca.uni-greifswald.de sind in der Anleitung hier nur Beispiele, bitte nicht übernehmen!!! | Beispiel: Wenn vorher der Realm anonymous@dfn.de oder anonymous@uni-greifswald.de eingegeben wurde, muss nun vor dem dfn.de oder vor uni-greifswald.de ein easyroam-pca stehen, mit Angabe der Seriennummer des Pseudozertifikats, z.B. 12345678910@easyroam-pca.dfn.de oder 12345678910@easyroam-pca.uni-greifswald.de. Die Seriennummer und der Realm, also 12345678910@easyroam-pca.dfn.de und 12345678910@easyroam-pca.uni-greifswald.de sind in der Anleitung hier nur Beispiele, bitte nicht übernehmen!!! |
Die Identität ist in der Regel der CN (Common Name) des easyroam Pseudozertifikats. Die Übereinstimmung von Identität und CN im easyroam Pseudozertifikat wird vom RADIUS Server geprüft. Ohne korrekte Eingabe der Identität ist keine Anmeldung in eduroam via easyroam möglich. | Die Identität ist in der Regel der CN (Common Name) des easyroam Pseudozertifikats. Die Übereinstimmung von Identität und CN im easyroam Pseudozertifikat wird vom RADIUS Server geprüft. Ohne korrekte Eingabe der Identität ist keine Anmeldung in eduroam via easyroam möglich. |
| |
==== Installation der easyroam Profile auf Linux Geräten ==== | ==== Installation der easyroam Profile auf Linux Geräten ==== |
| === Extrahieren der erforderlichen Zertifikate aus der easyroam PKCS12 Datei === |
Die Nutzung von easyroam ist selbstverständlich auch auf Linux Derivaten möglich. Leider gibt es keine allgemein gültige Anleitung. Im folgenden wird beschrieben wie die einzelnen Komponenten, die bei einer manuellen Konfiguration von easyroam auf Linux Geräten benötigt werden, aus dem easyroam Portal gewonnen werden können: | Die Nutzung von easyroam ist selbstverständlich auch auf Linux Derivaten möglich. Leider gibt es keine allgemein gültige Anleitung. Im folgenden wird beschrieben wie die einzelnen Komponenten, die bei einer manuellen Konfiguration von easyroam auf Linux Geräten benötigt werden, aus dem easyroam Portal gewonnen werden können: |
| |
echo "Done." | echo "Done." |
</code> | </code> |
| === Verwendung der extrahierten easyroam Profile am Beispiel des Netzwerk Managers mit der Bezeichnung netctl === |
6. Es finden sich in der Tat Anleitungen im Netz, um EAP-TLS auf diversen Network Managern aus den angegebenen Komponenten zu konfigurieren. Exemplarisch wird anhand des CLI netctl auf Archlinux gezeigt wie EAP-TLS und damit easyroam/eduroam auf einem Linux Gerät konfiguriert werden kann. Folgendes wird vorausgesetzt: | Folgendes wird vorausgesetzt: |
* easyroam_extract.sh aufgerufen | * easyroam_extract.sh aufgerufen |
* netctl | * netctl |
'eap=TLS' | 'eap=TLS' |
'proto=WPA RSN' | 'proto=WPA RSN' |
'identity="76673789883214453797@easyroam.realm_der_einrichtung.tld"' # <---- Hier muss der CN (Common Name), also der Wert der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!! | 'identity="76673789883214453797@easyroam.realm_der_einrichtung.tld"' # <---- Hier muss der CN (Common Name), also der Wert aus der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!! |
'client_cert="/etc/easyroam-certs/easyroam_client_cert.pem"' | 'client_cert="/etc/easyroam-certs/easyroam_client_cert.pem"' |
'private_key="/etc/easyroam-certs/easyroam_client_key.pem"' | 'private_key="/etc/easyroam-certs/easyroam_client_key.pem"' |
) </code> | ) </code> |
Mit Root Rechten wird folgendes Kommando aufgerufen:<code>netctl start easyroam </code>Soll permanent easyroam installiert werden, so wird folgendes Kommando aufgerufen:<code>netctl enable easyroam</code> | Mit Root Rechten wird folgendes Kommando aufgerufen:<code>netctl start easyroam </code>Soll permanent easyroam installiert werden, so wird folgendes Kommando aufgerufen:<code>netctl enable easyroam</code> |
| |
| === Verwendung der extrahierten easyroam Profile am Beispiel des Netzwerk Managers mit der Bezeichnung NetworkManager (nmcli) === |
| |
| Nachdem die Schritte 1. bis 5. ausgeführt und die easyroam Zertifikate extrahiert wurden, wird folgendes Script aufgerufen, welches auf der Grundlage des {{ :de:eduroam:easyroam_nmcli.sh |Script}} der [[https://rz.uni-greifswald.de/dienste/technische-infrastruktur/wlan-eduroam/linux/|Universität Greifswald]] angepasst wurde: |
| <code> |
| #!/bin/bash |
| |
| # Usage: bash easyroam_nmcli.sh |
| |
| set -e |
| |
| # check if we are root |
| |
| if [[ $EUID -ne 0 ]]; then |
| echo "You must be root to run easyroam_nmcli.sh." 1>&2 |
| exit 100 |
| fi |
| |
| # check for easyroam-cert files |
| |
| [ -d /etc/easyroam-certs ] && ConfDir=/etc/easyroam-certs || { echo "Aborted, run easyroam_extract.sh first!"; exit 1; } |
| [ -f /etc/easyroam-certs/easyroam_client_cert.pem ] || { echo "Aborted, client_cert missing."; exit 1; } |
| [ -f /etc/easyroam-certs/easyroam_root_ca.pem ] || { echo "Aborted, root_ca missing."; exit 1; } |
| [ -f /etc/easyroam-certs/easyroam_client_key.pem ] || { echo "Aborted, client_key missing."; exit 1; } |
| [ -f /etc/easyroam-certs/identity ] && Identity=$(cat "$ConfDir/identity") || { echo "Aborted, identity missing"; exit 1; } |
| |
| Pwd="pkcs12" |
| # check for nmcli |
| |
| if ! type nmcli >/dev/null 2>&1; then |
| echo "" |
| echo "ERROR: nmcli not found!" >&2 |
| echo "This wizard assumes that your network connections are NOT managed by NetworkManager." >&2 |
| echo "" |
| exit 1 |
| fi |
| |
| # check for wifi device |
| |
| if ! nmcli -g TYPE,DEVICE device | grep wifi >/dev/null; then |
| echo "" |
| echo "ERROR: Unable to find any wifi device!" >&2 |
| echo "" |
| exit 1 |
| fi |
| |
| |
| # configure parameters |
| |
| WIntName=$(iw dev | awk '$1=="Interface"{print $2}') |
| |
| WOn="GENERAL.STATE:" |
| |
| WLANName="eduroam" |
| |
| ALT_SUBJECT="DNS:easyroam.eduroam.de" |
| |
| # TLS_1.3 |
| TLS_VERSION="0x100" |
| |
| # Remove existing connections |
| |
| nmcli connection show | \ |
| awk '$1==c{ print $2 }' c="$WLANName" | \ |
| xargs -rn1 nmcli connection delete uuid |
| |
| # switch wlan on |
| |
| nmcli dev show "$WIntName" | \ |
| awk '$1==c{ print $2 }' c="$WOn" | \ |
| xargs -rn1 nmcli radio wifi on |
| |
| # Create new connection |
| |
| nmcli connection add \ |
| type wifi \ |
| con-name "$WLANName" \ |
| ssid "$WLANName" \ |
| -- \ |
| wifi-sec.key-mgmt wpa-eap \ |
| 802-1x.eap tls \ |
| 802-1x.altsubject-matches "$ALT_SUBJECT" \ |
| 802-1x.phase1-auth-flags "$TLS_VERSION" \ |
| 802-1x.identity "$Identity" \ |
| 802-1x.ca-cert "$ConfDir/easyroam_root_ca.pem" \ |
| 802-1x.client-cert "$ConfDir/easyroam_client_cert.pem" \ |
| 802-1x.private-key-password "$Pwd" \ |
| 802-1x.private-key "$ConfDir/easyroam_client_key.pem" |
| </code> |
| <alert>Im File /etc/NetworkManager/NetworkManager.conf kann mit \\ |
| \\ |
| [device]\\ |
| wifi.scan-rand-mac-address=yes \\ |
| \\ |
| die Randomisierung der MAC-Adresse konfiguriert werden.</alert> |
| |
| |
| |
| |
==== Installation der easyroam Profile auf Linux Geräten ohne Desktop Umgebung (wpa-supplicant only) ==== | ==== Installation der easyroam Profile auf Linux Geräten ohne Desktop Umgebung (wpa-supplicant only) ==== |
pairwise=CCMP | pairwise=CCMP |
group=CCMP | group=CCMP |
identity="12345678910111213abcd@realm_der_einrichtung.tld" # <---- Hier muss der CN (Common Name), also der Wert der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!! | identity="12345678910111213abcd@realm_der_einrichtung.tld" # <---- Hier muss der CN (Common Name), also der Wert aus der Datei /etc/easyroam-certs/identity s. Beispiel links. Auf keinen Fall die Pairwise-ID eingeben!!!!! |
altsubject_match="DNS:easyroam.eduroam.de" | altsubject_match="DNS:easyroam.eduroam.de" |
ca_cert="/etc/easyroam-certs/easyroam_root_ca.pem" | ca_cert="/etc/easyroam-certs/easyroam_root_ca.pem" |