Domain angeben bei Android 11 unifi Enterprise WPA2

Hallo zusammen,

man braucht für den RADIUS keine LE. Es wird auch ausdrücklich empfohlen, für Radius keine öffentlichen Zertifikate zu nehmen.

In der neuesten Android 11 Version musste ich für die RADIUS Konfiguration für PEAP-MSCHAPv2 sogar die CA importieren, mit der das RADIUS-Server-Zertifikat erstellt wurde. Sonst schlägt die Anmeldung am RADIUS mit dem Fehler „unknown CA“ fehlt. Man hat die vorher mögliche Funktion „nicht prüfen“ quasi vollständig deaktiviert.

Viele Grüße
Thomas

Hallo Thomas,

Wie geht das? Was muss ich da machen?

Ich habe inzwischen versucht mit openssl ein selbstsiginiertes Zertifikat für radius.linuxmuster.lan zu erstellen und key- und crt-file dem Radius unterzujubeln. Nachdem ich Rechte und Besitzer der key-Datei angepasst habe, ist damit der Radius neu gestartet. Anmeldung mit dem Handy und der Domain radius.linuxmuster.lan klappt aber weiterhin nicht :(.
VG Daniel

Hallo Daniel,

wie man die CA importiert, steht hier beschrieben. Zertifikate hinzufügen und entfernen - Pixel-Hilfe

Welche CA du importieren musst, hängt davon ab, welche Zertifizierungsstelle das Zertifikat für den RADIUS-Server erstellt hat. Läuft dein RADIUS auf dem lmn7-Server, liegt das Zertifikate vermutlich unter /etc/linuxmuster/ssl. Mit openssl x509 -in /etc/linuxmuster/ssl/cacert.crt -text -noout kannst du das Zertifikat prüfen.

Wie bekommt man das aufs Smartphone? z.B. in die Nextcloud hochladen und dann mit dem Handy abrufen und entsprechend Anleitung importieren.

Viele Grüße
Thomas

PS: Zum Troubleshooten den freeradius-Dienst mit systemctl stop freeradius.service anhalten und mit freeradius -X starten. Dann siehst du die detaillierte Ausgabe mit allen Fehlern.

Hallo Thomas,

danke für deine Tipps. Jetzt läuft es :slight_smile:

Ich habe in der Radiusdatei „eap-conf“ private_key_file=…/server.key.pem und certificate_file=…/server.cert.pem und ca_file=…/cacert.crt.

Auf Leserechte für ssl-cert (chmod 640 oder 644) für die Key-Datei achten. Danach Radius neustarten.

Die cacert.crt auf dem Handy importiert und installiert und dann klappt die Anmeldung mit der Domäne linuxmuster.lan.

VG Daniel

PS: Natürlich bin ich auf lmn7 :wink:

Ich bin auch gerade am Aufsetzen eines RADIUS-Servers für mein privates WLAN. Ich verwende dafür zwar kein lmn, aber für folgende RADIUS-Konfiguration (bei der auch gleich das VLAN 34 zugewiesen wird)…:

/etc/freeradius/3.0/mods-config/files/authorize:

[...]
"user123" Cleartext-Password := "password123"
	Tunnel-Type = 13,
	Tunnel-Medium-Type = 6,
	Tunnel-Private-Group-ID = 34
[...]

…verwende ich folgende Einstellungen unter Android 11:

EAP-Methode: TTLS
Phase 2-Authentifizierung: MS-CHAP v2
CA-Zertifikat: example.lan
Online-Zertifikatstatus: Nicht validieren
Domain: example.lan
Identität: user123
Anonyme Identität: [leer lassen]
Passwort: password123

Für die Sicherheit des WPA2-Enterprise-WLANs (und insbesondere der Clients) sind zwei Punkte wichtig:

  1. Benutze unbedingt WLAN-CA-Zertifikate am Client!
  2. Wie @tjordan geschrieben hat, sollte dabei für die WLAN-Authentifizierung ein privates, selbst-signiertes Zertifikat verwendet werden. Das könnte ja auf der Schul-Homepage öffentlich zum Download angeboten werden, es braucht nicht geheim zu sein.

Der Vollständigkeit halber hier noch die übrige RADIUS-Konfiguration als Beispiel:

AP-Konfiguration unter /etc/freeradius/3.0/clients.conf:

[...]
client ap-technikraum {
        ipaddr                  = 10.34.0.10
        secret                  = secret123
        shortname               = ap-technikraum
}
[...]

Zertifikat-Konfiguration unter /etc/freeradius/3.0/mods-available/eap:

eap {
        [...]
        tls-config tls-common {
        	    [...]
                private_key_file = /etc/freeradius/3.0/certs/radius1.example.lan.key
                certificate_file = /etc/freeradius/3.0/certs/radius1.example.lan.chain.pem
                ca_file = /etc/freeradius/3.0/certs/ca.pem
                dh_file = /etc/freeradius/3.0/certs/freeradius.example.lan_dh_4096.pem
                [...]
        }
        [...]
}

Ich verwende ein Intermediate-Zertifikat, das dann auch in der unter certificate_file angegebenen Datei enthalten sein muss.

Hallo Thomas,

ich würde gerne ein eigenes Cert für den Radius erstellen. Daniel hat ja (so wie es mir scheint) das vorhandene Cert der lmn auch für Radius verwendet.
Nun kann ich die vorhandene CA verwenden um das cert zu erstellen (also die gleiche CA wie das lmn Cert): kann mir jemand sagen, wie die Zeile dann aussehen muss?

openssl x509 …
?
Das wäre super.
Dann schreib ich auch am Ende eine Anleitung hier rein, wie ich das genau gemacht habe.

Ansonsten würde ich die Dateien des normalen certs in das freeradius Verzeichniss kopieren und die Radius eap conf auf diese zeigen lassen.
Die cacert.crt biete ich dann zum Download an (mit short URL).

LG

Holger

Hallo Holger,

ich schreibs mal hier rein:

Grundlage ist immer ein privater Schlüssel:

openssl genrsa -out radius-key.pem 4096

Hier macht es Sinn ein Password zuvergeben, welches der radius beim Start in der eap.conf unter /mods-enabled abfragt.

Auf Grundlage des eben erstellten Schlüssels wird ein neuer Zertifikatsantrag erstellt:

openssl req -new -key radius-key.pem -out radius.csr -sha512

Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]: Baden-Wuerttemberg
Locality Name (eg, city) []: Stuttgart
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Musterschule
Organizational Unit Name (eg, section) []: EDV
Common Name (e.g. server FQDN or YOUR name) []:radius.linuxmuster.lan

ACHTUNG!! Hier ist es wichtig UNBEDINGT eine sinnvolle Domain zu verwenden. Weil diese Domain von den Nutzern bei der WLAN-Konfiguration angegeben sein muss. Ein Kurzname funktioniert hier nicht mehr.

Email Address []: admin@linuxmuster.lan
Please enter the following ‚extra‘ attributes
to be sent with your certificate request
A challenge password []:whatever
An optional company name []:MS Stuttgart

Mit folgendem Befehl wird das Zertifikat „radius.pem“ ausgestellt und über die ca signiert, das 365 Tage lang gültig ist:

openssl x509 -req -in radius.csr -CA /etc/linuxmuster/ssl/cacert.pem -CAkey /etc/linuxmuster/ssl/cakey.pem -CAcreateserial -out radius.pem -days 365 -sha512

Zur Generierung benötigt man ebenfalls das Kennwort für den cakey!! (steht in /etc/linuxmuster/.secret/cakey)

Viele Grüße
Thomas

Hallo Thomas,

super: vielen Dank.
Ich hab mich langsam schon ein wenig eingelsen.
Bei deiner Anleitung wird also keine eigene CA erstellt, sondern die der lokalen lmn7 verwendet: das ist mir recht.
Ich würde den radius.pem aber mit einer viel längeren Zeit erstellen: 4 Jahre fände ich gut … wobei: die Geräte, die die cacert.crt importiert haben, meckern ja nciht mehr, wenn ich ein neues .pem erstelle und dem radius unterschiebe … nur die anderen … aber wer will schon jedes Jahr eine neue .pem erstellen.

Das mit dem Common Name ist mir klar: das ist der Knackpunkt.
Und deswegen will ich ja ein eigenes cert/key Paar (also .pem) erstellen: damit da radius.MEINEDOMAIN.LAN steht.

vielleicht muss ich für eap noch aus der .pem das .crt und den .key rausholen: mal sehen. Das ist nur ein Einzeiler (ich glaub eap.conf will crt und key und nciht nur .pem… aber vielelciht erinnere ich das auch falsch).

Tausend Dank: ich probier das übers Wochenende aus.

LG

Holger

Hallo Holger,

mit den Laufzeiten der Zertifikate ist das so eine Sache. Ich meine, mal gelesen zu haben das neuere Apple Releases eine Laufzeitbegrezung bei Zertifikaten haben.

Viele Grüße
Thomas

Hi,

Dort steht aber auch:

This change will not affect certificates issued from user-added or administrator-added Root CAs.

VG, Dorian

Hallo Dorian,

Additionally, all TLS server certificates issued after July 1, 2019 (as indicated in the NotBefore field of the certificate) must follow these guidelines:

  • TLS server certificates must contain an ExtendedKeyUsage (EKU) extension containing the id-kp-serverAuth OID.
  • TLS server certificates must have a validity period of 825 days or fewer (as expressed in the NotBefore and NotAfter fields of the certificate).

Connections to TLS servers violating these new requirements will fail and may cause network failures, apps to fail, and websites to not load in Safari in iOS 13 and macOS 10.15.

So ganz eindeutig ist das nicht: Hier steht maximal 825 Tage oder weniger…unabhängig davon ob es user-imported oder administartor imported ist.

Besser auf Nummer sicher gehen!

Viele Grüße
Thomas

Mir ist lieber: Ich weiß ich muss jedes Jahr im Februar Zertifikate tauschen, als wenn plötzlich Leute schreiend vor mir stehen, ich erst den Fehler suchen muss…weil bei manchen gehts und bei manchen nicht und es stellt sich raus, irgendwelche Clients mögen das Zertifikat nicht mehr und ich muss dann sowieso tauschen.

Hallo Thomas,

ich hab den key und die csr Datei erstellt und dann mit deiner Zeile

openssl x509 -req -in radius.csr -CA /etc/linuxmuster/ssl/cacert.pem -CAkey /etc/linuxmuster/ssl/cakey.pem -CAcreateserial -out radius.pem -days 365 -sha512

die radius.pem.
Sehe ich es richtig, dass ich damit die ca vom server verwendet habe um mein cert selbst zu signieren?
Ich muss also die Datei /etc/linuxmuster/ssl/cacert.crt
vom server nehmen und am Client importieren. korrekt?

Das ist ja auch die, die ich in der eap Datei angebe unter:
ca_file = /etc/freeradius/3.0/certs/server.crt

die darüber genannten certification_file und private_key_file sind die eben erstellten radius.pem und radius-key.pem die ich im Verzeichnis
/etc/freeradius/3.0/certs/ habe.
Sie gehören root:freerad und haben 640 als Rechte.

Viele Grüße

Holger

Hallo Holger,

richtig! Der „Aussteller“ (=Zertifizierungsstelle) ist in diesem Fall die RootCA der linuxmuster-Lösung.

Diese CA muss dann auf die Clients und natürlich auch auf den Radius Server.

Die Zeile

muss auf cacert.pem zeigen. Also auch nach /etc/freeradius/3.0/certs/kopieren.

Viele Grüße
Thomas

Hallo Thomas,

super: dann hab ich das richtig verstanden.

das hab ich nicht gemacht: ich hab als Pfad /etc/linuxmuster/ssl/cacert.crt eingetragen … bisher hab ich keine Fehlermeldungen von usern bekommen …

LG

Holger

Hallo.
Ich pushe diesen Thread nochmal nach oben, weil wir uns auch wieder mit der Frage beschäftigen, ob ein WPA3-Enterprise-WLAN nicht die bessere Wahl ist … allerdings würde ich das Verteilen der Zertifikate gerne sofort mit relution verknüpfen, so dass das Verteilen und Aktualisieren der Zertifikate automatisch geschehen kann. Dazu gibt es unter Relution den Punkt:

Bei der Zertifizierungsstelle müsste nach dem, was hier steht, der v7-Server rein, richtig?
Das sieht unter relution dann allerdings so aus:

Hat das mal jemand auf diese Weise ausprobiert? Wie müssen die Einträge da lauten?
Danke für einen guten Tipp,
Michael

Nachtrag: Wie es aussieht, kann man das mit SAMBA ab Version 4.16 erreichen? Hat hier jemand Erfahrungswerte?
https://wiki.samba.org/index.php/Certificate_Auto_Enrollment

Hallo Michael,

Damit das Ganze über Relution funktioniert, brauchst du eine PKI, die SCEP (Simple Certificate Enrollment Process) unterstützt. Kann die lmn bislang nicht.

Momentan ist was du vorhast, nur über Drittanbietersoftware möglich,. z.B. mit openxpki eine eigene PKI aufzusetzen welche SCEP unterstützt.

Die Idee, dass jedes Gerät sein eigenes Zertifikat für EAP-TLS-Authorisierung hat, ist natürlich das Optimum. Alternativ könnte man versuchen, ein Client-Zertifikat über erstellen, mit der CA der lmn zu signieren und dieses eine Client-Zertifikat mit Relution auf alle Mobilgeräte zu verteilen. Ich persönlich kenne mich aber mit Relution nicht gut genug aus um bestätigen zu können, dass das so funktioniert.

Die Idee, das Enrollment über SAMBA zu machen wäre gut, geht aber nicht, da es momentan mit samba-tool keine Befehle für das das Verwalten der Richtlinie für die Server Site Extension gibt. (siehe 14 Certificate Auto Enrollment Policy | Group Policy on Linux). Was ab Samba 4.16 funktioniert ist, das sich ein Linux CLIENT per Autoenrollment von einem Windows Server ein Zertifikat holt.

Gruß
Thomas

Hallo Thomas,
genau das war mein Gedanke, als ich die neuen Settings unter relution gesehen habe. Aber ob und wie das funktioniert, weiß ich nicht.

In Sachen WPA3-Enterprise WLAN bin ich aber noch einige Schritte weiter vorne, denn ich versuche zunächst noch zu verstehen, wie/ob es überhaupt im v7-lmn-Setup möglich ist, dass man ein WPA3-Enterprise-WLAN nur für Lehrergeräte einrichtet!? Es müsste also die Gruppenzugehörigkeit „teacher“ abgefragt werden und nicht zusätzlich die Gruppenzugehörigkeit „p_wifi“. Ob das überhaupt so geht, weiß ich bisher nicht. Falls es möglich ist, wäre das Optimum vermutlich, dass der Freeradius-Server beides bedient, also sowohl die Gruppenzugehörigkeit zu p_wifi als auch zu teachers. Ob das so einfach umsetzbar, steht aber auf einem anderen Blatt. Daher bin ich auch weiterhin an der Lösung in Sachen freeRADIUS + LDAP interessiert, die ja im Parallelthread schon diskutiert wurde.

Viele Grüße,
Michael

Hallo Michael,

mach doch einfach einen zweiten RADIUS-Server der als Gruppenzugehörigkeit die Gruppenzugehörigkeit teachers abfragt. Ist zwar nicht elegant, aber funktioniert.

Viele Grüße
Thomas

Hallo Thomas,
daran habe ich auch schon gedacht aber ich dachte bisher, dass das aufgrund der nicht vorhandenen Eleganz der letzte Weg ist, den man einschlagen sollte :slight_smile:

Im Unifi-Controller ist das mit unterschliedlichen RADIUS-Servern ja auch alles easy über die Profile regelbar. Da unser freeRADIUS-Server (entgegen der Empfehlung aus den docs) im Moment noch auf dem v7-Server läuft, habe ich schon mal einen Proxmox-Container mit freeRADIUS 3.2 hochgezogen.

Ich hänge mich für alles weitere dann mal an diesen Thread:

Viele Grüße,
Michael