802.1X und dynamische VLANs im WLAN mit Ubiquiti Unifi

Hier kommt nun endlich mein Folge-Artikel zu dem doch recht erfolgreichen Beitrag über dynamische VLANs in Verbindung mit 802.1X mit Ubiquiti Unifi-Hardware: Einrichtung von 802.1X und Dynamic VLANs mit Ubiquiti USG Pro. Dieser Artikel beschreibt die Einrichtung und Nutzung von Unifi Access Points in Verbindung mit 802.1X und dynamischen VLANs basierend auf der MAC-Adresse.

Eine kurze Übersicht

Grundsätzlich gehe ich in diesem Artikel wieder davon aus, dass das Thema VLANs bekannt ist und ein grundlegendes Verständnis über diese tolle Technik vorhanden ist 🙂

Ziel der Aufgabe soll es sein, dass wie eine WLAN-SSID ausstrahlen und uns mit unseren Geräten dort anmelden können. Je nach Gerät bzw. Adresse soll dann dynamisch das korrekte Netzwerk für das Gerät ausgewählt und zugewiesen werden. In meinem Netzwerk gibt es mehrere VLANs, die für unterschiedliche Zwecke genutzt werden:

  • Private Geräte
  • Das Büro/Firmen-Netzwerk
  • Das “Internet of shitty things” Netzwerk für all die hochsicheren Geräte wie Fernseher, Sonos usw…

Die Anzahl der Netze könnte auch noch deutlich höher sein, belassen wir es in diesem Fall bei diesen drei Netzwerken.

Trennung per VLAN

Jedes dieser Netze wird mittels VLAN voneinander getrennt und isoliert. Früher liefen die Netze alle auf einem Ubiquiti USG Router auf, das Gerät ist mittlerweile einer Fortigate 60F gewichen. Die Fortigate-Router können nahezu alles was man sich vorstellen kann, und da ich die Geräte mittlerweile auch bei einigen Kunden im Einsatz habe, habe ich mir ein Gerät ebenfalls für mein Netzwerk zugelegt. Grundsätzlich sind die Netzwerke untereinander nicht verbunden, dies wäre aber bei Bedarf auch möglich (z.B. Notebook im Privat-Netz muss auf einem Drucker im Firmennetz drucken, …).

Internet oder nicht?

Ich habe den Zugriff nach außen zusätzlich noch gefiltert, so dass nur die Geräte eine Verbindung aufbauen dürfen, denen ich das auch erlaube. Dazu existieren pro Netz/VLAN Gruppen in der Firewall, die bei Bedarf erweitert oder entfernt werden können. Somit kann genau gesteuert bzw. überwacht werden, wer wohin kommunizieren darf und wer nicht.

Der genutzte RADIUS-Server

Da ich in meinem Fall ja eine Fortigate als primären Router nutze, entfällt bei mir die Möglichkeit, den USG-internen RADIUS-Server zu nutzen. Wer dies nicht möchte, kann natürlich gerne weiterhin den integrierten Dienst aktivieren und nutzen. Die Konfiguration ist identisch wie in meinem vorherigen Beitrag: https://www.zueschen.eu/einrichtung-von-802-1x-und-dynamic-vlans-mit-ubiquiti-usg-pro/ => Der interne RADIUS-Server

Installation von Freeradius

Zur Authentifizierung meiner Clients nutze ich ein virtuelles Debian-System in der gerade aktuellen Version 10.6.0. Die Installation geschieht nach Standard-Einstellungen, ich installiere keinen Desktop, dafür aber einen SSH-Server zum Zugriff per Netzwerk. Nach der Grundinstallation kann der Freeradius-Server installiert werden.

Die Konfigurationsdateien liegen nach der Installation unter

Interessant sind für uns die folgenden beiden Dateien:

clients.conf

In dieser Datei werden die Geräte eingetragen, die eine Verbindung zu unserem RADIUS-Server aufbauen dürfen. Hier können entweder einzelne IP-Adressen eingetragen werden oder alternativ ein IP-Bereich bzw. Subnetz. Da ich ein eigenes Management-Netzwerk für meine Geräte habe, habe ich hier das komplette Subnetz eingetragen:

Nach diesen Anpassungen kann die Datei gespeichert und geschlossen werden.

users

Diese zweite Datei enthält die MAC-Adressen der Geräte, die wir zuweisen möchten. Um den Server generell zu testen, kann ganz oben in der Datei der folgende Eintrag gemacht werden:

Nun können wir die Datei speichern und müssen den RADIUS-Service einmal stoppen.

Nachdem der Dienst aus ist, können wir ihn interaktiv wieder starten. Dies hat den Vorteil, dass wir direkt sehen, ob der Dienst korrekt arbeitet oder nicht. Dies geschieht durch den Aufruf der Applikation mit dem Schalter “-X”.

Manueller Test

Um den Server zu testen, kann in einer zweiten SSH-Sitzung der folgende Befehl abgesetzt werden:

Wie es nicht aussehen sollte

Wenn der Eintrag nicht korrekt ist bzw. nicht gesetzt wurde, sieht die Ausgabe wie folgt aus:

Man erkennt sehr gut, dass das Kennwort nicht gefunden wurde und das der Zugriff mit “Access-Reject” verweigert wurde.

Wenn alles klappt

Ist der Eintrag erfolgreich gesetzt worden, muss die Ausgabe wie folgt aussehen:

RADIUS-Server im Unifi Controller eintragen

Ist der Server nun betriebsbereit, können wir im Unifi Controller in den Einstellungen unter Profiles => RADIUS unseren Server eintragen.

Wir benötigen einen Namen, die IP-Adresse von unserer freeradius-VM und das Kennwort, welches in der client.conf von uns konfiguriert wurde. Nun können wir die Einstellungen speichern, mehr müssen wir hier nicht einstellen.

Falls ein USG als RADIUS-Server genutzt wird

Kommt ein USG zum Einsatz, muss dies unter Services => RADIUS => Server aktiviert werden.

Die Benutzer (bzw. MAC-Adressen), die wir später im freeradius-Server konfigurieren, müssen in eurem Fall dann hier unter User konfiguriert werden. Was genau eingestellt werden muss, steht im ersten Artikel 🙂

Geräte eintragen und zuweisen

Welches Gerät in welches Netzwerk fällt, müssen wir nun auf dem freeradius-Server in der Datei users konfigurieren. In meinem Fall sieht die Datei wie folgt aus:

Zum testen habe ich mal die MAC-Adressen von meinem Thinkpad eingetragen. Einmal WLAN, einmal LAN.

  • Der Tunnel-Type muss immer auf 13 stehen, dies sind die gleichen Einstellungen wie im USG.
  • Tunnel-Medium-Type muss auf 6 stehen, dies ist ebenfalls die gleichen Einstellung wie im USG bzw. dem Unifi-Controller.
  • Das gewünschte VLAN, in das der Client zugewiesen werden soll, muss in der freeradius-Konfiguration als Tunnel-Private-Group-ID konfiguriert werden.

Die entsprechenden Einstellungen im Controller mit USG sehen wie folgt aus:

Der letzte Block in der Config-Datei, beginnend mit DEFAULT, führt eine Standard-Konfiguration durch. Dies passiert immer dann, wenn keine der darüber liegenden Regeln greift. Ich führe in meinem Fall eine Zuweisung in ein Fallback-VLAN durch, ohne die Fallback-Konfiguration seitens Ubiquiti zu nutzen. Diese hat den Nachteil, dass sie erst nach 60 Sekunden greift und in dieser Zeit mancher Client schon auf die 169.254-APIPA Adresse geschaltet hat, weil er davon ausgeht, dass kein DHCP zur Verfügung steht. Dies ist hier nicht der Fall, in meiner Fallback-Option mittels RADIUS geht es deutlich schneller (ein paar Sekunden laut freeradius-Logfile).

Man könnte hier theoretisch auf kein VLAN zuweisen, dann würde das Gerät in das Default-LAN fallen, was kein VLAN zugewiesen hat. Das möchte ich aber nicht, ich möchte das Gerät in ein definiertes Fallback-VLAN einsperren.

Vorsicht mit Windows 10 und WLAN und dynamischen MAC-Adressen

Microsoft hat, genau wie Apple in seinem letzten iOS-Update, in Windows 10 eine Funktion eingebaut, die dynamisch MAC-Adressen bei WLAN-Verbindungen nutzt. Ist diese Funktion aktiv, generiert der Client bei jedem WLAN-Netzwerk eine neue MAC-Adresse und nutzt diese für die Verbindung. Dies ist natürlich bei einer Filterung auf MAC-Basis nicht wirklich vorteilhaft. Zu finden ist die Option in den Einstellungen unter Wi-Fi

Die Konfiguration eines WLANs

Damit unser Access Point nun dynamische VLANs und die dazugehörigen IP-Adressen verteilt, müssen/können die Einstellungen wie folgt aussehen:

Ich habe in meinem Fall ein “normales” WPA2 Personal WLAN erstellt. Heißt, ich muss mich mit einem Pre-Shared-Key anmelden und authentifizieren. Dies könnte theoretisch auch ein WPA Enterprise sein, ganz nach Bedarf und Möglichkeiten. Man könnte hier z.B. eine Anmeldung an die Active Directory koppeln, damit jeder Benutzer sich mit seinen persönlichen Credentials anmelden kann.

In den Advanced Options sieht man, dass unter VLAN die Option RADIUS assigned VLAN fest hinterlegt und ausgegraut ist. Dies ist korrekt so und kann auch nicht geändert werden. Alle weiteren Einstellungen können nach Bedarf angepasst und gesetzt werden. Dies wäre z.B. das zeitgesteuerte Ausschalten vom WLAN und noch vieles mehr.

Ganz unten unter RADIUS MAC AUTHENTICATION muss die Option aktiviert werden, weiterhin müssen wir unser vorab angelegtes freeradius-Profil auswählen. Das Format der MAC-Adresse nutze ich komplett in GROSSEN BUCHSTABEN. Dies könnte bei Bedarf auch angepasst werden, dies ist aber der Standard bei Ubiquiti, daher belasse ich es so und trage meine MAC-Adressen alle wie folgt ein.

Das WLAN können wir nun so speichern und mit unseren Geräten testen. Sollte euer freeradius-Service noch mit dem Parameter -X gestartet sein, könnt ihr bei der Verbindung von einem WLAN-Client sehr gut sehen, welches VLAN / Netzwerk dem Client zugeordnet wird.

Ich habe mein Notebook verbunden, hier wird nun im Log direkt angezeigt, dass die Adresse bekannt ist und dem entsprechenden VLAN zugeordnet wird:

Verbinde ich mein Handy, ist dies aktuell noch unbekannt und wird in das Fallback-VLAN / Netz geschmissen. Trage ich die MAC von meinem Handy nun im freeradius ein und starte den Dienst einmal neu, landet das Gerät danach ebenfalls im gewünschten Netzwerk.

Fazit

Der Artikel ist ein bisschen länger geworden als geplant, aber ich hoffe ich habe alle relevanten Optionen und Einstellungen abgedeckt. Ich habe initial mit einem Windows Server RADIUS begonnen, bin aber relativ schnell auf den freeradius umgeschwenkt. Dies hat mehrere Gründe und Vorteile:

  • freeradius läuft in vielen Linux-Distributionen und ist somit frei verfügbar
  • Der Dienst läuft auch auf NAS-Geräten oder Raspberry Pis ziemlich gut
  • freeradius hat direkt funktioniert und bietet ein gutes Logging, das war bei dem Windows Server nicht direkt der Fall.

Die hier genutzte Konfiguration ist die Basis für den Aufbau von meinem Netzwerk. Ich brauche nur noch eine einzige SSID ausstrahlen und kann im Hintergrund trotzdem alle Geräte auftrennen, isolieren und vom Internet isolieren, wenn gewünscht. Mit einer steigenden Anzahl an Geräten macht sich dies schon gut bemerkbar 🙂

Wenn euch der Artikel gefallen hat oder ihr Fragen habt hinterlasst mir doch einen kleinen Kommentar.


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Active Directory
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet sein 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Ein Kommentar:

  1. Pingback:Einrichtung von 802.1X und Dynamic VLANs mit Ubiquiti USG Pro - Jans Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.