Freeradius Management mit WebGUI

Inhaltsverzeichnis
Radius Grundlagen
Das Radius Protokoll findet vielfache Anwendung im Netzwerk bzw. IT Umfeld. Primär wird es zur Nutzer Authentisierung verwendet, kann aber auch Accounting Aufgaben übernehmen.
Es kommt häufig bei der zentralen Netzwerk Zugangskontrolle im LAN oder WLAN zum Einsatz in Verbindung mit Port Security nach 802.1x bzw. WPA2-Enterprise oder auch Mac Adress Authentisierung (Mac Authentication Bypass, MAB) bzw. einer Kombination beider Verfahren.
Dazu gehört auch die zentrale Authentisierung von VPN Zugängen, WLAN Hotspots oder Management Zugriffen auf Infrastruktur Komponenten u.a.
Hierbei kann es u.a. dynamische VLANs, Accesslisten und auch QoS Einstellungen nutzerbezogen zuweisen. Radius ist quasi die zentrale "Ausweiskontrolle" im Netzwerk bzw. IT Umfeld. In klassischen Microsoft Umgebungen ist dies sehr oft das Tandem AD mit NPS (Radius).
Eine Alternative zu NPS ist der hier vorgestellte Freeradius Server als meistgenutzte Open Source Radius Lösung.
Im Default wird Freeradius über Textdateien konfiguriert, was in kleinen Netzwerkumgebungen mit wenig Nutzern noch tolerabel ist aber in größeren Netzen schnell an seine Management Grenzen stößt, zudem ist es im Gegensatz zu einem GUI fehleranfälliger.
Das folgende Praxistutorial beschreibt eine Lösung mit der Bindung des Freeradius Servers an eine SQL Datenbank und ein zentrales, Webbrowser basiertes Benutzermanagement mit dem freien Daloradius WebGUI. Über diese Browser Schnittstelle können zusätzlich auch CSV basierte Nutzerlisten im- und exportiert werden.
Diese Kombination stellt ein einfaches, schnelles und sehr flexibles User (802.1x) und Mac Adress Management mit dem Freeradius Server sicher, was die dynamische Zuweisung von VLANs, Accesslisten und QoS Settings inkludiert.
Die drei Basiskomponenten sind der Freeradius Server, ein schneller Nginx Webserver und eine MySQL / MariaDB SQL Datenbank.
Grundinstallation aller Komponenten
Das Tutorial beschreibt die Installation der erforderlichen o.g. Komponenten für ein Debian basiertes Linux (Ubuntu, Raspberry Pi OS etc.) und nutzt dafür die normale, standard apt Package Installation mit apt install und wird durchgängig mit Root User (sudo su) Rechten installiert.
Die Installation gilt analog auch für alle anderen Linux Distributionen mit ggf. anderen Dateipfaden.
Alle Schritte sind sowohl für eine bare Metal Installation als auch für eine VM grundsätzlich gleich. Als Texteditor zum Anpassen der Konfigurationsdateien wird der bordeigene nano Texteditor verwendet.
Zum Troubleshooting der TCP/IP Kommunikation empfiehlt es sich mit apt install tcpdump ein Netzwerk Sniffer Tool als helfendes Werkzeug mitzuinstallieren. Ein klein wenig Linux Basiswissen sollte vorhanden sein.
Los gehts...
Installation MariaDB SQL Server
apt install mariadb-server
Radius Datenbank erstellen
Im ersten Schritt loggt man sich mit dem Root User Passwort im Datenbank Management ein und erzeugt nacheinander mit den folgenden Kommandos eine SQL Datenbank und den dazugehörigen Nutzer. Der hier verwendete Datenbankname ("radiusdb"), Nutzer und Passwort ("raduser" und "geheim123") sind ggf. auf eigene Namensgebung anzupassen und unbedingt zu merken!
mysql -u root -p
CREATE DATABASE radiusdb;
CREATE USER 'raduser'@'localhost' IDENTIFIED BY 'geheim123';
GRANT ALL ON radiusdb.* TO raduser@localhost;
FLUSH PRIVILEGES;
Mit "exit" verlässt man die Datenbankverwaltung.
Weiter geht es mit dem Freeradius Server...
Installation Freeradius Server
apt install freeradius freeradius-mysql freeradius-utils
⚠️ Mit der clients.conf und der eap Datei sind zwei wichtige Konfigurationsdateien im Freeradius vorab anzupassen damit der Server Radius Requests aus dem lokalen Netz(en) annimmt und PEAP Requests richtig handhabt.
Dazu editiert man mit dem nano Texteditor die Datei clients.conf im Konfig Verzeichnis des Freeradius.
nano /etc/freeradius/3.0/clients.conf
und definiert dort seine lokalen IP Netze aus denen Radius Anfragen kommen sowie das Radius Server Passwort mit dem sich diese Netzwerk Komponenten am Server ausweisen. Z.B. wenn das Management IP Netz 192.168.188.0 /24 und das Radius Server Passwort testing123 lautet:
Die Netzmaske kann hier bequem als Wildcard verwendet werden. Weitere IP Netze fügt man analog hinzu.
Ein zusätzlicher Netz Eintrag z.B. 10.10.0.0 /16 würde z.B. Radius Requests aus allen 10.10.x.y. Subnetzen erlauben.
Die Bezeichnungen "network-1" usw. sind rein kosmetisch und kann man immer individuell anpassen wie z.B. "Management" oder "Labornetz".
Anmerkung zur clients.conf Datei:
Diese o.a. Anpassung der clients.conf Datei ist nicht zwingend nötig und kann auch weggelassen werden.
Allerdings müssen diese Authenticator IP Adressen (AP, Switch, etc.) dann später in der Datenbank über das WebGUI im Menüpunkt "Management -> NAS" vorab erfasst werden!
Andernfalls nimmt der Radius Server aus Sicherheitsgründen keine Anfragen dieser Netzwerk Komponenten an.
Ob man diese Authenticator Netze bzw. Adressen statisch, wie hier in der clients.conf Datei, vordefiniert oder später zentral über WebGUI und Datenbank erfasst, ist eine reine Management Geschmacksfrage.
Die nächste anzupassende Datei ist die EAP Konfig Datei:
nano /etc/freeradius/3.0/mods-available/eap
Dort sucht man den Abschnitt "peap { " und setzt dort den Parameter use_tunneled_reply = yes auf yes
(Suchen im nano Editor mit <ctrl> w)
Eine weitere kosmetische Anpassung, die nicht betriebsrelevant ist, betrifft die TLS Version um Warnmeldungen im Log vorzubeugen.
Man sollte die alten TLS Konfig Kommandos vollständig mit "#" einkommentieren wenn nicht schon geschehen.
Und im nächsten Zug ausschliesslich nur noch die tls_min_version, tls_max_version Parameter nutzen.
Da der TLS Standard 1.3 noch nicht abgeschlossen ist, macht man mit Ver. 1.2 nichts falsch und schont das Serverlog.
Mit <ctrl o> und <ctrl x> sichert man im nano Editor beide geänderten Dateien clients.conf und eap.
Freeradius Server für SQL Datenbank anpassen
Damit Freeradius zusammen mit der statischen User Datei auch die SQL Datenbank zur Nutzerabfrage verwendet, ist vorab noch etwas Handarbeit erforderlich.
Dazu stoppt man zuerst den Radius Server mit
systemctl stop freeradius
Jetzt kopiert man die Schema Datei in die Datenbank:
mysql -u root -p radiusdb < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
Das importierte Schema überprüft man mit:
mysqlshow radiusdb
Anschliessend editiert man mit dem nano Editor die Freeradius SQL Konfigurations Datei sql :
nano /etc/freeradius/3.0/mods-available/sql
Hier passt man jetzt die Parameter zur Nutzung der MySQL/MariaDB Datenbank an.
Dazu setzt man im Abschnitt "sql {" den dialect auf mysql und kommentiert mit einem "#" davor den Parameter driver = "rlm_sql_null" ein und entfernt gleichzeitig vor driver = "rlm_sql_${dialect}" das Kommentarzeichen "#".
Danach sucht man den Abschnitt mysql {...} und versieht dort alle TLS Parameter mit einem Kommentarzeichen "#" am Anfang der Zeile. Da die Datenbank und der Freeradius Server auf dem gleichen Server arbeiten ist TLS nicht erforderlich.
Nun scrollt man herunter zum Parameter # Connection info: der die Zugangsdaten zur oben erstellten SQL Datenbank beinhaltet und ändert diese auf den oben gesetzten Datenbanknamen sowie User und Passwort:
Zum Abschluss ändert man noch etwas weiter unten den Parameter read_clients = yes auf yes.
Damit sind alle Änderungen in dieser Datei abgeschlossen.
Mit <ctrl o> und <ctrl x> sichert man im nano abschliessend diese SQL Konfig Datei.
Final sind dann noch das SQL Modul im Freeradius zu aktivieren und der Group Owner richtig zu setzen.
Dies erledigen die 2 folgenden Kommandos:
ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
chown -h freerad.freerad /etc/freeradius/3.0/mods-enabled/sql
Freeradius Logging
Normalerweise loggt der Freeradius alle akzeptierten und zurückgewiesenen Authentisierungen in der Default Einstellung nicht mit!
Das ist verständlich, denn so ein Log kann in größeren Umgebungen sehr schnell sehr groß werden mit entsprechenden Nachteilen in Bezug auf den Speicherplatz.
In kleineren Umgebungen oder Heimnetzen ist dies aber ggf. tolerabel, entsprechenden Speicherplatz vorausgesetzt.
Das Logging des Freeradius ist optional und lässt sich granular einstellen indem es z.B. nur abgewiesene oder nur akzeptierte Authentisierungen oder auch beides anzeigt. Hier muss jeder nach seinen Vorlieben selber entscheiden. Im Zweifel belässt man es wie es ist. (Default = Logging deaktiviert)
Die Logging Einstellungen werden in der Server Konfigurations Datei radiusd.conf im Abschnitt "log { " vorgenommen.
nano /etc/freeradius/3.0/radiusd.conf
- auth = no -> Kein Logging der Authentisierung (Default), "yes" = loggt sowohl abgewiesene als auch akzeptierte Authentisierungen
- auth_accept = "yes" loggt nur akzeptierte Authentisierungen (Macht nur Sinn wenn "auth = no" gesetzt ist!)
- auth_reject = "yes" loggt nur abgewiesene Authentisierungen (Macht nur Sinn wenn "auth = no" gesetzt ist!)
- auth_badpass und auth_goodpass = loggen die falschen bzw. richtigen Passwörter abgewiesener oder akzeptierter Authentisierungen. (auth_badpass macht hier ggf. Sinn)
Eine grafische Überwachung des Radius Logs per Webbrowser beschreibt ein separates Kapitel am Ende dieses Tutorials.
Freeradius Funktion checken
Sind die o.a. Schritte alle erledigt, kann man mit dem Kommando freeradius -X den Radius Server testweise manuell im Debug Mode starten.
Dieser sollte, wenn alles richtig konfiguriert wurde, mit der Meldung: "Ready to process requests" am Ende antworten! <ctrl c> stoppt den Debug Mode wieder.
War dieser Test fehlerfrei, wird der Freeradius danach wieder als Daemon (Dienst) gestartet mit:
systemctl restart freeradius
Weiter geht es mit dem Webserver...
Installation Nginx Webserver mit erforderlichen PHP Komponenten
❗️Vorab: Natürlich rennt das WebGUI auch mit dem Apachen. Die Installation des Apache2 Webservers mit PHP beschreiben diverse Internet Tutorials und YouTube Filme sowie das Daloradius Installations ReadMe.
Der Nginx Webserver wurde hier bewusst gewählt, weil er insgesamt und damit besonders auf kleineren Plattformen (z.B. Raspberry Pi u.a.) deutlich flotter läuft.
(Bei der Wahl des Apachen kann das folgende Nginx Installationskapitel übersprungen werden!)
Los gehts mit der Webserver und PHP Installation...
apt install nginx php-fpm php-mysql php-zip php-mbstring php-cli php-common php-curl
Bzw. weitere erforderliche PHP Komponenten:
apt install php-gd php-db php-mail php-mail-mime
PHP aktivieren
Um PHP im Nginx Webserver zu aktivieren, wird mit dem nano Editor dessen Konfig Datei angepasst.
nano /etc/nginx/sites-available/default
Die folgenden Zeilen werden im Abschnitt server {... entkommentiert ("#" am Zeilenanfang entfernen) bzw. angepasst:
# Add index.php to the list if you are using PHP
index index.html index.htm index.php;
In der gleichen Datei den Abschnitt der PHP Konfig ebenfalls per nano anpassen und die Kommentarzeichen "#" in den folgenden Zeilen entfernen:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
(Beispiel bei PHP Version 8.2: "fastcgi_pass unix:/run/php/php8.2-fpm.sock"!)
Alle Änderungen sichert man im nano Editor wieder mit der Tastenkombination <ctrl-o> und <ctrl-x>.
Nginx Webserver mit PHP testen
Im Webserver HTML Root Verzeichnis /var/www/html/ (Wechsel dahin mit cd /var/www/html) erzeugt man mit dem nano Editor abschliessend eine PHP Datei phpinfo.php mit folgendem Inhalt:
<?php
phpinfo();
?>
Sie dient lediglich zum Testen der PHP Funktion.
Per Kommandozeile startet man den Webserver neu, um die geänderten Konfigs einzulesen.
systemctl restart nginx
Im Webbrowser öffnet man jetzt diese PHP Testdatei mit Eingabe von http://<server_ip_adresse>/phpinfo.php im Browserfenster, was dann die folgende PHP Statusseite anzeigen sollte:
Ist das der Fall, ist der Nginx Webserver einsatzklar und es geht weiter mit der Installation des Daloradius WebGUIs...
Daloradius WebGUI installieren
Für die Installation der Daloradius PHP Web Anwendung im Webserver Root Verzeichnis kann das Git Tool verwendet werden um das Programmverzeichnis lokal zu klonen (empfohlen).
apt install git
Danach wechselt man in das Webserver Root Verzeichnis und führt dort das folgende Kommando aus:
cd /var/www/html
git clone https://github.com/lirantal/daloradius.git
Wer das Git Tool git nicht installieren möchte, kann es alternativ auch mit wget herunterladen.
wget https://github.com/lirantal/daloradius/archive/refs/heads/master.zip
unzip master.zip
mv daloradius-master /var/www/html/daloradius
Log und Var Verzeichnisse erstellen
Das erledigen die 2 Kommandos:
mkdir -p /var/log/nginx/daloradius/{operators,users}
sowie
cd /var/www/html/daloradius/
mkdir -p var/{log,backup}
SQL Schemadateien importieren
Mit diesen zwei Kommandos importiert man die Daloradius Schema Dateien in die Datenbank:
mysql -u root radiusdb < /var/www/html/daloradius/contrib/db/fr3-mysql-freeradius.sql
mysql -u root radiusdb < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql
Daloradius Konfig Datei erstellen
Ins Konfig Verzeichnis wechseln mit
cd /var/www/html/daloradius/app/common/includes/
und dort die Konfig Datei aus der Beispieldatei erstellen:
cp daloradius.conf.php.sample daloradius.conf.php
Jetzt mit dem nano Texteditor diese Datei auf den o.a. SQL Datenbanknamen und den oben definierten SQL User / Passwort anpassen sowie die Pfade der für den Betrieb relevanten Log und Var Verzeichnisse anpassen:
$configValues['FREERADIUS_VERSION'] = '3';
$configValues['CONFIG_DB_ENGINE'] = 'mysqli';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'raduser';
$configValues['CONFIG_DB_PASS'] = 'geheim123';
$configValues['CONFIG_DB_NAME'] = 'radiusdb';
$configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/html/daloradius/var';
$configValues['CONFIG_LOG_FILE'] = '/var/www/html/daloradius/var/log/daloradius.log';
$configValues['CONFIG_PATH_RADIUS_DICT'] = '/usr/share/freeradius';
$configValues['CONFIG_MAINT_TEST_USER_RADIUSSECRET'] = 'testing123';
Damit Daloradius das Freeradius Log auslesen kann muss noch die entsprechende Dateiberechtigung gesetzt werden.
chmod 644 /var/log/freeradius/radius.log
Abschliessend wird das Webserver Root Verzeichnis auf den Webserver User und Group gesetzt:
chown -R www-data:www-data /var/www/html/
Daloradius Funktionscheck
Sind alle obigen Anpassungen gemacht steht einem ersten Test des Radius WebGUIs nichts mehr im Wege.
Das Administrator Login ruft man im Browser unter http://<server_ip>/daloradius/app/operators/ auf.
Hat alles geklappt wird man mit dem Login Schirm begrüsst.
Der Default Username ist administrator und das Passwort radius
Der erste Klick sollte auf den "Home" Button gehen und dort auf den Punkt "Services Status".
Hier sollten alle 3 Services Radius, Datenbank und SSHd auf "Running" stehen:
Ist das der Fall, ist der Radius Server und das WebGUI einsatzklar und weiter geht es mit der Einrichtung der Benutzer.
Benutzern kann man als Radius Administrator erlauben ihre eigenen Accounts zu überprüfen. Dafür hat das WebGUI einen spezieller Benutzer URL mit eingeschränktem Menü unter:
http://<server_ip>/daloradius/app/users/
vorgesehen.
Dies muss im User Setup unter "User Info" vom Administrator explizit zusätzlich und pro User erlaubt werden für den Fall wenn man Nutzern diesen Service bieten möchte.
URL Tuning
Wem die URLs zum Aufruf des WebGUIs etwas zu lang sind, kann diese optional im Webserver Setup mit einem Redirect Kommando /etc/nginx/sites-available/default am Ende des Abschnittes "server { " entsprechend kürzen. Z.B. /radius für das Management und /raduser für den Benutzerzugang.
#
location /radius {
return 301 /daloradius/app/operators;
}
#
location /raduser {
return 301 /daloradius/app/users;
}
Benutzer Management
Das Benutzermanagement ist sehr einfach und mehr oder weniger selbsterklärend im Menü "Management - Users" zu finden. Man hat hier die Wahl zw. der Eingabe des Nutzernamens und Passwortes (802.1x) oder der Mac Adresse für die Mac Authentisierung (MAP).
Alle Nutzernamen lassen sich sortieren und auch als CSV Datei sowohl exportieren als auch aus einer CSV Datei importieren.
802.1x Nutzer kann man alternativ anstatt Cleartext mit der Option NT Password anlegen, damit werden die Passwörter im GUI verschlüsselt dargestellt.
Alternativ dazu ist es im Menü unter Config - Interface Settings - Enable Password Hiding zusätzlich möglich die Anzeige der Passwörter in der GUI Listenansicht komplett unterdrücken.
Nutzer Account Check
Im Menü Config - Maintenance lässt sich der eingerichtete Benutzer oder die Mac Adresse vorab überprüfen ob sie vom Radius Server korrekt authentisiert wird.
Login Zeiten für Nutzer festlegen
Auch Nutzungszeiten für User lassen sich mit dem Radius festlegen. Dazu wird ebenfalls, wie bei den dynamischen VLANs, ein Profil genutzt indem man das "Login-Time" Attribut dort setzt.
Dies lässt sich natürlich auch mit anderen Attributen wie z.B. den obigen VLAN Attributen in einem Profil kombinieren das dann z.B. Gästen ein zeitlich limitiertes VLAN oder WLAN ausschliesslich innerhalb der normalen Arbeitszeiten zuweist. (Tagesnamen = Mo, Tu, We, Th, Fr, Sa oder Su)
Die Zeiteinstellungen folgen einem einfachen Muster:
- "Su1000-1200" z.B. für Sonntag 10-12 Uhr (Sunday)
- "Wk0800-1700" z.B. Wochentags für Mo-Fr 8-17 Uhr (Workday)
- "Al1200-1500" z.B. Täglich 12-15 Uhr (All oder Any)
- Mehrere Zeitabschnitte sind Komma getrennt möglich. ("Wk0900-1000,Wk1700-2000")
Dynamische VLAN Zuweisung für 802.1x Nutzer oder Mac Adressen
Die Zuweisung von dynamischen VLANs sowohl auf LAN Switches als auch auf WLAN Accesspoints, also die feste Zuweisung eines dedizierten VLANs für einen bestimmten 802.1x Netzwerk Benutzer, Benutzergruppen oder Mac Adressen ist ein klassisches Anwendungsgebiet eines Radius Servers im Netzwerk Umfeld.
Dies erledigt ein VLAN Profil im Menüpunkt Profiles welches man für alle verwendeten VLANs, die dynamisch zugewiesen werden sollen, anlegt:
⚠️ Wichtig ist das "REPLY" bei der Target Definition der VLAN Attribute, da diese an den Authenticator (Switch, AP etc.) zurückgehen!
Das VLAN Profil wird dann über die Groups Zuordnung dem jeweiligen Benutzer hinzugefügt.
Der Wert unter Tunnel-Private-Group-Id ist die jeweilige VLAN ID die dynamisch dem User zugewiesen werden soll.
Die Werte für den Tunnel-Type (13) und Tunnel-Medium-Type (6) sind fest durch den Radius RFC vorgegeben und dürfen nicht verändert werden!
Alternativ kann statt der Values 13 und 6 auch "VLAN" (Tunnel-Type) und "IEEE-802" (Alternativ 802, Tunnel-Medium-Type) als feste Werte verwendet werden.
Windows 802.1x Client Besonderheiten
⚠️ Wer ohne Radius Server Zertifikate arbeitet sollte im Windows 802.1x Client Setup den Haken bei der Zertifikatsprüfung ("Identität des Servers überprüfen") entfernen!
Wird beim Windows 802.1x Client für die Authentisierung an LAN Switches oder WLAN APs im Setup die Option "Automatisch eigenen Anmeldenamen und Kennwort verwenden" gewählt, fügt dieser immer den Domänen Namen dem Usernamen mit einem Doppelbackslash hinzu z.B. "Domäne\\Username". Bei Windows Rechnern ohne Domänenmitgliedschaft ersetzt die Automatik den Domänennamen durch den Hostnamen des Rechners.
Der doppelte Backslash führt ohne eine Anpassung der Datenbankabfrage zu unterschiedlichen Nutzernamen in GUI und Datenbank und resultiert dann in der Abweisung dieses Nutzers.
Deaktiviert man im Windows Client diese o.a. Login Automatik wird natürlich kein per Doppelbackslash angefügter Domänen- oder Hostname mitgesendet!
Bei der Nutzung dieses automatischen Windows 802.1x Logins im Client mit den Gerätecredentials, ist es daher unbedingt erforderlich die SQL Abfrage anzupassen!
Tip: Auch wenn man das Dot1x Autologin im Windows Client nicht nutzt, sollte man diese Anpassung immer machen, denn damit deckt man sicher und wasserdicht alle Eventualitäten beim Windows Dot1x Client ab!
Die Einstellung ist im Handumdrehen erledigt.
nano /etc/freeradius/3.0/mods-config/sql/main/mysql/queries.conf
Freeradius selber empfiehlt generell diese Einstellung so das man sie immer auch machen sollte!
Das Ganze sollte dann so aussehen:
Mit systemctl restart freeradius startet man den Freeradius neu und danach werden dann auch alle 802.1x Autologin und Domänen Benutzer bei Windows fehlerfrei authentisiert.
Freeradius Log Ansicht per Webbrowser
Eine alternative grafische Auswertung des Freeradius Logs per Webbrowser erreicht man außer über das Daloradius GUI auch mit dem kostenlosen Loganalyzer Tool.
Dessen config.php Datei erweitert man am Ende einfach um einen entsprechenden Eintrag mit weiterer laufender Nummer ("SourceX") der auf die Radius Log Datei verweist:
$CFG['Sources']['Source3']['ID'] = 'Source3';
$CFG['Sources']['Source3']['Name'] = 'FreeRadius Log';
$CFG['Sources']['Source3']['ViewID'] = 'SYSLOG';
$CFG['Sources']['Source3']['SourceType'] = SOURCE_DISK;
$CFG['Sources']['Source3']['LogLineType'] = 'syslog';
$CFG['Sources']['Source3']['DiskFile'] = '/var/log/freeradius/radius.log';
Weiterführende Links
Windows Radius Testtool NTRadPing:
Download NTRadPing Tool
Radius Server testen
Netzwerk Authentisierung am LAN Switch mit 802.1x und MAB:
Netzwerk Zugangskontrolle mit 802.1x und FreeRadius am LAN Switch
WiFi Benutzer Authentisierung mit 802.1x (WPA2 Enterprise) und MAB:
Sichere 802.1x WLAN-Benutzer Authentisierung über Radius
802.1x Benutzer Authentisierung mit Client Zertifikaten:
Mobile Clients mit Client Certificate authentifizieren
802.1x und Mac Address Authentisierung Ruckus ICX und Cisco Catalyst Switches:
Cisco Catalyst u. Ruckus ICX Switch
Ruckus ICX Switch mit 802.1x
Aufpassen bei Cisco SoHo Modellen SG und CBS !:
802.1x an Cisco CBS350 und Windows Server
802.1x und Mac Address Authentisierung mit HP Switches:
https://wiki.freeradius.org/vendor/HP
https://techhub.hpe.com/eginfolib/networking/docs/switches/WB/15-18/5998 ...
HP V1910 802.1X Konfiguration
Freeradius mit Microsoft AD Anbindung:
Ubuntu 14.04 - 16.04 - 18.04 - 20.04 LTS Server - Freeradius mit AD-Anbindung
Windows 802.1x Client Besonderheiten beachten!:
Windows 802.1x Infos
Windows 22H2 - Authentifizierung - eine kollegiale Bitte
Mikrotik Radius Server:
Mikrotik: 802.1X Port basierte Authentifizierung mit Zertifikaten unter RouterOS 7 mit User-Manager als Radius-Server
Mikrotik Radius Server (User-Manager)
Praxislösung mit Mikrotik und Cisco APs:
Mikrotik Radius und 802.1x Cisco AP WLAN
Dito. mit Mac Address Authentisierung
Mikrotik mit FreeRadius, WLAN APs und dynamischer VLAN Zuweisung:
Dynamische VLAN Zuweisung für WLAN (u. LAN) Clients mit Mikrotik
WLAN: VLAN-Zuordnung anhand Radius-Eigenschaften? MikroTik CAPsMAN
Mikrotik: Wifi clients in anderes VLAN schieben?
Freeradius Plugin auf pfSense und OPNsense:
pfSense Freeradius
WLAN mit 802.1x Client Zertifikaten
OPNSense FreeRadius Server-MAC Authentication-dynamische VLAN Zuweisung
Konfig Fehler vermeiden
Cisco WLAN Accesspoint Konfigs mit Radius Authentication:
Radius Authentication Beispielkonfig mit Cisco Accesspoints
Mobile VPN Nutzer per Radius authentisieren:
IKEv2 VPN Server (Strongswan)
Flexible Authentication mit LAN Switches:
Cisco:
https://www.cisco.com/c/dam/en/us/support/docs/ios-nx-os-software/identi ...
Ruckus ICX / Brocade:
https://support.alcadis.nl/Support_files/Ruckus/ICX//Ruckus%20Best%20Pra ...
Gastnutzer per Radius in ein Captive Portal Segment bringen:
Freeradius mit Captive Portal - ohne MSSID
Cisco Switch Konsolenzugang Authentisierung:
https://www.cisco.com/c/en/us/support/docs/security-vpn/remote-authentic ...
Cisco Mac Authentication Bypass:
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960xr/softwa ...
Please also mark the comments that contributed to the solution of the article
Content-Key: 6972997853
Url: https://administrator.de/contentid/6972997853
Printed on: November 28, 2023 at 11:11 o'clock
29 Comments
Latest comment
Vielen Dank für die Anleitung, das ist wirklich ein interessantes Thema.
Ich habe versucht die Anleitung umzusetzen, aber bei dem Punkt "mysqlshow freeradiusdb" bekomme ich als Rückmeldung "Unknown database 'freeradiusdb' " .
Woran kann das liegen?
Ich habe die Schritte bis zu dem Punkt komplett eingestellt.
Vielen Dank.
Ich habe versucht die Anleitung umzusetzen, aber bei dem Punkt "mysqlshow freeradiusdb" bekomme ich als Rückmeldung "Unknown database 'freeradiusdb' " .
Woran kann das liegen?
Ich habe die Schritte bis zu dem Punkt komplett eingestellt.
Vielen Dank.
Moin,
Die Datenbank heisst in der Anleitung überall radiusdb
Gruß
em-pie
Zitat von @BlueSkillz:
Ich habe versucht die Anleitung umzusetzen, aber bei dem Punkt "mysqlshow freeradiusdb" bekomme ich als Rückmeldung "Unknown database 'freeradiusdb' " .
Woran kann das liegen?
Hab's nicht nachgebaut aber mach mal ein Ich habe versucht die Anleitung umzusetzen, aber bei dem Punkt "mysqlshow freeradiusdb" bekomme ich als Rückmeldung "Unknown database 'freeradiusdb' " .
Woran kann das liegen?
mysqlshow radiusdb
Die Datenbank heisst in der Anleitung überall radiusdb
Gruß
em-pie
Zitat von @aqui:
Hi @BlueSkillz!
Danke für den Hinweis! Kollege @em-pie hat es schon gesagt. Das war leider ein Cut and Paste Error der sich da eingeschlichen hatte und ist nun korrigiert! Sorry nochmal für den Fauxpas. 😉
Hi @BlueSkillz!
Danke für den Hinweis! Kollege @em-pie hat es schon gesagt. Das war leider ein Cut and Paste Error der sich da eingeschlichen hatte und ist nun korrigiert! Sorry nochmal für den Fauxpas. 😉
Macht ja nichts, funktioniert alles sonst soweit super und ist schon im Einsatz
Danke für das zeigen der Installation mit freeradius und daloradius. Ich kannte die Software nicht, werde sie jetzt aber in meinem Lab einrichten als Auth-Server für meinen PPPoE-Server auf einem Ubiquiti ER-X.
Jetzt fehlt nur noch ein kleiner 19"-DSLAM und ich kann Provider spielen ;)
Wobei, dank Glasfaser ist ja heutzutage alles Ethernet-Basiert.
VG
bitnarrator
Jetzt fehlt nur noch ein kleiner 19"-DSLAM und ich kann Provider spielen ;)
Wobei, dank Glasfaser ist ja heutzutage alles Ethernet-Basiert.
VG
bitnarrator
Hallo,
die Anleitung ist echt top und ich hab innerhalb kürzester Zeit meinen Radius-Server auf einem Raspberry Pi einrichten können. Endlich eine Anleitung, die auf Anhieb funktioniert.
Habe aber noch eine Frage:
In der User-Übersicht sehe ich bei jedem User im Dropdown-Menü einen maximalen Download von 2GB. Weiter gehts in der Anzeige nicht. Klicke ich im Dropdown-Menü auf "Edit User", dann auf Session Information, dann sehe ich mehr Traffic.
In der Subscription Analysis sehe ich ebenfalls nur max. 2GB.
Ich werd nicht schlau draus, warum das so ist.
Hat jemand Infos, wieso hier fehlerhafte Daten, bzw. immer nur maximal 2GB angezeigt werden?

die Anleitung ist echt top und ich hab innerhalb kürzester Zeit meinen Radius-Server auf einem Raspberry Pi einrichten können. Endlich eine Anleitung, die auf Anhieb funktioniert.
Habe aber noch eine Frage:
In der User-Übersicht sehe ich bei jedem User im Dropdown-Menü einen maximalen Download von 2GB. Weiter gehts in der Anzeige nicht. Klicke ich im Dropdown-Menü auf "Edit User", dann auf Session Information, dann sehe ich mehr Traffic.
In der Subscription Analysis sehe ich ebenfalls nur max. 2GB.
Ich werd nicht schlau draus, warum das so ist.
Hat jemand Infos, wieso hier fehlerhafte Daten, bzw. immer nur maximal 2GB angezeigt werden?

Zitat von @aqui:
Dein Fehler lässt sich bei der Eingabe nur der Mac Userdaten nicht nachvollziehen. Gleiches gilt bei der Eingabe von 802.1x Usernamen.
Dein Fehler lässt sich bei der Eingabe nur der Mac Userdaten nicht nachvollziehen. Gleiches gilt bei der Eingabe von 802.1x Usernamen.
Ich nutze den Radius-Server in Verbindung mit dynamischen VLANs mit einem Unifi UDR.
Die Authentifizierung läuft rein über die MAC-Adressen. Die im Radius-Server eingetragenen Adressen werden ins VLAN1 weiter geleitet, unbekannte rutschen ins VLAN2, also mein Gastnetz mit anderen IP-Adressen und Einschränkungen fürs Gastnetz.
So spare ich die SSID fürs Gastnetz.
Normalerweise klickt man Management --> New User gibt dann lediglich Username und Passwort ein und fertig. Da werden keinerlei Traffic Limits konfiguriert oder abgefragt!
Username und Passwort sind jeweils die MAC-Adresse. Die Namen der Geräte habe ich im Feld "Vorname". So finde ich die Clients schneller.
Hier ein kurzer Check bei beiden Eingabe Optionen für Mac Adressen:
- 1. Über die direkte Mac Adress Erfassung. Erkennbar am RJ-45 Symbol im Usernamen
- 2. Mit der Angabe über Username und Passwort. Erkennbar am RJ-45 "Strichmännchen" Symbol im Usernamen
2.)
Fazit: Works as designed! 👍😉
Ich hatte bereits einen Radius-Server am laufen, mit Daloradius 1.3
Diese Version hab ich auf verschiedenen Maschinen installiert, ... zum testen.
Im Moment habe ich im Test einen Raspberry Pi 3b+ mit USB-Ram-Drive als Speicher, eine virtuelle Maschine in meiner Synology, und eine Proxmox-VM.
Nachtrag: Ich habe den Fehler gefunden, wie der damit zusammenhängt, hab ich noch nicht ganz rausgefunden, aber jetzt "zählts" weiter wie 2GB.
Es fehlte in der dynamischen Zuweisung im Radius die Fallback-Zuweisung für VLAN2, die unbekannte Geräte nicht abweist, sondern ins Gastnetz schiebt. Was das mit den Anzeigen für Traffic zu tun haben soll, ist mir noch nicht klar, aber jetzt gehts.
Ich glaube, diese dynamische Zuweisung in verschiedene VLAN´s wäre noch eine gute Erweiterung für eure ohnehin verständliche und perfekt umsetzbare Anleitung. Ich habe eure Anleitung mit ein paar Einträgen einer anderen Seite kombiniert
Hallo,
die Antwort jetzt ohne Zitat, denn das würde den Beitrag sprengen
.
Ich gebe dir in jedem Punkt recht. DIe Zuweisung ins VLAN2 bei unbekannten Usern per "DEFAULT" hatte ich vergessen einzutragen. Das funktioniert aber jetzt.
Den Fehler mit der Anzeige hab ich jetzt wirklich eingrenzen können. Es liegt an der installierten Linux Version.
Mit der 32bit-Variante habe ich den Fehler, mit der 64bit-Variante läuft alles, wirklich alles genau so, wie es soll.
Wobei die grundsätzliche Funktion des Rasius-Servers eigentlich auch mit der 32bit-Version gegeben ist, dann aber in der Weboberfläche den maximalen Traffic mit nur 2GB anzeigt, obwohl es mehr ist.
Getestet habe ich das jetzt an 2 identen Raspberry´s, sämtliche Einstellungen sind exakt gleich (In der Oberfläche Config/Backup die Einstellungen des ersten Raspis exportiert und am zweiten importiert).
Auch an der VM in meiner Synology ist die 64bit-Version von bullseye installiert.
Kurz zum Hintergrund meiner Gründe für diesen Aufwand, der sich mit der Anleitung von dir aber wesentlich vereinfacht hat, echt topp die Anleitung, das kann ich nur immer wieder betonen, ich hatte da bisher andere extrem aufwändige Anleitungen genutzt!!!
Unser Netzwerk zuhause wird mehr oder weniger zugebombt mit Geräten, die regelmässig die MAC-Adresse wechseln - Private Wlan-Adresse bei i-Geräten, wie das bei Androiden heisst, weiß ich grade nicht.
Wir nutzen eine einzige SSID, die unsere Gäste, Freunde und Bekannte gleichermassen nutzen.
Unsere eigenen Geräte sind im Radius-Server eingetragen und kommen so ins norme Wlan, alle anderen werden in das Gastnetz geschoben, und kommen somit nicht auf unsere Geräte wie Server, Drucker usw. (Hintergrund, ich hatte bis letztes Jahr eine Security-Firma).
die Antwort jetzt ohne Zitat, denn das würde den Beitrag sprengen
Ich gebe dir in jedem Punkt recht. DIe Zuweisung ins VLAN2 bei unbekannten Usern per "DEFAULT" hatte ich vergessen einzutragen. Das funktioniert aber jetzt.
Den Fehler mit der Anzeige hab ich jetzt wirklich eingrenzen können. Es liegt an der installierten Linux Version.
Mit der 32bit-Variante habe ich den Fehler, mit der 64bit-Variante läuft alles, wirklich alles genau so, wie es soll.
Wobei die grundsätzliche Funktion des Rasius-Servers eigentlich auch mit der 32bit-Version gegeben ist, dann aber in der Weboberfläche den maximalen Traffic mit nur 2GB anzeigt, obwohl es mehr ist.
Getestet habe ich das jetzt an 2 identen Raspberry´s, sämtliche Einstellungen sind exakt gleich (In der Oberfläche Config/Backup die Einstellungen des ersten Raspis exportiert und am zweiten importiert).
Auch an der VM in meiner Synology ist die 64bit-Version von bullseye installiert.
Kurz zum Hintergrund meiner Gründe für diesen Aufwand, der sich mit der Anleitung von dir aber wesentlich vereinfacht hat, echt topp die Anleitung, das kann ich nur immer wieder betonen, ich hatte da bisher andere extrem aufwändige Anleitungen genutzt!!!
Unser Netzwerk zuhause wird mehr oder weniger zugebombt mit Geräten, die regelmässig die MAC-Adresse wechseln - Private Wlan-Adresse bei i-Geräten, wie das bei Androiden heisst, weiß ich grade nicht.
Wir nutzen eine einzige SSID, die unsere Gäste, Freunde und Bekannte gleichermassen nutzen.
Unsere eigenen Geräte sind im Radius-Server eingetragen und kommen so ins norme Wlan, alle anderen werden in das Gastnetz geschoben, und kommen somit nicht auf unsere Geräte wie Server, Drucker usw. (Hintergrund, ich hatte bis letztes Jahr eine Security-Firma).
Zitat von @aqui:
Das Verhalten mit der 32bit Version ist interessant. Allerdings auch sehr merkwürdig, denn woher sollte eine ansonsten völlig identische PHP Installation sich automatisch verändern nur weil das darunterliegende OS 32 oder 64 bittig ist? Das klingt schon etwas "weired".
Das Verhalten mit der 32bit Version ist interessant. Allerdings auch sehr merkwürdig, denn woher sollte eine ansonsten völlig identische PHP Installation sich automatisch verändern nur weil das darunterliegende OS 32 oder 64 bittig ist? Das klingt schon etwas "weired".
Gestern habe ich nochmal auf einem Raspi 4 Tests gemacht. Bullseye 32bit 2GB in der Anzeige, Bulleye 64bit unbegrenzte Anzeige. Das ist wirklich seltsam.
Ich habe eine Testinstallation auf einem Orange Pi Zero unter Armbian Bullseye https://www.armbian.com/orange-pi-zero/ gemacht. Leider ist dort nicht vermerkt ob das 32 oder 64 Bit Images sind. 
Damit funktioniert das o.a. Setup aber (erwartbar) völlig unaufällig wie unter allen anderen Installationen auch. Eine Download Begrenzung "per Default" tritt dort erwartungsgemäß nicht auf. RasPi müsste ich einmal separat testen.
Damit funktioniert das o.a. Setup aber (erwartbar) völlig unaufällig wie unter allen anderen Installationen auch. Eine Download Begrenzung "per Default" tritt dort erwartungsgemäß nicht auf. RasPi müsste ich einmal separat testen.
Es ist ja auch keine Begrenzung, nur die Anzeige im Kontextmenü sowie in den User Details bleibt bei 2GB stecken. Es funktioniert alles ganz normal, die Anzeige bleibt halt bei 2GB stecken. Sehr seltsam
Moin moin,
erstmal danke für die Anleitung.
Ich hätte vorab aber mal noch eine Frage, wie viel Speicherplatz wäre angemessen für eine VM? Ich habe mal großzügig 50GB bereitgestellt, da es keine Heimnetz-Umgebung ist und ich das logging einschalten will. Wie viel Speicher verbraucht das logging wenn es für alle denys/accepts logt?
Dankeschön und Grüße
Flo
erstmal danke für die Anleitung.
Ich hätte vorab aber mal noch eine Frage, wie viel Speicherplatz wäre angemessen für eine VM? Ich habe mal großzügig 50GB bereitgestellt, da es keine Heimnetz-Umgebung ist und ich das logging einschalten will. Wie viel Speicher verbraucht das logging wenn es für alle denys/accepts logt?
Dankeschön und Grüße
Flo
Danke für die ausführliche Antwort, ja das mit der Kristallkugel ist schwierig, ich verlege meine immer wieder
ace-sad" alt=
ace-sad">
Es sind rund 350 Endgeräte also ein recht überschaubares Netzwerk, ich werde erstmal komplett loggen und mir dann im nachhinein anschauen wie ich die Einstellungen anpasse, je nach Datenmenge.
Ich habe die VM mit 2 vCpus und 4GB RAM aufgesetzt, ich habe auch vor einen redundanten Raspi zu bauen, das die anforderungen an die VM dann gleich sind hätte ich mir denken können :P
Vielen Dank und Grüße
Flo
ace-sad">
Es sind rund 350 Endgeräte also ein recht überschaubares Netzwerk, ich werde erstmal komplett loggen und mir dann im nachhinein anschauen wie ich die Einstellungen anpasse, je nach Datenmenge.
Ich habe die VM mit 2 vCpus und 4GB RAM aufgesetzt, ich habe auch vor einen redundanten Raspi zu bauen, das die anforderungen an die VM dann gleich sind hätte ich mir denken können :P
Vielen Dank und Grüße
Flo
Moin nochmal,
ich bin soweit mit den SQL und Radius Schritten durch und sitze jetzt am Webserver. Leider tut er nicht was er soll,
ich habe wie in der Anleitung beschrieben alle Pakete installiert und die Konfigdatei angepasst. Der Server möchte aber nicht starten.
Die phpinfo.php wurde auch angelegt. Die PHP Version sollte eigentlich stimmen..
Grüße
Flo
ich bin soweit mit den SQL und Radius Schritten durch und sitze jetzt am Webserver. Leider tut er nicht was er soll,
ich habe wie in der Anleitung beschrieben alle Pakete installiert und die Konfigdatei angepasst. Der Server möchte aber nicht starten.
Die phpinfo.php wurde auch angelegt. Die PHP Version sollte eigentlich stimmen..
Grüße
Flo
Oh das is jetzt unangenehm ich hatte die Fehlermeldung extra gründlich durchgelesen da es ja nur mein Fehler seien konnte, habe ich wohl übersehen. Funktioniert jetzt einwandfrei 🙄
Dankeschön
Zusätzlich noch eine Frage/Anmerkung, bei dem übernehmen des radius schemas in die Datenbank habe ich Permission denied errors bekommen. Wenn ich die Connection daten für root setze funktioniert es. Die Berechtigung für radiusdb.* sollte aber doch eig reichen um die tabellen auch mit dem raduser anzulegen oder nicht?
Grüße
Dankeschön
Zusätzlich noch eine Frage/Anmerkung, bei dem übernehmen des radius schemas in die Datenbank habe ich Permission denied errors bekommen. Wenn ich die Connection daten für root setze funktioniert es. Die Berechtigung für radiusdb.* sollte aber doch eig reichen um die tabellen auch mit dem raduser anzulegen oder nicht?
Grüße
Also ich habe extra für dieses Tutorial ein Ubuntu System aufgesetzt und dieses genau nach dieser Anleitung eingerichtet, bis auf das ich eine IP vergeben habe, habe ich am System nichts verändert. Bezüglich deines Posts habe ich die Firewall(ufw disable) deaktiviert(falls diese überhaupt aktiv war).
Die Seite versuche ich direkt vom Server zu öffnen --> 127.0.0.1/phpinfo.php
Leider habe ich keine Ahnung von Linux
Die Seite versuche ich direkt vom Server zu öffnen --> 127.0.0.1/phpinfo.php
Leider habe ich keine Ahnung von Linux
Zitat von @aqui:
...
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
...
Mit deiner PHP Version zusammenpasst!!
Dazu gibst du einmal php -v auf der Konsole ein.
Ich bekomme beim Php-Test die Fehlermeldung "502 Bad Gateway"
Achte darauf das die Zeile in der Nginx Server PHP Konfig:...
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
...
Mit deiner PHP Version zusammenpasst!!
Dazu gibst du einmal php -v auf der Konsole ein.
Danke aqui, das war der Fehler 8.1 wurde bei mir Installiert...
Series: Netzwerk Grundlagen
Freeradius Management mit WebGUI (german)29Netzwerkverkehr mit NetFlow bzw. IPFIX visualisieren (german)1Link Aggregation (LAG) im Netzwerk (german)17Internet IP Adresse mit Windows Desktop Tool BGInfo anzeigen lassen (german)17Netzwerk Management Server mit Raspberry Pi (german)110Netzwerk Zugangskontrolle mit 802.1x und FreeRadius am LAN Switch (german)96Sichere 802.1x WLAN-Benutzer Authentisierung über Radius (german)121VLANs über 802.1q Trunk auf Windows und Linux Rechnern realisieren (german)