Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> Dynamische VLANs mit FreeRADIUS und dem GS108Tv2 802.1X (EAP-TLS) mit FreeRADIUS auf dem GS108Tv2 nutzen :: WPA2-Enterprise unter OpenWrt mit FreeRADIUS nutzen
Dynamische VLANs mit FreeRADIUS und dem GS108Tv2
Verfasst am: 18.06.2016, 06:00   Autor: killerbees19
Netgear GS108Tv2
ACHTUNG: Dieser Beitrag wurde für FreeRADIUS v2.x geschrieben!

Für v3.x braucht es einige Anpassungen, die noch nicht enthalten sind.
Ob und wann dieser Beitrag überarbeitet wird, steht noch nicht fest… Sad

Im zweiten Teil der kleinen Blogserie rund um das Thema IEEE 802.1X geht es um die Möglichkeit VLANs über RADIUS dynamisch den einzelnen authentifizierten Switchports zuzuweisen. Die Grundkenntnisse wurden im ersten Beitrag vermittelt, dieser hier baut vollständig darauf auf. Man sollte den anderen somit unbedingt gelesen haben! Auch hier kommt wieder der GS108Tv2 von Netgear und ein FreeRADIUS-Server zum Einsatz. Ich gehe davon aus, dass EAP-TLS bereits erfolgreich läuft und nun um ein zusätzliches Feature erweitert werden soll.

Das Grundwissen über VLAN werde ich an dieser Stelle nicht vermitteln, das würde den Rahmen sprengen. Folgende Punkte sollten keine großen Fragezeichen auslösen:

  • Wie funktioniert ein VLAN?
  • Welche Rolle spielt der Switch dabei?
  • Was soll mit der Trennung erreicht werden?
  • Existiert ein gemeinsamer Router für Tagged VLANs?
  • oder alternativ: Existieren mehrere Router?

Wer diese Punkte nicht klar beantworten kann, sollte sich zuerst in die Thematik einlesen und dann entscheiden, ob ein VLAN wirklich notwendig ist. Für alle Leser, die dieses Thema überspringen möchten, geht es ganz unten am Ende des Blogposts weiter.


VLANs auf dem GS108Tv2

Auch hier gilt: Ein vorheriges Backup der funktionierenden Konfiguration vom Switch ist absolut empfehlenswert! Wink

Bevor es los geht, gibt es einen schnellen Crashkurs für die allgemeine Einrichtung von VLANs auf diesem Switch. Damit sich jeder Umsteiger von anderen Herstellern schneller zurecht findet. Im Internet herrscht die Meinung, dass die VLAN Konfiguration beim GS108Tv2 schlecht und unlogisch gelöst ist. Komplex, kompliziert und anders als bei anderen (Smart) Managed Switches. Dieser Meinung kann ich mich nicht anschließen. Es mag an manchen Stellen nicht perfekt sein und sorgt für unnötige Klicks, den Dreh hat man aber sofort heraußen.

Die verwendeten VLAN-IDs müssen zuerst einmal unter Switching » VLAN » Advanced » VLAN Configuration eingetragen werden. Zu viele sollten es nicht sein! In früheren Spezifikationen war immer von einem Limit von maximal 32 die Rede, mittlerweile dürfte es bei 64 liegen. Die VLAN-IDs 2 und 3 sind leider reserviert und sollten nur für die vom Hersteller vorgesehenen Zwecke genutzt werden. Das VLAN 1 ist standardmäßig immer angelegt und kann ebenfalls nicht gelöscht werden. Zur besseren Orientierung kann jedem VLAN ein kurzer Name als Beschreibung hinzugefügt werden.



Beim Punkt VLAN Membership erfolgt die eigentliche Zuordnung. Zuerst muss die zu bearbeitende VLAN-ID ausgewählt werden. Nach dem automatischen Reload der Seite können die einzelnen Ports mit einem Klick auf den orangenen Balken ausgeklappt werden. LAG steht auch hier für Link Aggregation, das nur als Hinweis am Rande. Mit jedem Klick auf eine Checkbox unter einer Portnummer ändert sich die Zuordnung. Nichts (leer) » T (Tagged) » U (Untagged)



Tagged bedeutet, dass mehrere VLANs auf einem Port übertragen werden können. Das ist meistens bei Uplink-Ports (z.B. zum Router) oder bei Hostsystemen für unterschiedliche VMs der Fall. In diesem Fall kann später auch noch festgelegt werden, ob Ethernetframes ohne VLAN-Tag verworfen werden, oder einer eingestellten ID zugewiesen werden. Normalerweise sollte ein Port aber nicht gemischt werden und nur Tagged oder Untagged Zuweisungen enthalten.

Untagged bedeutet, dass die Ethernetframes ohne VLAN-Tag übertragen werden. Normalerweise sollte es davon nur eine VLAN-ID pro Port geben. Für spezielle Spielereien kann es Sinn machen mehrere VLAN-IDs als Untagged anzugeben. Das nur als kleine Ergänzung, normalerweise braucht man das nie.

Ist das Feld leer, wird zu diesem Port nichts von oder zu diesem VLAN übertragen. (stimmt nur halb, siehe Ingress Filtering!)

Natürlich muss man hierbei aufpassen, dass man sich nicht selbst aussperrt! Das VLAN, in dem der Switch arbeitet (System » IP Configuration » Management VLAN ID), sollte für Wartungszwecke oder gerade am Anfang beim Einrichten unbedingt auf irgendeinem Port als Untagged anliegen.

Weiter geht es bei Port PVID Configuration:



PVID Configured ist die VLAN-ID, die bei Untagged standardmäßig genutzt werden soll. Unter Current PVID wird die aktuell genutzte VLAN-ID angezeigt. Im Falle von RADIUS kann diese sich von der fest konfigurierten unterscheiden, dazu später mehr. Bei Acceptable Frame Types kann ausgewählt werden, ob nur Ethernetframes mit VLAN-Tag akzeptiert werden, oder alle. Bei Tagged Ports macht es Sinn "VLAN Only" auszuwählen. Zuletzt sollte Ingress Filtering für alle Ports aktiviert werden.

Falls noch etwas unklar ist: Die eingebaute Dokumentation ist nicht die Beste, aber an vielen Stellen ist sie trotzdem einen Blick wert, wenn man sich nicht auskennt oder auf Probleme stößt. Sie ist an quasi allen Stellen im Webinterface über das kleine Fragezeichen-Icon in einer Tabellenecke rechts oben erreichbar.


FreeRADIUS für die dynamische VLAN-Zuweisung vorbereiten

Jetzt beginnt endlich der relevante Teil! Very Happy

Der RADIUS-Server läuft und EAP-TLS funktioniert. Der Testclient hat den CommonName test-1. An dieser Stelle möchte ich nochmals auf die Wichtigkeit von check_cert_cn in der eap.conf hinweisen. Ist dieser Parameter nicht gesetzt, kann ein Client jeden beliebigen Benutzernamen verwenden! Da der Client gleich darüber identifiziert und ein VLAN zugewiesen bekommt, muss das zwingend gesetzt sein. Ansonsten öffnet man ein nettes Sicherheitsleck. In der Datei /etc/freeradius/users geht es weiter:

Code:
"test-1" Auth-Type := "EAP"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = "41"


Die Authentifizierung erfolgt wie gewünscht über EAP. Auch hier könnten weitere Restriktionen wie z.B. die Ethernetportnummer am Switch hinzugefügt werden. Die gewünschte VLAN-ID ist in der untersten Zeile anzugeben. Für den ersten Test sollte sie sich von der fest konfigurierten unterscheiden, da man sonst keinen Unterschied bemerken wird. Nach dem Speichern der Änderungen muss FreeRADIUS neu gestartet oder "reloaded" werden. Unter Security » Port Authentication » Advanced » 802.1X Configuration muss noch der Vlan Assignment Mode aktiviert werden:



Danach steht dem ersten Test nichts mehr im Weg! Wenn alles geklappt hat, sollte sich der Client nach der Authentifizierung in einem anderen VLAN befinden. Der relevante Teil von Port g5 ist farblich hervorgehoben:



Folgendes muss bei der dynamischen Zuweisung der VLAN-ID beachtet werden: Der Switch entfernt zuerst die Untagged Markierung für die fix konfigurierte PVID (im Beispiel 71) und fügt danach eine Untagged Markierung für die temporäre PVID (in diesem Fall 41) hinzu. Sobald die Ethernetverbindung unterbrochen wird, werden die Änderungen rückgängig gemacht. Das heißt 71 ist nicht mehr aktiv und 41 wird wieder zu Untagged. Andere VLAN-IDs, die ebenfalls als Untagged/Tagged eingetragen sind, werden währenddessen ebenfalls vom Port entfernt und später wieder hinzugefügt. Da die Änderungen intern nur temporär sind und nicht im NVRAM landen, passiert auch bei einem unerwarteten Reboot nichts besonderes. Der Port ist danach im exakt gleichen Zustand wie vor der Authentifizierung.

Die Einrichtung der dynamischen VLAN-Zuweisung ist an diesem Punkt abgeschlossen. Es folgt ein weiterer Bonus… Wink


Access granted! Viel Spaß im Netzwerk… Der Gastmodus führt zum Endsieg!

Perfekt, die Ports am Switch sind abgesichert. Aber was ist, wenn man einem "Gast" Zugriff auf eingeschränkte Bereiche vom Netzwerk geben möchte? Eine aufwändige EAP-Konfiguration am Client erscheint da extrem übertrieben. Stattdessen gibt es das Gäste-VLAN, das automatisch freigeschaltet werden kann, wenn innerhalb einer bestimmten Zeitspanne keine Authentifizierung erfolgt! Um den Modus zu aktivieren, muss unter Security » Port Authentication » Advanced » 802.1X Configuration das Guest Vlan aktiviert werden:



Danach werden unter Port Authentication die einzelnen Ports konfiguriert:



Wenn bei Guest VLAN ID eine Null eingetragen wird, ist das Feature auf diesem Port deaktiviert. Andernfalls gehört hier die PVID vom Gäste-VLAN hinein. Dieser Netzwerkbereich sollte vom Rest durch einen Router oder eine Firewall strikt abgetrennt sein und nur Zugriff auf das notwendigste erlauben. Internetzugang kann darüber bei Bedarf freigegeben oder verboten werden. Das liegt nicht im Einflussbereich des Switches.

Die Guest VLAN Period ist quasi das Timeout in Sekunden, nach deren Ablauf (ohne erfolgte Authentifizierung) die Aktivierung des Gäste-VLAN erfolgt. Für den ersten Test reicht ein niedriger Wert. Der richtige Wert für den Produktivbetrieb ist hingegen schwer pauschal festzulegen. Das hängt auch davon ab, ob es sich um eine feste Installation handelt, oder ob das Netzwerkkabel erst händisch angesteckt wird. Im schlimmsten Fall muss der PC erst booten, der User sich einloggen und einen Dialog für EAP bestätigen. Selbst bei einer automatischen EAP-Anmeldung ohne jegliche Rückfragen nach Zertifikaten oder Passwörtern dauert das eine entsprechende Zeit. Bitte nicht vergessen, dass viele DHCP-Clients nach einer gewissen Dauer aufgeben! Erneute Versuche sind ebenfalls fast immer limitiert. Je nach Betriebssystem könnte es durch zu hohe Wartezeiten passieren, dass das Gäste-VLAN zwar freigeschaltet wird, aber trotzdem keine Verbindung möglich ist, weil der Computer nichts mehr davon mitbekommt. Ob der Standardwert von 90 Sekunden passend ist, muss man selbst ausprobieren.

Die vorherigen Hinweise über die interne Änderung der aktuellen PVID gelten auch hier.

Leider unterscheidet sich der aktuelle Status unter Port Summary (und Port Authentication) nicht von einer EAP-Authentifizierung. Sobald der Port freigegeben wurde, erscheint immer Authorized:



Das ist etwas ungünstig gelöst, da der wirkliche Status so nur über die aktuelle PVID unter Switching » VLAN » Advanced » Port PVID Configuration eingesehen werden kann.


EAP und die Benutzerdatenbank

Im Moment werden über die Datei /etc/freeradius/users nur zusätzliche Parameter übergeben, wenn der Benutzername mit dem EAP-Login übereinstimmt. Gibt es keinen Eintrag, klappt der Login trotzdem. Angenommen, man möchte die Ports oder den Switch einschränken:

Code:
"test-1" NAS-IP-Address == "10.0.0.20", NAS-Port == "5", Auth-Type := "EAP"
    Tunnel-Type = VLAN,
    Tunnel-Medium-Type = IEEE-802,
    Tunnel-Private-Group-Id = "41"


Das sollte klappen, oder doch nicht? Nein, eben nicht! Der Login über EAP-TLS wird hierbei erfolgreich sein, die Bedingungen für diesen Benutzer treffen allerdings nicht zu. Das VLAN wird somit nicht übergeben. Dieses Verhalten kann man bei Bedarf anpassen. Man muss dabei aber extrem aufpassen. Dieser Schritt sollte wirklich nur dann durchgeführt werden, wenn man neben EAP noch zusätzliche Bedingungen eintragen möchte. Der nette Nebeneffekt ist, dass ein Client-Zertifikat alleine nicht mehr reicht. Erst, wenn der Benutzer in der Datei hinzugefügt wurde, wird ein Login möglich sein. Dafür muss folgender Block in der /etc/freeradius/sites-enabled/default auskommentiert werden:

Code:
#   eap {
#       ok = return
#   }


Nochmals: Ich würde niemandem raten das sofort umzusetzen. Das ist nur in den allerwenigsten Fällen sinnvoll.

Clientzertifikate könnten so relativ einfach temporär deaktiviert werden, für eine permanente Lösung (z.B. bei Diebstahl) ist allerdings nur ein Zertifikatswiderruf sinnvoll! Über eine CRL (Certificate Revocation List) kann man FreeRADIUS mitteilen, dass bestimmte Zertifikate ungültig sind. Details zur Einbindung findet man in den Kommentaren der eap.conf beim Punkt check_crl.


Fazit und Ausblick

Nicht nur Nerds haben eine Freude an so einem Setup! Für weniger als 100 Euro kann man das eigene Netzwerk vor ungewollten Eindringlingen schützen. Der GS108Tv2 ist um ca. 60 Euro erhältlich, falls noch kein Linux-Server vorhanden ist, ist die Anschaffung eines Raspberry Pi eine gute Investition. Oder man integriert den Server in den Router, falls dort sowieso schon eine freie Router-Distribution wie z.B. OpenWrt läuft und genügend Ressourcen frei sind. So oder so ist der Einstieg günstig und relativ leicht umsetzbar, wenn man weiß, welche Hürden man umgehen muss. Ich habe viele Stunden vergeudet, damit es endlich läuft, weil es keine detaillierte Anleitung für meine Komponenten gab.

Ich hoffe beide Blogbeiträge werden in Zukunft für einige User hilfreich sein. Morgen folgt noch der dritte und letzte Teil zum Thema WLAN und WPA2-Enterprise, womit auch das Funknetzwerk abgesichert werden kann. Bis dahin lohnt sich ein Blick in die Dokumentation und Tipps von FreeRADIUS. Die gezeigten Beispiele sind nämlich erst der Anfang. Mit dieser Software sind unglaublich viele Einsatzszenarien möglich, ein wenig experimentieren schadet sicher nicht. Auch der Switch bietet noch viele andere Möglichkeiten, auf die nicht näher eingegangen wurde.

Falls ich irgendwelche Fehler eingebaut habe oder irgendetwas besser gemacht werden kann, bitte in den Kommentaren melden! Das gilt auch für Fragen rund um das Thema, wobei diese wahrscheinlich besser im Forum aufgehoben sind.

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt am 19.06.2018, 14:51.


Autor Nachricht
Für diesen Beitrag können zur Zeit keine neuen Kommentare verfasst werden.

Kontaktiere den Autor des Beitrages, falls du Fragen dazu hast.


 

Verwendete Zeitzone: CET (Europe/Berlin)
Aktuelles Datum & Uhrzeit: 22.01.2025, 08:39
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

Hosted by netcup
 
 
[ happytec.at | blog.happytec.at | forum.happytec.at | esports.happytec.at ]