aqui
Goto Top

Freeradius Management mit WebGUI

article-picture

back-to-topRadius 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 immer in Verbindung mit Port Security nach 802.1x bzw. WPA2/3-Enterprise oder auch Mac Adress Authentisierung (Mac Authentication Bypass, MAB) bzw. einer Kombination beider Verfahren. (Flexible Authentication)
Zur Netzwerk Zugangs Sicherheit gehört ebenso 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 und sichert so den Zugang zum Netzwerk. 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 bietet nicht nur einen Radius gesichterten Zugang zum Netzwerk sondern sichert auch den Management Zugang und den von VPN Nutzern. Mit dem Browser basierten Management ist eine einfache, schnelle und sehr flexible User- (802.1x) und Mac Adress Management (MAB) Verwaltung der Netzwerksicherheit inklusive der dynamischen Zuweisung von VLANs, Accesslisten und QoS Settings gegeben.
Die drei Basiskomponenten sind der Freeradius Server, ein schneller Nginx Webserver und eine MySQL / MariaDB SQL Datenbank.


back-to-topGrundinstallation aller Komponenten


Das Tutorial beschreibt die Installation aller erforderlichen Komponenten auf einem klassischen, Debian basiertem Linux (Ubuntu, Mint, Raspberry Pi OS etc.) und nutzt dafür die normale Standard apt Package Installation mit apt install. Der Installationsprozess erfordert durchgängig Root User (sudo su) Rechte!
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 mit zu installieren. Ein klein wenig Linux Basiswissen sollte vorhanden sein.
Los gehts...


back-to-topInstallation MariaDB SQL Server


apt install mariadb-server

back-to-topRadius 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 Nutzeraccount. Der hier verwendete Datenbankname ("radiusdb"), Nutzername ("raduser") und das Nutzerpasswort ("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...


back-to-topInstallation 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:

client1

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 immer individuell angepasst werden 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)

eap

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.
tls1
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.
tls2

Mit <ctrl o> und <ctrl x> sichert man im nano Editor beide geänderten Dateien clients.conf und eap.

back-to-topFreeradius 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 "#".

sql1

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.

sql2

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:

sql3

Zum Abschluss ändert man noch etwas weiter unten den Parameter read_clients = yes auf yes.

sql4-2

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

back-to-topFreeradius 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 = yes macht hier ggf. Sinn)
freelog
Tip: Man sollte an Authentisierungen nur das loggen was man wirklich sehen will!
Eine grafische Überwachung des Radius Logs per Webbrowser beschreibt ein separates Kapitel am Ende dieses Tutorials.

back-to-topFreeradius 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.

sql5

War dieser Test fehlerfrei, wird der Freeradius danach wieder als Daemon (Dienst) gestartet mit:
systemctl restart freeradius 

back-to-topFreeradius Server Zertifikate


Die Zertifikats Erstellung ist optional und muss nur dann durchgeführt werden wenn man mit dem Client den Radius Server per Zertifikat überprüfen möchte (Security) oder auch auf der Benutzerseite mit User Zertifikaten statt Username/Passwort arbeiten möchte.
  • Mit cd /etc/freeradius/3.0/certs/ ins Zertifikats Verzeichnis wechseln
  • Hier zuerst mit rm -f *.pem *.der *.csr *.crt *.key *.p12 serial* index.txt* alle ggf. vorhandenen alten Zertifikatsdaten löschen.
Die weitere Zertifikatserstellung mit der Einrichtung der CA, des Server Zertifikats und ggf. Nutzerzertifikaten für 802.1x beschreibt dieses Tutorial mit OpenSSL. Bei Windows Client Zertifikaten muss zwingend die EKU "extendedKeyUsage=clientAuth" eingefügt werden! Ein Forenthread beschreibt HIER die korrekte Vorgensweise und Erstellung ebenfalls mit OpenSSL.
Die erstellten Zertifikate werden in das o.a. .../certs Verzeichnis kopiert und sind dann in der ebenfalls erwähnten Datei /etc/freeradius/3.0/mods-available/eap im Abschnitt "EAP TLS" zu aktivieren.
#
        tls-config tls-common {
                private_key_password = <Srv_Key_Password>
                private_key_file = ${confdir}/certs/<RadiusServer.key_Key_Datei>
#
                certificate_file = ${confdir}/certs/<RadiusServer.crt_Zert-Datei>
                #  Trusted Root CA list
                ca_file = ${confdir}/certs/<CA.crt_Zert_Datei> 

Weiter geht es mit dem Webserver...


back-to-topInstallation 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

back-to-topPHP 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;
        } 
⚠️ Bitte hier unbedingt die installierte PHP Version beachten! Siehe dazu auch HIER.
(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>.
Ob die Nginx Konfiguration syntaktisch OK und ohne Tippfehler ist kann man mit dem Kommando nginx -t testen.

back-to-topNginx 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:

php.

Ist das der Fall, ist der Nginx Webserver einsatzklar und es geht weiter mit der Installation des Daloradius WebGUIs...


back-to-topDaloradius 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
Installiert, wenn nicht schon geschehen, das Git Tool.

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, das ZIP Archiv dann entpacken und das entzippte Verzeichnis ins Webserver Verzeichnis kopieren.
wget https://github.com/lirantal/daloradius/archive/refs/heads/master.zip
unzip master.zip
mv daloradius-master /var/www/html/daloradius 


back-to-topLog 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}

back-to-topSQL 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-mariadb-freeradius.sql
mysql -u root radiusdb < /var/www/html/daloradius/contrib/db/mariadb-daloradius.sql 

back-to-topDaloradius 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_PATH_DALO_TEMPLATES_DIR'] = '/var/www/html/daloradius/app/common/templates';  
$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/

back-to-topDaloradius 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.

dalo1

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:

dalo2

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.
uinfo

back-to-topURL 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;
        } 
Danach ist der Nginx Webserver mit systemctl restart nginx neu zu starten.


back-to-topBenutzer 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 (WPA-Enterprise, 802.1x) oder der Mac Adresse für die Mac Authentisierung (Mac Authentication Bypass, MAB).
Alle Nutzernamen bzw. Mac Adressen lassen sich sortieren und auch als CSV Datei (Excel etc.) 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 zur verschlüsselten Anzeige ist es im Menü unter Config - Interface Settings - Enable Password Hiding auch möglich die Anzeige der Passwörter in der GUI Listenansicht komplett unterdrücken.

dalous

back-to-topNutzer 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.

daloustest

back-to-topBeispielsetup WLAN Accesspoint


Ein sehr einfaches Beispiel für ein WLAN Accesspoint Setup zeigt das folgende Bild. Das statische VLAN 11 ist hier als Radius gesichertes WLAN in einem MSSID Design konfiguriert.
Mit der optionalen "Supplicant" Funktion ist der Accesspoint zusätzlich in der Lage sich selber als 802.1x Client an einem mit Port Security gesicherten Switch Kupferport zu authentisieren.

wapmssiddot1x


back-to-topDynamische VLAN Zuweisung für 802.1x Nutzer oder Mac Adressen


Die Zuweisung von dynamischen VLANs sowohl auf LAN Switches als auch auf WLAN Accesspoints (MSSID), also die feste Zuweisung eines dedizierten VLANs für einen bestimmten 802.1x Netzwerk Benutzer, Benutzergruppen oder Mac Adresse 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 Nutzern zugewiesen werden sollen, anlegt:

vlan

⚠️ Wichtig ist hier 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 im User Setup 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" (für Tunnel-Type) und "IEEE-802" (Alternativ 802, für Tunnel-Medium-Type) als feste Werte verwendet werden.
Ein Klick auf User-Groups zeigt dann die Zuordnung der Benutzer zu den dynamischen VLAN Profilen:

grou

back-to-topLogin 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")

uhr


back-to-topWindows 802.1x Client Besonderheiten


⚠️ Wer ohne Radius Server Zertifikate arbeitet (Siehe oben im Abschnitt Freeradius, Zertifikate), sollte im Windows 802.1x Client Setup den Haken bei der Zertifikatsprüfung ("Identität des Servers überprüfen") entfernen!

back-to-topLAN

Der 802.1x Client für die Netzwerk Authentisierung am LAN Port (Kupfer) ist im Gegensatz zum WLAN Client im Default deaktiviert. Deshalb fehlt dort auch der Reiter "Authentisierung" bzw. ist ausgegraut.
Mit der Suche nach "Dienste" startet man die Dienste Konfiguration und sucht dort das sperrige "Automatische Konfiguration (verkabelt)" und startet diesen Dienst. Soll er dauerhaft laufen ist der Startyp auf Automatisch zu ändern.
autkonfverk2

back-to-topWiFi

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 dem Domänen Namen zusätzlich den Usernamen mit einem Doppelbackslash hinzu z.B. "Domäne\\Username". Bei Windows Rechnern ohne Domänenmitgliedschaft ersetzt diese Automatik den Domänennamen durch den Hostnamen des Rechners.
windot1x
Der doppelte Backslash führt ohne eine Anpassung der Datenbankabfrage daher 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 und der damit einhergehenden o.a. "Erweiterung" des Usernamens, ist es daher unbedingt erforderlich die SQL Abfrage anzupassen!
Tip:
Auch wenn man dieses Dot1x Autologin im Windows Client aktuell nicht nutzt, sollte man diese Anpassung immer ausführen, 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
Editiert die Konfiguration der SQL Abfrage und dort kommentiert man am Anfang die Zeile "safe_characters = "@abc..." mit einem "#" ein und entfernt das Kommentarzeichen "#" vor auto_escape = yes.
Freeradius selber empfiehlt generell diese Einstellung so das man sie immer vornehmen sollte!
Das Setup sollte dann so aussehen:
quer
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.
dalusneu.


back-to-topFreeradius 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';   
Auf diese Weise lassen sich bequem abgewiesene und auch erfolgreiche Netzwerkverbindungen je nach o.a. Logging Setup darstellen.
logan



back-to-topWeiterführende Links


Windows Radius Testtool NTRadPing:
Download NTRadPing Tool
Radius Server testen

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

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 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

Windows 802.1x Client Besonderheiten beachten!:
Windows 802.1x Infos
Windows 22H2 - Authentifizierung - eine kollegiale Bitte

FreeRadius mit Mikrotik 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?
Übersicht 802.1x und MAB mit Mikrotik

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 ...

Erhöhte Zertifikats Anforderungen bei neuem Windows NPS (Eng.):
NPS 802.1x Radius Authentication with EAP-TLS and strong certificate mapping for non domain joined devices

Freeradius mit Microsoft AD Anbindung:
Ubuntu 14.04 - 16.04 - 18.04 - 20.04 LTS Server - Freeradius mit AD-Anbindung


back-to-top802.1x LAN / WLAN Benutzer Authentisierung mit Client Zertifikaten:


Mobile Nutzer mit Zertifikaten authentisieren:
Mobile Clients mit Client Certificate authentifizieren

Zertifikate erstellen mit OpenSSL u. Freeradius:
Zertifikatserstellung mit OpenSSL und Freeradius

Zertifikatsbasierte Authentisierung mit iPhone:
IPhone Authentifizierung am NPS nur mit Zertifikat

Zertifikatseinstellungen bei pfSense u. OPNsense:
WLAN mit 802.1x Client Zertifikaten


back-to-topMikrotik Radius Server (User Manager)


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)
Mikrotik Radius mit Cisco WLAN APs
Mikrotik - dyn-vLAN und MAC-auth in ROS 7.2

Praxislösung: Mikrotik Radius Server und Cisco WLAN APs:
Mikrotik Radius Server und 802.1x Cisco AP WLAN
Dito mit Mac Address Authentisierung
Dito mit SwitchOS basierten Mikrotiks

Content-ID: 6972997853

Url: https://administrator.de/contentid/6972997853

Printed on: October 6, 2024 at 17:10 o'clock

BlueSkillz
BlueSkillz May 02, 2023 at 10:59:34 (UTC)
Goto Top
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.
em-pie
em-pie May 02, 2023 at 11:46:46 (UTC)
Goto Top
Moin,
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 mysqlshow radiusdb
Die Datenbank heisst in der Anleitung überall radiusdb

Gruß
em-pie
BlueSkillz
BlueSkillz May 02, 2023 at 12:20:30 (UTC)
Goto Top
Moin,

ja, danke dann wird etwas angezeigt, dachte dass muss mit der anderen Datenbank auch funktionieren, aber die existiert ja gar nicht.
Vielen Dank.
aqui
aqui May 02, 2023 updated at 17:10:49 (UTC)
Goto Top
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. 😉
BlueSkillz
BlueSkillz May 02, 2023 at 18:41:57 (UTC)
Goto Top
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. 😉

Macht ja nichts, funktioniert alles sonst soweit super und ist schon im Einsatz face-smile
aqui
aqui May 03, 2023 at 08:36:52 (UTC)
Goto Top
👍
Zeigt das dann wohl keine weiteren Fehler im Tutorial sind. 😉
bitnarrator
bitnarrator May 31, 2023 at 08:36:56 (UTC)
Goto Top
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
GerdKuehner
GerdKuehner Jul 08, 2023 at 07:49:01 (UTC)
Goto Top
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?
bildschirmfoto 2023-07-08 um 09.47.51
aqui
aqui Jul 08, 2023 updated at 08:34:29 (UTC)
Goto Top
Endlich eine Anleitung, die auf Anhieb funktioniert.
Danke für die 💐 😊
wieso hier fehlerhafte Daten, bzw. immer nur maximal 2GB angezeigt werden?
Du musst da irgendetwas bei der Eingabe von neuen Usern im GUI falsch gemacht haben oder ein falsches Profil hinzugefügt haben?! 🤔
Dein Fehler lässt sich bei der Eingabe nur der Mac Userdaten nicht nachvollziehen. Gleiches gilt bei der Eingabe von 802.1x Usernamen.
Normalerweise klickt man Management --> New User gibt dann lediglich Username und Passwort ein und fertig. Da werden keinerlei Traffic Limits konfiguriert oder abgefragt!

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
1.)
us1
2.)
us2

Fazit: Works as designed! 👍😉
GerdKuehner
GerdKuehner Jul 08, 2023 at 22:16:45 (UTC)
Goto Top
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.

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
1.)
us1
2.)
us2

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 face-smile
aqui
aqui Jul 09, 2023 updated at 09:54:11 (UTC)
Goto Top
aber jetzt gehts.
👏 👍

Nur noch mal als Ergänzung zu der Thematik:
Die dynamische Zuweisung der VLAN IDs hat nur sehr bedingt mit dem Radius Server selber zu tun sondern macht immer nur das entsprechende Endgerät sprich also Switch oder Accesspoint. Der Radius liefert lediglich immer nur die userbezogenen VLAN Parameter (und nur die!) dazu. Nicht mehr und nicht weniger!

Dabei gibt es immer nur 3 mögliche Optionen und nur eine (1) hat lediglich am Rande mit dem Radius Server zu tun und wenn, dann nur mit den VLAN Parametern:
  • 1. Du konfigurierst unter "DEFAULT" in der statischen users Datei des Freeradius eine dynamische VLAN Default Zuweisung in ein "Gummizellen VLAN" oder ein Gast oder Auth Fail VLAN wo alle User hineinfallen deren Nutzer Authentisierung fehlschlägt.
Das macht man immer dann, wenn der Authenticator (Switch oder AP) kein Auth Fail oder Gast VLAN supportet. Der Eintrag (VLAN ID Beispiel "99") sähe dann z.B. so aus:
DEFAULT         Cleartext-Password := "%{User-Name}"
                         Tunnel-Type = VLAN,
                         Tunnel-Medium-Type = IEEE-802,
                         Tunnel-Private-Group-Id := 99 
  • 2. Der Authenticator (Switch, AP) macht die Zuweisung eigenständig indem in seiner Konfig (sofern supportet) ein sog. Auth Fail VLAN definiert wird. Erhält der Authenticator ein "Access deny" vom Radius, platziert der Authenticator diese Nutzer selber direkt in dieses Auth Fail VLAN. Ist es nicht definiert wird der User abgewiesen.
  • 3. Der Authenticator hat ein sog. Gast VLAN in der Konfig definiert sofern supportet. Das betrifft dann alle Clients die ohne Dot1x Authentisierung dem Netzwerk beitreten wollen. Die fehlende .1x Negotiation bewirkt am Authenticator das diese Nutzer ins Gast VLAN gelegt werden. Diese Funktion betrifft nur 802.1x gesicherte Netze, keine Mac Authentication, weil nur die .1x Authentication auf Clients aktivierbar ist oder deaktivierbar. Bei Mac Authentisierung klappt das bekanntlich prinzipbedingt nicht.

Die Optionen 2. und 3. heissen bei den Herstellern in der Regel Flexible Authentication.
Du kannst also sehen das die VLAN Zuweisung nur sehr am Rande oder gar nicht den Radius Server als solchen betrifft. Und wenn dann auch nur bei den o.g. ersten beiden Optionen.

Ganz und gar nichts hat es mit der Bandbreiten Begrenzung von Usern zu tun die ja immer nur willentlich über ein speziell dafür konfiguriertes Profil erfolgen kann. Ohne eine solche Profil Zuweisung oder Profile an sich kann es niemals eine Bandbreitenbegrenzung in der User Konfig geben.
Du musst also willentlich irgendwo so eine Zuordnung gemacht haben?! Wie bereits gesagt: Bei der reinen, einfachen User Einrichtung nur mit User/Passwort gibt es keine Bandbreiten Begrenzung!
GerdKuehner
GerdKuehner Jul 09, 2023 at 16:37:45 (UTC)
Goto Top
Hallo,
die Antwort jetzt ohne Zitat, denn das würde den Beitrag sprengen face-smile.

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).
aqui
aqui Jul 10, 2023, updated at Sep 29, 2023 at 22:12:29 (UTC)
Goto Top
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".
Ich habe eine Testinstallation auf einem Orange Pi Zero unter Armbian Bullseye gemacht. Leider ist dort nicht vermerkt ob das 32 oder 64 Bit Images sind. face-sad
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.
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.
Dort heisst es random Mac address oder WLAN Mac Randomization...
Die Mac ist aber sowohl bei iOS als auch bei Android immer spezifisch zur SSID und bleibt innerhalb der SSID immer gleich.
Wenn du dir also, eingebucht in der SSID, die da vergebene Mac Adresse ansiehst, bleibt diese konstant. Sie ändert sich immer nur mit der Änderung der SSID. face-wink
Wir nutzen eine einzige SSID, die unsere Gäste, Freunde und Bekannte gleichermassen nutzen.
Was auch immer sehr vernünftig ist, denn MSSIDs Setups ziehen immer die Performance eines WLANs durch den damit vervielfachten Steuerungstraffic runter. 👍
alle anderen werden in das Gastnetz geschoben
Das macht man dann, wie oben schon beschrieben, mit dem DEFAULT Statement in der users Konfig Datei auf dem Radius Server oder eben, sofern auf der AP Hardware supportet, Über die Auth Fail oder Guests VLANs. face-wink
GerdKuehner
GerdKuehner Jul 12, 2023 at 07:48:09 (UTC)
Goto Top
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".

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. face-sad
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
aqui
aqui Jul 12, 2023 updated at 11:43:03 (UTC)
Goto Top
Ich checke das auch nochmal mit der 32Bit Version vom Raspberry OS.
Da es ja so oder so nur noch 64bittige OS gibt wird sich das "Problem" sicher mit der Zeit von selber lösen. 😉
DarkZoneSD
DarkZoneSD Jul 18, 2023 at 06:31:59 (UTC)
Goto Top
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
aqui
aqui Jul 18, 2023, updated at Oct 11, 2023 at 07:09:42 (UTC)
Goto Top
Hi Flo!
Du kannst dich immer grob an einem Raspberry Pi orientieren mit dem es ja sauber rennt. Auch ein Orange Pi mit 1G RAM und 16G SD Karte wuppt das für kleinere bis mittlere Netze. face-wink
Ansonsten ist eine pauschale Aussage natürlich nicht einfach wenn man nicht ungefähr weiss wieviel Endgeräte der Server bedienen soll.
Von dieser Anzahl hängen ja erwartungsgemäß auch die Log Einträge ab wenn du alles loggen willst. Dazu machst du aber leider keinerlei hilfreiche Aussagen so das eine zielführende Antwort schwer wird um nicht ins Kristalkugeln abzudriften. ☹️
Die meisten Distros machen zudem eine Log Rotation so das das Log hier nicht überquillt. Es ist auch fraglich ob man sich auch alle erfolgreichen Authentisierungen ansehen will und muss.
Normal reichen ja die abgewiesenen, damit man sehen kann wo sich Eindringlinge zu schaffen machen. Ggf. loggt man noch deren für den Versuch verwendete Passwörter mit.

Letztlich ist das aber natürlich immer eine persönliche Geschmackssache was man gut findet und loggen möchte und was nicht, keine Frage!
Mit deinen 50G bist du aber schon sehr gut aufgestellt. Ein df -h zeigt dir ja auch immer wie voll oder leer die Disk ist. Mit einem Browser basierten Tool wie Loganalyzer kann man das Radius Log sogar noch bequem GUI basierend mit einem Browser bedienen.

Wenn der Server sonst nichts anderes zu tun hat und ein normales KMU Netz bedient reichen 2G RAM und 1 CPU mit 32G Disk. Wer etwas mehr Resourcen hat nimmt die klassichen 4G RAM, 2 CPUs und 64 oder 128G Disk. Die Grenzen sind da fliessend. Außerdem kann man ja auch immer noch nachträglich "nachlegen" bei einer VM. 😉
DarkZoneSD
DarkZoneSD Jul 18, 2023 at 07:49:23 (UTC)
Goto Top
Danke für die ausführliche Antwort, ja das mit der Kristallkugel ist schwierig, ich verlege meine immer wieder face-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
aqui
aqui Jul 18, 2023 at 08:16:26 (UTC)
Goto Top
Ich habe die VM mit 2 vCpus und 4GB RAM aufgesetzt
Damit bist du absolut auf der sicheren Seite, das könnte auch das 10fache der Endgeräte bedienen!
DarkZoneSD
DarkZoneSD Jul 18, 2023 at 09:27:20 (UTC)
Goto Top
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.
config
Der Server möchte aber nicht starten.
restartnginx
servicestatus

Die phpinfo.php wurde auch angelegt. Die PHP Version sollte eigentlich stimmen..
php-v

Grüße

Flo
aqui
aqui Jul 18, 2023, updated at Oct 11, 2023 at 07:12:05 (UTC)
Goto Top
Der Server möchte aber nicht starten.
Hi Flo,
Kleiner Flüchtigkeitsfehler von dir aber mit großer Wirkung!!
Der Server ist erwartungsgemäß unschuldig, denn DU hast vergessen das Kommentarzeichen "#" vor der einsamen, geschweiften } Klammer unterhalb von fastcgi_pass 127.0.0.1... zu entfernen!!! 😉
Die "}" gehört noch zur Location Definition beim PHP Setting in den {..} Klammern.

Fazit:
Nächstes Mal besser die Brille aufsetzen und auch wirklich einmal die Fehlermeldung lesen! Dort steht ja eigentlich ganz deutlich "expecting...}"! Sprich "...ich erwarte noch eine geschweifte Klammer zu" damit ich funktionieren kann! 😎
DarkZoneSD
DarkZoneSD Jul 18, 2023 at 10:18:58 (UTC)
Goto Top
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 face-smile

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
aqui
aqui Jul 18, 2023, updated at Oct 11, 2023 at 07:14:27 (UTC)
Goto Top
Wenn ich die Connection daten für root setze funktioniert es.
Du kannst das auch nur als Root User bzw. Datenbank Admin mit entsprechenden Rechten machen!
Also works as designed und steht auch gleich als Anmerkung am Anfang so im Tutorial! face-wink
Die Berechtigung für radiusdb.* sollte aber doch eig reichen
Nope, an der Datenbank an sich und ihrer Struktur darf bekanntlich nur der Oberadmin (root) oder ein User der sudoers Gruppe mit Rootrechten rumfummeln!
Zitat vom o.a. Tutorial: "...wird durchgängig mit Root User (sudo su) Rechten installiert!" 😉
anlagenbau
anlagenbau Sep 25, 2023 at 08:31:27 (UTC)
Goto Top
Ich bekomme beim Php-Test die Fehlermeldung "502 Bad Gateway" im Browser angezeigt, woran kann das liegen?
DarkZoneSD
DarkZoneSD Sep 25, 2023 at 10:04:16 (UTC)
Goto Top
Kann viele Gründe haben, kann sein das er Upstream von Server keine Verbindung aufbauen kann. Schau mal auf deinen Network traffic ob der geblockt wird.
aqui
aqui Sep 25, 2023, updated at Oct 11, 2023 at 07:15:51 (UTC)
Goto Top
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.
root@server:/home/admin# php -v
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group Zend Engine v4.2.7, Copyright (c) 

root@server:/home/admin# less /etc/nginx/sites-available/default | grep php
	# Add index.php to the list if you are using PHP
	index index.html index.htm index.php;
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	#	# With php-fpm (or other unix sockets):
		fastcgi_pass unix:/run/php/php8.2-fpm.sock; 
Hier PHP Ver. 8.2 die mit der Defintion im Nginx übereinstimmen muss.
anlagenbau
anlagenbau Sep 25, 2023 at 11:10:01 (UTC)
Goto Top
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 face-smile
anlagenbau
anlagenbau Sep 25, 2023 at 11:14:52 (UTC)
Goto Top
Zitat von @aqui:

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...
aqui
aqui Sep 25, 2023, updated at Oct 11, 2023 at 07:19:10 (UTC)
Goto Top
👍 👏
Danke für das Feedback. Ich passe das Tutorial oben noch einmal mit einem direkten Hinweis auf diesen Punkt an!
habe ich die Firewall(ufw disable) deaktiviert
Das ist nicht erforderlich, denn die Firewall ist zwar aktiv hat aber im Default kein Regelwerk und lässt somit eh alles durch!
bis auf das ich eine IP vergeben habe
Welche denn?? Normalerweise arbeitet Ubuntu im Default mit DHCP so das dein Server sich immer eine aktuelle IP aus dem Netz zieht sollte dort ein DHCP Server wie z.B. ein Heimrouter etc. aktiv sein!
Ein ip a sollte dir die aktuelle IP Adresse des Ubuntu Servers zeigen!

Dann kannst du gleich deinen Browser aufmachen auf deinem PC im Netz und versuchen mit http://<ip_adresse_server> auf den Server zuzugreifen, was dann auch problemlos aus dem Netzwerk klappen sollte.
Ist das der Fall, kannst du auch mit einem PuTTY SSH Client (Windows) direkt aus dem Netzwerk auf den Ubuntu Server zugreifen und konfigurieren. 😉
Matze005
Matze005 Dec 23, 2023 at 20:59:17 (UTC)
Goto Top
Hallo,

Danke für die Anleitung, ich hatte Monate verbracht daloradius auf einen Raspi 4 zum laufen zu bekommen ohne Erfolg.
Ich nutze Mac-Authentisierung mit einem Mikrotik CCR2004, nach einer Änderung von "Tunnel-Private-Group-Id" in "Mikrotik-Wireless-VLANID" gefolgt von ":=" funktioniert bei mir die dynamische VLAN Zuweisung.
Es funktioniert aber immer noch nicht unter Users Listing die Last Login Time und unter Users Accounting werden keine Date angezeigt.

Für Eure Hilfe danke ich vorab
aqui
aqui Dec 23, 2023 updated at 21:19:57 (UTC)
Goto Top
Es funktioniert aber immer noch nicht unter Users Listing die Last Login Time
Da hast du Recht, das ist leider (noch) ein Fehler im Tutorial. face-sad
Dieser Radius Parameter greift nur für Logins, PPP basierte Protokolle und User Authentisierungen bei VPNs usw. Er greift explizit nicht für .1x oder MAB.
unter Users Accounting werden keine Daten angezeigt.
Im Server ist das Accounting immer aktiv. Hast du den Client so konfiguriert das er einen Accounting Request mitschickt? Z.B. bei einem Cisco Switch aaa accounting dot1x default start-stop group radius.
Matze005
Matze005 Dec 25, 2023 at 07:33:08 (UTC)
Goto Top
Danke für Deine Antwort,

Im Server ist das Accounting immer aktiv. Hast du den Client so konfiguriert das er einen Accounting Request mitschickt? Z.B. bei einem Cisco Switch aaa accounting dot1x default start-stop group radius.

Da komme ich nicht weiter, meine Netzwerkgeräte sind alle von Mikrotik. Wenn ich im Router und/oder Cap-Manager etwas ändere was mit "dot1x" zu tun hat bekomme ich kein Zugang zum WLAN.

Aber Daloradius funktioniert soweit, meine WLAN-Geräte kommen ins jeweilige VLAN. Das zufügen, ändern oder entfernen von Geräten ist bei Daloradius wesentlich komfortabler als bei freeradius.

Danke
GerdKuehner
GerdKuehner Feb 17, 2024 at 08:09:38 (UTC)
Goto Top
Guten Morgen zusammen,

stehe gerade vor einem ganz kniffligen Problem, bei dem ich jetzt wirklich komplett anstehe, nicht mehr weiter weiß face-smile.

Gestern habe ich den UDR gegen einen UX getauscht, er reicht für meine Zwecke vollständig.
Die Konfiguration des UDR konnte ich ohne Probleme übernehmen, der UX läuft auch einwandfrei, per Mesh angebunden sind zwei AP´s, ein nanoHD und ein U6-Extender.

Radius funktioniert auch weiterhin (fast) einwandfrei, jetzt kommt das lustige Verhalten:
Alle Wlan-Geräte, die sich mit dem UX verbinden, liefern keine Upload/Download-Daten, sie werden im Radius zwar als online angezeigt, UL/DL bleibt aber auf n/a bzw der Zähler geht nicht weiter.
Verbinden (meshen) sich die Wlan-Geräte mit einem der beiden AP´s, werden Upload/Download-Daten ausgegeben, bzw. im Radius-Server gespeichert.

Ich bin zuviel Laie, als dass ich den Fehler finde. Der UDR, und jetzt der UX haben die gleiche IP, für die Geräte im Netz hat sich ja nichts geändert. Port 1813 für das Accounting ist richtig. Warum zählt der Traffic an den AP´s (die ja per Mesh am UX angebunden sind), und am UX selbst nicht? Ich komm nicht drauf.

Was mir noch aufgefallen ist.
Alle Wlan-Geräte zeigen im Radius unter (NAS) die Station-ID des AP´s an, mit dem die Geräte verbunden sind. Lustigerweise ist die NAS-Mac-Adresse, also Station-ID im letzten Octet eine Stelle höher, als die tatsächliche Hardware-Mac-Adresse es ist. Beispiel:
Hardware lt. UniFi: XX-XX-XX-XX-XX-B8
Hardware lt. Radius XX-XX-XX-XX-XX-B9
aqui
aqui Feb 17, 2024 updated at 11:59:49 (UTC)
Goto Top
Das ist eigentlich eine UDR/UX spezifische Geräte Thematik die hier nicht als Troubleshooting Thread in das Tutorial gehört sondern besser in einen separaten Thread, den du mit einem hiesigen Verweis dafür aufmachen solltest.
Nur so viel: Wenn die Hersteller Firmware die NAS ID ändert ist das deren Beritt ob man das macht oder nicht. Üblich ist es ganz sicher nicht und vermutlich ein Bug aber ist wohl auch diesem Hersteller und seiner berüchtigten FW Qualität geschuldet.
Wenn der Radius das im -X Debug Mode so anzeigt, kannst du davon ausgehen das es auch stimmt. Ein zusätzlicher Wireshark Trace würde es noch bestätigen.
Port 1813 ist zweifelsohne korrekt aber Accounting muss auch im Endgerät explizit aktiviert sein. Es reicht nicht nur Authentication zu konfigurieren!
Fazit: Bitte einen spezifischen Thread dazu aufmachen!
White-Rabbit2
White-Rabbit2 May 10, 2024 updated at 16:33:18 (UTC)
Goto Top
Hallo Aqui.
Ich habe eine freeRADIUS-Server + mySQL + daloRADIUS (auch) nach Deiner Anleitung installiert. Nun bin ich soweit, dass ich User unter daloRADIUS anlegen und auch einen "Test User Connectivity" erfolgreich durchführen kann. Das klappt also soweit alles.

In Deiner Anleitung schreibst Du unter "Nutzer Account Check", dass man unter "Config - Maintenance" auch die Verbindung für MAC-basierte Auth. prüfen kann. Kannst Du das nochmal genauer ausführen, wie/wo man das für diesen Fall prüfen kann? Bei den User-Details steht für so eine MAC-Adresse bei mir "Check Attributes: Auth-Type: Accept".
Das müsste doch so passen, oder? Ich finde leider dennoch keinen Weg, wie ich prüfen kann, ob die Verbindung über die MAC-Adresse funktioniert oder nicht.

Dann noch eine andere Sache: Auch den LogAnalyzer habe ich erfolgreich installiert. Allerdings sehe ich dort unter den freeRADIUS-Logs als letzten Eintrag bisher nichts weiter außer ": Info: Ready to process requests"
Sollte da nicht auch noch weitere Einträge ankommen?

Danke für die Klärung -- und Danke für Deine Anleitung. Das Thema bleibt leider ziemlich komplex und es schleichen sich leicht Fehler ein.
aqui
aqui May 10, 2024 updated at 17:40:38 (UTC)
Goto Top
Hallo Weisshase
Die Mac Authentisierungen sind ja auch nichts anderes als klassische Authentisierungen auf Username/Passwort Basis wie bei .1x auch. Wenn du also beim Check als User und Passwort die Mac Adresse einträgst kannst du das genausogut testen wie alles andere auch.
mac
Bei den User-Details steht für so eine MAC-Adresse bei mir "Check Attributes: Auth-Type: Accept".
Dann hast du die "Quick User Option" gewählt beim Anlegen eines Benutzers, kann das sein?!
Mit der "Quick" Option findet gar keine Prüfung mehr auf das Passwort statt sondern der Radius verpasst diesem Client dann schon aufgrund des passenden Usernamen des Status "Accept" und prüft das Passwort gar nicht erst.
Das kann natürlich fatal und auch gefährlich sein wenn man z.B. 3 User mit Namen Schulze oder Meier hat. Ob man diese Option zur Einrichtung nutzt muss jeder selber entscheiden, denn damit verzichtet man auf eine Menge an Sicherheit.
In jedem Fall ist die klassische Anlage eine Benutzers deutlich sicherer.
Ich finde leider dennoch keinen Weg, wie ich prüfen kann, ob die Verbindung über die MAC-Adresse funktioniert oder nicht.
Liegt doch eigentlich auf der Hand: Einfach die Mac Adresse als Usernamen und Passwort eingeben und fertisch! Siehe Screenshot oben! 😉
Bei dir mit deinem Quick User kannst du sogar das Passwort weglassen...
Allerdings sehe ich dort unter den freeRADIUS-Logs als letzten Eintrag bisher nichts weiter außer ": Info: Ready to process requests"
Hast du denn das Logging wie oben im Tutorial im Kapitel "Freeradius Logging" unter /etc/freeradius/3.0/radiusd.conf überhaupt aktiviert?? Im Default ist das deaktiviert!
Das Thema bleibt leider ziemlich komplex
Solche Aussagen sind, wie immer, rein relativ! face-sad Für einen Netzwerk Admin mit etwas Grundkenntnissen ist das eher eine einfache Sache. face-wink
White-Rabbit2
White-Rabbit2 May 10, 2024 updated at 18:10:18 (UTC)
Goto Top
Hi.
Ich habe den User über das Menu im WebUI angelegt. Ob es da mit Version 2.1 beta (wie im alten daloRADIUS 1.x Interface) auch ein Quick-Add gibt, kann ich gerade nicht auswendig sagen, aber wenn ich den User über die MAC-Adresse angelegt habe, konnte ich in dem Menu, das ich gesehen habe, gar kein Passwort eintragen. Auch im Nachhinein war das Feld bei mir ausgegraut, so dass ich auch beim Editieren eines "Users" (bzw einer MAC-Adr) auch nicht im Nachhinein die MAC oder etwas anderes nochmal als Passwort setzen konnte.
Ich kann's aber beim nächste Versuch auch mal direkt mit radtest auf der Konsole ausprobieren ... dann weiß ich mehr.

Das freeRADIUS-Logging habe ich genauso aktiviert, wie Du es beschrieben hast. Aber demnach sollten ja auch nur fehlgeschlagene und keine erfolgreichen Logins im Log erscheinen ... von daher ist es vielleicht doch ganz richtig so.

Was die Komplexität angeht: Na ja .... freeRADIUS setzt sich aus extrem vielen Details zusammen. Ich finde das schon deutlich komplexer als andere Dienste. Vor allem, wenn dann noch EAP-TLS oder sonstwas dazu kommt... aber ist ja gut, wenn's Tutorials gibt. Leider gibt's unter daloRADIUS aber trotzdem noch genug Menupunkte, die mir noch nicht klar sind ... aber eins nach dem anderen.

Wo ich übrigens schon dabei bin: Mir kommt eine MAC-Auth ja eigentlich generell alles andere als sicher vor ... (Stichwort "MAC-Spoofing"). Ist das nicht eher ein Bequemlichkeits-Feature? So nach dem Motto:"Bekannte Geräte lasse ich so rein, aber wenn einer mit der gleichen MAC daher kommt, ist er eben auch drin ..."??
aqui
aqui May 10, 2024 updated at 18:35:27 (UTC)
Goto Top
Ich habe den User über das Menu im WebUI angelegt.
Die Kardinalsfrage ist eben das WIE! Auch die Version 2.1 hat beide Optionen zum Anlegen der User:
dalo
Nach deiner vagen Beschreibung hast du dich wohl fälschlich für die "Quick Add" Variante entschieden die das Passwort nicht überprüft.
Letztlich ist das aber für die Prüfung von Mac Adressen im GUI bei MAB egal.
konnte ich in dem Menu, das ich gesehen habe, gar kein Passwort eintragen.
Ja weil du vermutlich fälschlicherweise immer das "Quick Add" Menü benutzt hast!!
Das "normale" User Menü fragt logischerweise das Passwort immer ab. Zusätzlich hast du noch die Option das Passwort verschlüsselt anzuzeigen.
Eigentlich kann man das auch ohne Brille nicht übersehen!! face-big-smile
user
Aber demnach sollten ja auch nur fehlgeschlagene und keine erfolgreichen Logins im Log erscheinen
Nein, dann hast du das Tutorial missverstanden!
Du kannst selbstverständlich mit auth = yes auch beides anzeigen. WAS du vom Logging nutzt obliegt doch immer DIR als Netzwerk Admin!
von daher ist es vielleicht doch ganz richtig so.
Wenn du nur das Logging der abgewiesenen User aktiviert hast und keine sollchen User bis dato gehabt hast ist das in der Tat normal.
Mir kommt eine MAC-Auth ja eigentlich generell alles andere als sicher vor
Das ist natürlich richtig und der generelle Nachteil vom MAB weil Mac Adressen konfigurierbar sind. Zwar erfordert das einige IT Kentnisse aber es bleibt ein Restrisiko.
Gleiche Mac Adressen ergibt natürlich Chaos in einem Netzwerk. Die dürfte es niemals geben. Es kann bzw. darf also niemals jemanden geben der mit der gleichen Macadresse in einer Layer 2 Broadcast Domain daherkommt. Sowas würde man sofort an einer generell gestörten Kommunikation bemerken, denn eine saubere Layer 2 Connectivity ist die Basis jeglicher Kommunikation in einem Netzwerk. Aber das weisst du auch alles selber. face-wink
Besser ist dann letztlich immer 802.1x Authentisierung oder die Verwendung von Zertifikaten was ja auch kein Hexenwerk ist sowas mit dem Radius umzusetzen.
White-Rabbit2
White-Rabbit2 May 10, 2024 updated at 23:52:06 (UTC)
Goto Top
Hallo Aqui.
Ok, ich habe den Server gerade nochmal hochgefahren, um nachzusehen, ob ich wirklich soooo blind war ... hier sieht das ganze aber so aus:

screenshot_20240511_004602
Ich habe also nicht das "Quick-Add"-Menu verwendet und von einem Passwort steht da im Fall von "Based on MAC-address" ebenfalls nichts. Den Screenshot, den Du oben gepostet hast, sieht man nur, wenn man einen "echten User" anlegen will -- also "Based on username and password". Für einen MAC-based-"User" sieht das also anders aus.

Ich habe den Connectivity-Check zunächst nur über die Konsole hinbekommen:
 echo "User-Name='76:35:1f:12:11:10',User-Password='76:35:1f:12:11:10'" | /usr/bin/radclient -c '1' -n '3' -r 1  -x -s localhost:1812 auth <secret>  

Dabei kam dann heraus:
Received Access-Accept Id 196 from 127.0.0.1:1812 to 127.0.0.1:53068 length 20
Packet summary:
	Accepted      : 1
	Rejected      : 0
	Lost          : 0
	Passed filter : 1
	Failed filter : 0
Sieht also gut aus -- der MAC-based-"User" kann sich also offenbar erfolgreich anmelden.
Erst später habe ich gesehen, dass Du das im WebUI vermutlich über Config -> Maintenance -> Test User Connectivity gemacht hast?! (Man kann bei einem "echten" User direkt über "Edit User" -> Actions -> Test Connectivity" gehen aber dieser Menupunkt fehlt bei MAC-based-"Usern")

Gerade noch einen zweiten Test durchgeführt. Wenn ich das Passwort ganz weg lasse (oder auch etwas beliebiges anderes als Passwort verwende), klappt es ebenfalls, also:
 echo "User-Name='76:35:1f:12:11:10' " | /usr/bin/radclient -c '1' -n '3' -r 1  -x -s localhost:1812 auth <secret>  
liefert ebenfalls "Accepted: 1". Es sieht also so aus, als hättest Du Recht: Die MAC-Adresse wird direkt akzeptiert -- es gibt also kein Passwort. Es bleibt daher dabei, dass ich einem MAC-based-"User" kein Passwort mitgeben kann -- auch nicht seine MAC-Adresse, da das Feld ausgegraut ist. Das scheint in diesem Fall gar nicht notwendig oder gewollt, denn jedes Passwort wird akzeptiert!?!

Aber eine andere Beobachtung funktioniert: Wenn ich eine andere MAC-Adresse verwende, die nicht registriert ist, landet der Eintrag im LogAnalyzer. Das läuft also wie es sein soll face-smile
aqui
aqui May 11, 2024 updated at 07:27:34 (UTC)
Goto Top
So sollte es bei einer korrekt installierten Version 2.1 in der User/Pass Eingabemethode aussehen:
dalo
Du kannst am korrekten Menü sehen das dort explizit nach Username/Passwort in der Eingabemaske gefragt wird!! Das kann natürlich auch die Mac Adresse sein! Hat hier den Vorteil das man auch das Format (unterschiedliche Trennungszeichen) dediziert angeben kann.
Für einen MAC-based-"User" sieht das also anders aus.
Das ist natürlich Quatsch und weisst du auch selber! Echte und "unechte" User wären ja Unsinn.
Du kannst logischerweise natürlich auch "Based on username and password" klicken und dann bei Username und Passwort entsprechend die Mac Adresse angeben. Das ist doch nur kosmetisch und MAB wird im Radius genau so behandelt wie Usernamen auch. Weiss man aber eigentlich auch... face-wink
Entsprechen kannst du das ja auch sehen wenn du dir einmal eine statische Konfig über die "users" Datei ansiehst! Da ist das ja nicht anders. Etwas logisch mitdenken kann also nicht schaden... 😉

Und egal ob man es über das klassische User/Pass Interface oder "Quick Add" angibt kann man ALLE User egal ob Mac oder .1x alle auch immer über das GUI checken. Da muss man nix über das CLI eingeben, kann das aber natürlich machen wenn man es etwas umständlicher möchte. face-wink

Es bleibt daher dabei, dass ich einem MAC-based-"User" kein Passwort mitgeben kann
Nope! Liegt weiter daran das du die falsche Eingabemethode gewählt hast wie bereits mehrfach gesagt! face-wink
White-Rabbit2
White-Rabbit2 May 11, 2024 updated at 14:19:05 (UTC)
Goto Top
Ach so -- jetzt ist klar, was Du meinst ... dann ist die Menuführung im WebUI allerdings irreführend gemacht bzw legt sie den Weg nahe, den ich gewählt habe. Oder geht das nur mir so??
Ich finde es nach wie vor nicht ganz einsichtig, warum ich bei "MAC-based" kein Passwort vergeben kann aber bei "New User" (für eine MAC-Adr) sehr wohl. Scheinbar ist der Gedanke dahinter, dass eine eingetragene MAC-Adr einfach akzeptiert werden soll ... (es ist ja auch kein riesiger Zugewinn, wenn das Passwort der MAC-Adr entspricht)

(Dass es da intern keinen Unterschied zwischen User und MAC gibt, ist mir schon klar ... deswegen habe ich das alles immer in Anführungszeichen gesetzt. Es müsste vielleicht besser "User" und "Device" heißen aber ich bin der Einfachheit halber immer bei der Bezeichnung (MAC-based)-"User" (in dem Sinn als "unechter User" gemeint) geblieben....)

Dann werde ich es nochmal mit einem Passwort für eine MAC-Adresse versuchen -- danke für die Klärung. Offenbar war ich also doch mit Blindheit geschlagen...

[etwas später] -- hat funktioniert! daloRADIUS zeigt die beiden Zugänge mit einem unterschiedlichen Symbol an:
screenshot_20240511_161554
Der Zugang in der Mitte hat kein Passwort -- der untere wurde so eingerichtet wie von aqui beschrieben.

Und nun noch eine Frage: Ich würde den freeRADIUS-Server nun etwas weiter konfigurieren ... und zwar kommen bei uns eigentlich alle User-Accounts aus einem LDAP/AD ... das Modul freeradius-ldap wäre natürlich verfügbar aber ich weiß nicht, ob das zur Zusammenarbeit mit daloRADIUS bewegen kann? Hat das auch schon mal jemand geschafft?
aqui
aqui May 11, 2024 updated at 15:40:21 (UTC)
Goto Top
warum ich bei "MAC-based" kein Passwort vergeben kann aber bei "New User" (für eine MAC-Adr) sehr wohl.
Na ja...wenn man einmal etwas logisch nachdenkt macht das schon Sinn. Die Mac Adresse ist bei MAB ja quasi immer an den (Mac) Usernamen fest gebunden. Switches und WLAN Accesspoints übermitteln beide immer gleich. Das Einzige was ggf. veränderlich ist ist das Format (Trennungszeichen).
Ein Benutzer kann eine NIC niemals so betreiben das sie zu ihrer BIA Mac Adresse (Burned In Address) ein anderes Passwort, sprich andere Mac mitgibt. Das MAB Verfahren (Mac Authentication Bypass, Mac Authentisierung) lässt das technisch nicht zu. Folglich ist es dann eigentlich obsolet die Mac nochmal extra als Passwort einzugeben. Auch wenn du die Mac manipulierst manipulierst du damit das Passwort immer mit. Du wirst das Passwort bei MAB prinzipbedingt also nie von der Mac trennen können.
Es ist also schon nachvollziehbar das es dafür den Quick Mode gibt.
es ist ja auch kein riesiger Zugewinn, wenn das Passwort der MAC-Adr entspricht
Du sagst es!! 😉
zeigt die beiden Zugänge mit einem unterschiedlichen Symbol an:
Ja, macht Sinn um sie unterscheiden zu können.
aber ich weiß nicht, ob das zur Zusammenarbeit mit daloRADIUS bewegen kann?
Das klappt natürlich wäre aber sinnfrei wenn es rein nur AD User bedienen müsste.
LDAP hat ja eine eigene Datenbank und damit wäre sowohl die MariaDB als auch Dalo eigentlich völlig obsolet.
Es sei denn du hast sowohl als auch User. Sprich einige die nicht im LDAP sind und da auch nicht rein sollen wie ggf. externe Mitarbeiter oder temporäre Gäste. Damit wäre es dann wieder sinnvoll, denn dann prüft der Radius erst die lokale Datenbank und wenn er da nicht fündig wird gibt er weiter ans LDAP. Das wäre ein übliches und auch gängiges Design.
Wenn dein AD allerdings rein MS basierend ist könntest du den Freeradius auch ganz weglassen und das mit dem Winblows eigenen Radius Server, dem NPS lösen.
Es führen bekanntlich viele Wege nach Rom... 😉
White-Rabbit2
White-Rabbit2 May 12, 2024 updated at 07:53:54 (UTC)
Goto Top
Hallo aqui.
Ok -- ergibt irgendwie alles Sinn, wenn man darüber nachdenkt face-smile

Nochmal zum freeRADIUS-ldap und den Usern: Bei uns ist es so, dass wir einen Samba-Server als AD nutzen. Darin sind sämtliche User-Accounts und eigentlich wäre es super, wenn man diese Accounts nutzen und ein paar zusätzliche Extras einbauen könnte. Die Sache mit dem MAB ist z.B. ein "must-have".

Prinzipiell würde es mir reichen, wenn daloRADIUS das Ein-/Ausloggen aller LDAP-User auch mitbekommt und in eine Log-Datei (bzw -Datenbank) schreibt -- vor allem, wenn z.B. ein Account auf zig Geräten verwendet wird.

Darüber hinaus fallen mir aber noch zig andere Dinge ein, die man eigentlich besser mit einer ausgewachsenen NAC-Appliance wie z.B. https://www.packetfence.org regeln sollte. Ich habe mir das Paket auch schon mal als VM installiert (vorkonfigurierte ZEN-Version und plain). Aber das Paket ist echt komplex und obwohl es eine ausführliche Doku gibt, fehlt sowas wie ein Walkthrough. Auch Video-Tutorials gibt es nur sehr wenige, so dass ich damit leider nicht besonders weit gekommen bin. Daher bin ich dann (wieder) bei daloRADIUS gelandet -- wohl wissend, dass das nicht wirklich vergleichbar ist und viel weniger kann.

Mit packetfence könnte man so ziemlich alle "Probleme" (Dauer-Zugriff für LDAP/AD-User, Captive Portal, Voucher, Gästenetz, MAB, usw. usw. ...) unter einer Haube regeln aber das hat's in sich ... ("out of scope")

Mit daloRADIUS kann man ja immerhin schon mal die Basics regeln (was auch schon gut ist).
aqui
aqui May 12, 2024 updated at 09:49:30 (UTC)
Goto Top
Bei uns ist es so, dass wir einen Samba-Server als AD nutzen.
OK, dann macht das natürlich Sinn auch das LDAP Modul zu aktivieren, was es mit dem "Conditional Load" im Freeradius Sestup ja auch immer schon ist. Man muss dort lediglich nur noch IP und Zugangscredentials angeben. Im Internet gibt es zig Tutorials dazu:
https://wiki.debianforum.de/Anbindung_von_Samba_und_freeRadius_an_LDAP
Damit kann der Freeradius dann natürlich beides nutzen. Er fragt ja auch immer alle Authentisierungs Optionen ab solange du entsprechende Module nicht deaktiviert hast. Also die users Datei, den SQL, LDAP usw. Das ist ein übliches Setup.

Nicht aber das du hier etwas grundlegend falsch verstehst: Dalo ist ein reines GUI Frontend für die User SQL Datenbank und der direkten User Erfassung in der Datenbank. Damit ist keine User Erfassung in der LDAP Datenbank möglich. Der Freeradius fragt zwar immer beides ab aber die User Erfassung im LDAP geht über die Samba Tools oder andere Frontends.
Wenn du rein nur LDAP User hast ist das Dalo GUI und die MariaDB eigentlich obsolet für dich. Da würde es dann reichen NUR die LDAP Anbindung zu aktivieren und gut iss.
White-Rabbit2
White-Rabbit2 May 12, 2024 updated at 10:10:03 (UTC)
Goto Top
Ne, das hatte ich schon so verstanden ... aber es ist auf dem Weg mit dalo (also zusätzlich zum freeRADIUS Server auf ein und derselben VM) eben relativ bequem möglich, zusätzliche User/MACs zu verwalten. Die User aus dem LDAP sollen schon da bleiben wo sie sind.

Für uns wäre es aber sehr hilfreich, wenn die erfolgten bzw erfolglosen Login-Versuche aller User (also sowohl der von dalo verwalteten zusätzlichen Logins als auch derjenigen, die aus dem LDAP kommen) in der SQL-DB "zentral" gesichtet werden könnten.

Etwas Hintergrund dazu: Auf dem Produktivserver (der im Moment sowohl über SAMBA-4 das LDAP/AD als auch den freeRADIUS-Dienst hält) will ich natürlich möglichst wenig im laufenden Betrieb ändern -- und schon gar nicht "irgendwelche" Änderungen am freeRADIUS-Server durchführen. Dazu gehört auch, dass ich auf dem Produktivserver nur ungerne einen SQL-Server mit dazu installiere ... daher loggen wir dort "aus der Not heraus" im Moment nur in den radutmp/radwtmp-Files (die natürlich schnell groß werden können). Da lag der Gedanke nahe, den freeRADIUS-Server auf eine eigene VM zu bringen -- dann gleich mit SQL und vernünftigem Logging ... und dann kann man auch gleich daloRADIUS mit dazu packen ... so kam da eins zum anderen und ich bin letztlich über Deine Anleitung gestolpert.
aqui
aqui May 12, 2024 updated at 10:12:35 (UTC)
Goto Top
eben relativ bequem möglich, zusätzliche User/MACs zu verwalten.
Richtig! In dem Falle hast du natürlich Recht!
in der SQL-DB "zentral" gesichtet werden könnten.
Das können sie auch, denn der Freeradius logt diese ja über SEIN Logging Setup.
Hier machst du aber vermutlich wieder einen Denkfehler, denn das Radius Logging passiert nicht via SQL Datenbank sondern in einer statischen Datei unter /var/log/freeradius/radius.log.
Diese Datei fragt das Dalo GUI ab (und auch der Loganalyzer) weshalb man sie für den User www-data ja auch readable setzen muss.
Da diese Datei vom Freeradius selber stammt werden dort natürlich auch abgewiesene LDAP User angezeigt. Bzw. das angezeigt was man im Radius Setup eingestellt hat. Das Authentisierungs Logging ist also völlig unabhängig davon ob User aus statischer Datei, SQL oder LDAP stammen. face-wink
White-Rabbit2
White-Rabbit2 May 12, 2024 at 10:15:55 (UTC)
Goto Top
Super -- dann würde das ja für uns aber ganz gut auf diesem Weg funktionieren!

Wir würden in unserem Fall also das dalo-WebUI hauptsächlich zum Einsehen der Logs verwenden (wo auch immer die Logfiles letztlich herkommen). Und on-top hätten wir die Möglichkeit, eben auch MAB zu verwenden ... das ist auf jeden Fall ein Mehrwert.
Und: ich müsste am Produktivserver nicht viel verändern... face-smile
aqui
aqui May 12, 2024 updated at 10:19:11 (UTC)
Goto Top
So ist es!! 😉
Ganz on Top hast du außer MAB auch noch die Option Zertifikate zu nutzen! face-wink
White-Rabbit2
White-Rabbit2 May 12, 2024 updated at 10:28:50 (UTC)
Goto Top
Ja, den Punkt hatte ich bisher noch nicht angesprochen aber das macht unser produktiver freeRADIUS-Server jetzt auch bereits. Wir lassen bestimmte Geräte nur ins WLAN, die über ein gültiges Client-Zertifikat verfügen. Das läuft seit kurzem erfolgreich und es gibt keinen PSK mehr.

Ich habe die Config zu .../eap und .../certs/ bereits auf den neuen dalo-freeRADIUS-Server übertragen. Das hat auch wunderbar funktioniert.

Ich weiß nur noch nicht, wo ich das wiederum im dalo-WebUI finde/einsehe oder gar verwalten kann ... aber kommt Zeit kommt Rat.
aqui
aqui May 12, 2024 updated at 10:39:27 (UTC)
Goto Top
Benutzerzertifikate haben nichts mit statischen oder SQL und LDAP Usern zu tun. Das verwaltet ja die CA z.B. mit XCA.
Du kannst nur sehen wenn sich jemand mit falschem Zertifikat einloggen will und scheitert. Das wird wieder mitgeloggt wenn aktiviert...siehe oben! 😉
VVista
VVista Jul 04, 2024 at 21:33:19 (UTC)
Goto Top
Moin!
Ich habe das Problem, dass wenn ich unter Management > Profiles den Vendor rcf2868 und dann z.B. Tunnel Medium Type auswähle folgende Meldung kommt: Warning. Attribute non-existent or inconsistency in your vendor/attribute dictionary.

Dementsprechend funktionier auch die VLAN Zuweisung nicht face-sad
Hat das zufällig mal jemand gehabt und hat eine Abhilfe?
aqui
aqui Jul 05, 2024 updated at 08:56:23 (UTC)
Goto Top
Du hast Recht, das ist ein Bug im Dalo Radius der aber keinerlei Auswirkungen hat!
Du klickst einfach auf "Schliessen" um die Meldung zu bestätigen und das Attribut wird trotzdem sauber und korrekt übernommen! Siehe Screenshot...
err

Sieht man sich dann das fertige VLAN Profil abschliessend unter "List Profiles" an, dann wird das auch entsprechend richtig dargestellt und ist auch so funktionsfähig aktiv. face-wink
prof
VVista
VVista Jul 07, 2024 at 23:41:09 (UTC)
Goto Top
Augenscheinlich im Test vom Radius funktioniert das auch alles so wie du beschrieben hast.
Er Authentifiziert mich auch, nur das VLAN wird trotz dessen das ich das nun wie du gesagt hattest gemacht habe vom Radius nicht zum AccessPoint übergeben leider.

Vielleicht hat das Problem noch jemand?
Ich setzte UniFi Accesspoints mit einem UniFi Software Controller und einer FritzBox als Router ein.
VVista
VVista Jul 08, 2024 at 00:02:25 (UTC)
Goto Top
Ich habe nun mal einen Test gemacht und folgendes Ergebnis bekommen:
dalo-fehler
aqui
aqui Jul 08, 2024 updated at 06:43:46 (UTC)
Goto Top
Der Test zeigt das alles korrekt funktioniert.
vom Radius nicht zum AccessPoint übergeben leider.
Was hier fast immer falsch gemacht wird ist das die Target Definition vergessen wurde auf REPLY zu setzen!!
group
Wenn das versäumt wurde werden die VLAN Attribute nicht zurückgesendet an den Authenticator und dieser kann sie dann nicht umsetzen.
Im Zweifel auch den Type und Medium Type einmal auf die Zifferndefinition (13, 6) setzen statt String um auf Nummer sicher zu gehen.
Beachte auch das einige Authenticators hier Vendor spezifische Attribute verlangen wie z.B. Mikrotik im WLAN Bereich.
VVista
VVista Jul 08, 2024 at 18:44:37 (UTC)
Goto Top
Danke für deinen Kommentar!
Ich habe es nun nochmals komplett neu installiert und deine Hinweise beachtet.
Ohne Erfolg, ich werde nicht den VLANs zugeweisen.

In einer älteren Installation die im vergangenen Jahr gemacht wurde mit identischer Hardware läuft es, nur sobald dort nun ein weiteres Netzwerk zugefügt werden soll, funktioniert es auch dort nicht. Der Bestand läuft.
aqui
aqui Jul 08, 2024 updated at 19:34:57 (UTC)
Goto Top
Dann kann dein Authenticator ggf. keine dynamischen VLANs?! Bedenke das nicht alle Geräte die Dot1x können auch dynamische VLAN Zuweisung supporten.
Beispiel Cisco SG Switches: Der SG250 kann .1x aber keine dyn. VLANs. Erst der 350er supportet das.

Ganz sicher gehst du mit tcpdump oder dem Wireshark wenn du den Access Accept der vom Radius an den Authenticator zurück geht einmal ansiehst. Siehst du dort die zurückgesendeten VLAN Credentials im Paket supportet dein Authenticator schlicht keine dyn. VLANs.
thaddaeus93
thaddaeus93 Aug 18, 2024 at 21:00:01 (UTC)
Goto Top
Erstmal Danke für diese ausführliche Anleitung!
Leider scheitert es bei mir an der Stelle mit dem freeradius -X

Die Ausgabe endet mit
Unable to open file "/etc/freeradius/3.0/mods-config/sql/main/sql/queries.conf": No such file or directory  
Errors reading or parsing /etc/freeradius/3.0/radiusd.conf

Gerade die letzte Fehlermeldung kann ich mir nicht erklären, da es selbst mit der zurückkopierten Original-Datei nicht funktioniert.

Bei der zweiten Fehlermeldung ..
Unable to open file "/etc/freeradius/3.0/mods-config/sql/main/sql/queries.conf": No such file or directory  

.. fehlt mir schon der komplette Ordner:

2024-08-18 22_58_32-fo1vmvs0012 – root@172.22.16.212 – winscp

Im Ordner "mysql" sind aber denke ich die richtigen Dateien enthalten:

2024-08-18 22_59_34-mysql – root@172.22.16.212 – winscp

Habe ich hier irgendwas falsch gemacht? Danke Euch vorab!

VG
bitnarrator
bitnarrator Aug 19, 2024 at 07:01:32 (UTC)
Goto Top
@thaddaeus93

Check mal deine Pfade:

Unable to open file "/etc/freeradius/3.0/mods-config/sql/main/sql/queries.conf": No such file or directory    

Sollte eher

Unable to open file "/etc/freeradius/3.0/mods-config/sql/main/mysql/queries.conf": No such file or directory    

sein
aqui
aqui Aug 27, 2024, updated at Aug 19, 2024 at 14:03:05 (UTC)
Goto Top
Korrekt! 👍 Vermutlich ein Flüchtigkeitsfehler beim Tippen des Pfades?!
Steht auch oben entsprechend im Tutorial.
Korrekt ist /etc/freeradius/3.0/mods-config/sql/main/mysql/queries.conf
Zumindest gilt das für alle Debian basierende Distros! 😉
Der Inhalt des Verzeichnisses sieht so aus:
root@server://etc/freeradius/3.0/mods-config/sql/main/mysql# ls -l
total 52
drwxr-xr-x 3 freerad freerad  4096 Sep 16  2023 extras
-rw-r----- 1 freerad freerad  9654 May 16  2023 process-radacct.sql
-rw-r----- 1 freerad freerad 24285 May 16  2023 queries.conf
-rw-r----- 1 freerad freerad  6022 May 16  2023 schema.sql
-rw-r----- 1 freerad freerad  1232 May 16  2023 setup.sql 
Beachte auch das du Root Rechte (sudo su) beim Ausführen des freeradius -X Kommandos brauchst.