Freeradius, Installation und Konfiguration, Authentifizierung an AD
Der Freeradius-Dienst installieren wir auf unserem dc1. Der Dienst kann man selbstverständlich bei größeren Umgebungen auch auf einem anderen Server installieren.
Nach der Installation des Freeradius Dienstes muss man den Dienst und die Access Point konfigurieren. Die APs müssen mit dem Dienst kommunizieren können.
Auf dem APs muss man in WLAN Bereich (WPA/WPA2 - Enterprise) die IP-Adresse des Radiusdienstes und das gemeinsame Passwort für AP und den Radiusdienst eintragen. Das machen wir auf allen APs. Die SSID sollte auf jedem AP das Gleiche sein.
Auf dem Server tragen wir wieder alle APs mit den entsprechenden IP-Adressen und dem gemeinsamen Passwort.
Wie sollte die Verbindung funktionieren? WLAN-Gerät verbindet sich mit bestimmte SSID des WLANs. Auf dem Gerät kommt dann ein Fenster nach der Frage des Benutzernamen und des Passwortes. Der Radiusserver wird so konfiguriert, dass die Benutzerdaten der Domäne genutzt werden können. Wenn die Authentifizierung passt, bekommt das Gerät die entsprechende IP-Adresse, etc. Danach kann das Gerät auch ins Internet.
Unsere Konfigurationsdaten des Servers dc1 (Domänen Controller)
Betriebssystem: Debian 11
Servername: dc1
Domäne: schule.lan
IP-Adresse: 172.16.0.10
Netmask: 255.255.252.0
Gateway: 172.16.0.1
DNS: 172.16.0.10
Wir überprüfen zuerst, ob sich die Benutzer authentifizieren können. Wir haben schon in der Domäne SCHULE einen Benutzer manfred mit dem Passwort secret123. So testen wir es. Wenn NT Status mit OK rauskommt, ist alles in Ordnung.



ipaddr = 172.16.0.11
secret = secret123+-
}
client AP-Client2 {
ipaddr = 172.16.0.12
secret = secret123+-
}

IP-Adresse: 172.16.0.11
Netmask: 255.255.252.0
Gateway: 172.16.0.1
Der zweite AP bekommt die IP-Adresse: 172.16.0.12
Auf jedem AP werden die gleiche Wireless Daten eingetragen, also die IP-Adresse des Freeradius-Dienstes und das gemeinsame RADIUS Server Passwort.
Als Beispiel habe ich ein TP-Link TL-WR902AC mit der IP: 172.16.0.11 genommen. Die anderen Geräte müssten auch die Möglichkeit haben, Wireless als WPA/WPA2-Enterprise zu konfigurieren.


/etc/freeradius/3.0/mods-enabled/ntlm_auth
/etc/freeradius/3.0/mods-available/mschap
/etc/freeradius/3.0/sites-enabled/default
/etc/freeradius/3.0/sites-enabled/inner-tunnel
# Wenn wir eigenes Zertifikat erstellen, dann müssen wir noch die folgende Datei bearbeiten
/etc/freeradius/3.0/mods-enabled/eap

Wenn wir möchten, dass nur bestimmte Benutzer der Domäne Zugriff per WLAN bekommen, dann können wir auch das begrenzen. Wir erstellen in der Domänen eine Gruppe z.B. GG_WLAN und wir passen den oberen Eintrag an. Die Benutzer, die den Zugriff bekommen sollten, fügen wir in die Gruppe ein.

Wenn wir uns entschieden haben, den WLAN Zugriff nur für bestimmte Benutzer zu begrenzen, wie oben, dann müssen wir den Eintrag anpassen.
In der gleichen Datei werden noch zwei Zeilen auskommentiert und angepasst.
winbind_domain = "SCHULE"

ntlm_auth
...

ntlm_auth
...

root@dc1:~# chgrp winbindd_priv /var/lib/samba/winbindd_privileged/

root@dc1:~# systemctl restart freeradius.service
Jetzt können wir uns mit einem WLAN Gerät mit dem definierten WLAN SSID verbinden. Wir nutzen dabei die Benutzer der Domäne, bzw. einen Benutzer, der sich in der definierten Gruppe befindet. Das ist von der Konfiguration abhängig.

Am Ende der Datei /etc/freeradius/3.0/users fügen wir zwei Benutzer mit Passwörtern ein. z.B.
gast2 Cleartext-Password := "gast567", MS-CHAP-Use-NTLM-Auth := No
Wenn wir doch mehreren Benutzern, die nicht in der Domäne sind auch den WLAN-Zugriff ermöglichen wollen, dann können wir die Benutzer in einer separaten Datei definieren z.B. NoDomainUser.conf und nicht direkt in der users Datei. In der /etc/freeradius/3.0/users Datei müssen wir am Ende den entsprechenden Eintrag machen
z.B.
$INCLUDE /etc/freeradius/3.0/NoDomainUser.conf.
$INCLUDE /etc/freeradius/3.0/NoDomainUser.conf
Erstelltes Zertifikat in die Radiuskonfiguration einbinden.
Wir haben ein neues Radius-Zertifikat erstellt. Wie man das macht, finden Sie es in dem Artikel
Konzept 1/Freeradius/Zertifikat.

private_key_file =
certificate_file =
ca_file=
Falls das Passwort geändert war, muss man auch das Passwort in dieser Datei anpassen.
tls-config tls-common {
private_key_password = whatever
# private_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
private_key_file = /etc/freeradius/3.0/certs/server.key
...
# certificate_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
certificate_file = /etc/freeradius/3.0/certs/server.pem
...
# ca_file = /etc/ssl/certs/ca-certificates.crt
ca_file = /etc/freeradius/3.0/certs/ca.pem
