Gastzugangssystem auf Basis von pfSense und FreeRADIUS 64. DFN Betriebstagung, 3.3.2016, Forum „Mobile IT“ C. Strauf, Rechenzentrum TU Clausthal
Gastzugangssystem auf Basis von pfSense und FreeRADIUS
64. DFN Betriebstagung, 3.3.2016, Forum „Mobile IT“
C. Strauf, Rechenzentrum TU Clausthal
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Agenda
■ Motivation für / Anforderung an eine Gastzugangslösung
■ pfSense
■ Anbindung an FreeRADIUS
■ Verwaltungs-Frontend
■ Sicherheitsüberlegungen
■ Aktueller Stand an der TU Clausthal
■ Zukunftsperspektiven
2
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Motivation für / Anforderung an eine Gastzugangslösung
■ Nicht alle Gäste an Uni-Veranstaltungen wie Kolloquien, Seminaren oder Messen verfügen über einen eduroam-Zugang.
■ Eine Gastzugangslösung soll einfachen Zugang gewähren, wie er z. B. von Hotels bekannt ist.
■ Der Gastzugang soll aus juristischer Sicht möglichst sicher sein (Nutzungsbedingungen, Verhindern von Störerhaftung etc.).
■ Die Handhabung soll auch für den Gastgeber möglichst einfach sein.
3
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal Gast
Motivation für / Anforderung an eine Gastzugangslösung
■ Erstellung von Kennungen durch berechtigten Veranstalter:
- Login auf Web-Portal,
- Erstellung von Zugangsdaten (auch große Mengen),
- Ausgabe der Zugangsdaten als PDF oder CSV,
- Weitergabe der Zugangsdaten gegen Unterschrift der Empfänger.
4
Veranstaltung
Gastnetz
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Motivation für / Anforderung an eine Gastzugangslösung
■ Nutzung des Zugangs durch den Gast:
- Assoziierung mit einer offenen SSID oder Nutzung einer öffentlichen Netzwerkdose.
- Öffnen einer beliebigen Seite im Browser mit Weiterleitung auf Captive Portal.
- Eingabe der Gastzugangsdaten.
- Nutzung des Netzes.
5
Gastnetz
nutzername
●●●●●●●●●●●●●●
http://www.dfn.dehttps://portal.rz.tu-clausthal.de
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Entscheidungskriterien
■ pfSense ist eine Open Source (BSD-Lizenz) Firewall-Lösung mit Captive Portal-Unterstützung.
■ Aktive und gut vernetzte Community.
■ Kommerzieller Support bei Bedarf über Electric Sheep Fencing LLC erhältlich.
■ pfSense basiert auf dem sehr robusten FreeBSD-Kern und nutzt als Firewall die pf-Firewall (Packet Filter; stammt von OpenBSD) und ipfw (FreeBSD-Firewall, wird für Captive Portal verwendet).
■ Bietet out-of-the-box ein Captive Portal mit RADIUS-Authentisierung.
■ Konfiguration einfach per Web-GUI möglich.
■ Hat Firewall-Funktionalitäten, die für Gastzugänge wünschenswert sind (auch Self-Service-Portal).
■ Installation in VM ist einfach.
■ Backup & Recovery sind einfach.
■ pfSense kann hochverfügbar ausgelegt werden.
6
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Captive Portal
7
FreeRADIUS-ServerHTTP RedirectDHCP-Server Firewall
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Netzwerktopologie
8
Layer 3 Layer 2
Internet Gast-VLAN
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Weitere Funktionen
■ Möglichkeit der „Berechtigung vor Anmeldung“:
- Ohne Anmeldung ist Erreichen eines Self-Service-Portals erlaubt (z. B. für Doku).
- Ohne Anmeldung ist das Erreichen z. B. der Hauptseite der TU Clausthal möglich (für Gäste und Interessierte).
■ Regulierung der Netznutzung über die eingebaute Firewall.
9
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Captive Portal-Konfiguration
■ Captive Portal-Seite ist vollständig individuell gestaltbar (Template-System).
■ Die Portal-Seite kann auch in PHP geschrieben sein.
■ Logout-Fenster ist ebenfalls aktivierbar, setzt aber voraus, dass der Gast Pop-ups nicht blockiert.
10
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
pfSense: Sicherheit
■ Captive Portal bietet HTTPS-Verschlüsselung mit Zertifikat aus DFN-PKI.
■ Verbindung zwischen RADIUS-Server und pfSense über normale RADIUS-Secrets, aber immerhin MSCHAPv2 für den Authentisierung.
■ Es kann eine Re-Authentisierung eines Nutzers erzwungen werden, so dass Sperrungen spätestens nach 1 Minute durchgesetzt werden.
11
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
FreeRADIUS: Entscheidungskriterium
■ pfSense bietet rudimentäre Nutzerverwaltung, die aber folgende Nachteile hat:
- Gastnetznutzer werden auf der pfSense-Firewall als Nutzer angelegt (mit eingeschränkten Rechten neben Administratoren).
- Mandantenfähigkeit zum Management von Gastkennungen ist nicht ausreichend.
- Integration der internen Nutzerverwaltung von pfSense in externe Service-Portale ist nicht gut möglich.
■ FreeRADIUS ist für eduroam etc. vorhanden, Service-Portal als Frontend vorhanden, daher Integration von FreeRADIUS für Gastzugänge.
12
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
FreeRADIUS: Struktur
13
FreeRADIUS
MySQL-DB
Service-Portal- Frontend
Gastgeber
Service-Portal-Infrastruktur
FreeRADIUSAuthentisierung
& Accounting
Gast
Redundante RADIUS- Infrastruktur
MySQL (SSL)
Gäste eintragen
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
FreeRADIUS: Konfiguration
■ Eigene Site „guest-access“ in „raddb/sites-available“.
■ Einbindung des SQL-Moduls.
■ Einbindung von MSCHAPv2 (wird von pfSense genutzt).
■ Einführung von neuen RADIUS-Attributen:
- Startzeit und Endzeit für Gültigkeitszeitraum von Gastkennungen,
- Sponsor (Gastgeber) der Gastkennung,
- Indikator für aktiv / gesperrt (für Missbrauchsfälle).
■ Einbindung des „logintime“-Moduls, um aktuelle Zeit für Prüfung der zeitlichen Gültigkeit einer Kennung zu bekommen.
■ Manpage von „unlang“ lesen. ;)
14
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
FreeRADIUS: Konfiguration
15
server guest-access { authorize { preprocess mschap sql # Falls der Account disabled ist, wirf Nutzer raus. if (&reply:TUC-Guest-Enabled == "no") { update reply { Reply-Message := "Your account has been disabled. Please contact your host %{reply:TUC-Guest-Sponsor} for further information." } reject } # Setze auf Tmp-Integer-0 die aktuelle Zeit. update control { &Tmp-Integer-0 := "%l" } # Falls die aktuelle Zeit vor der Startzeit liegt, wirf Nutzer raus. if (&control:Tmp-Integer-0 < &reply:TUC-Guest-Start-Time) { update reply { Reply-Message := "Your account is not yet valid. Please contact your host %{reply:TUC-Guest-Sponsor} for further information." } reject } # Falls die aktuelle Zeit nach der Endzeit liegt, wirf Nutzer raus. if (&control:Tmp-Integer-0 > &reply:TUC-Guest-End-Time) { update reply { Reply-Message := "Your account is not valid anymore. Please contact your host %{reply:TUC-Guest-Sponsor} for further information." } reject } } authenticate { Auth-Type MS-CHAP { mschap } } […] }
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
FreeRADIUS: Konfiguration
■ pfSense wertet „Reply-Message“-Attribute in RADIUS-Replies aus und kann sie über das Captive-Portal an den Nutzer weitergeben.
■ Vorteile:
- Nutzer erfährt exakten Grund, warum Login fehlschlägt.
- Da die Gastgeberinfo als Attribut gespeichert ist, weiß der Nutzer, an wen er sich im Problemfall wenden kann.
16
Reply-Message := "Your account has been disabled. Please contact your host %{reply:TUC-Guest-Sponsor} for further information."
Reply-Message := "Your account is not valid anymore. Please contact your host %{reply:TUC-Guest-Sponsor} for further information."
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Verwaltungs-Frontend
■ Web-GUI zum Anlegen und Ausdrucken von Kennungen.
■ Interne Mechanismen zum Löschen von ungültigen Kennungen (mit Karenz).
■ Service-Portal pflegt die Tabellen der Datenbank von FreeRADIUS.
■ Accounting-Daten im Service-Portal verfügbar (Accounting wird vom Nutzer beim Akzeptieren der Policy mit akzeptiert).
■ Frontend ist eine Eigenentwicklung in PHP.
17
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Verwaltungs-Frontend: Prozessablauf
18
MySQL-DB
Service-Portal- Frontend Gastgeber
Provisionierung der Gastzugangsdaten: ■ Nutzer, ■ gen. Passwort, ■ Gastgeber, ■ Gültigkeit (Start), ■ Gültigkeit (Ende)
Zugangsdaten
GastGäste eintragen
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Sicherheitsüberlegungen
■ Sicherheit der Gastzugänge basiert auf IP und MAC des Gastes.
■ Angriffsvektoren:
- MAC-Spoofing und
- IP-Spoofing.
■ pfSense selbst bietet keine Möglichkeit, dies zu verhindern.
■ Zugangsinfrastruktur muss so konfiguriert werden, dass dies verhindert wird:
- ARP-Protection,
- DHCP-Snooping,
- etc.
■ pf bietet OS-Fingerprinting => kann evtl. in Sicherheitsstrategie einbezogen werden.
19
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Sicherheitsüberlegungen
■ pfSense betrachtet angeschlossene LANs als interne „freundliche“ Netze => Management von pfSense aus Gastnetz per Default erreichbar.
■ Gastnetze sind nicht „freundlich“ => bei der Grundkonfiguration Anlegen von Firewall-Regeln zum Schutz von pfSense.
■ Passwörter liegen im Klartext in SQL-Datenbank. Verbindung RADIUS <-> DB ist SSL-verschlüsselt => Schutzniveau ausreichend, da Passwörter im Zugangsdatenbogen auch einsehbar sind.
20
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Aktueller Stand an der TU Clausthal
■ Projekt befindet sich in der Beta-Phase.
■ Beta-Phase ist noch nicht weit fortgeschritten, wir sammeln noch Erfahrungen.
■ pfSense erlaubt es, das proprietäre Gastzugangssystem der WLAN-Lösung durch eine plattformübergreifende Lösung zu ersetzen.
■ Integration mit FreeRADIUS ist sehr einfach.
■ Kompliziertester Integrationsschritt: Implementierung der Gastnutzerverwaltung im Service-Portal.
21
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal
Zukunftsperspektiven
■ „Sponsored Access“:
- Gäste registrieren sich im Portal unter Angabe ihres Gastgebers selbst.
- Gäste bekommen ein Passwort über die SSL-Verbindung des Captive-Portals zugeteilt (ohne Zustimmung des Gastgebers noch nicht verwendbar).
- Gastgeber bekommt eine E-Mail mit zwei Links:
- Gast darf unter seiner Verantwortung das Netz benutzen,
- Gast darf das Netz nicht benutzen.
■ Ausweitung des Systems auf Netzwerkzugänge in Hörsälen / Seminarräumen.
■ TU Clausthal ist sehr an einem Austausch mit anderen Einrichtungen interessiert, die pfSense einsetzen.
22
Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal 23
Vielen Dank für Ihre Aufmerksamkeit!
Dipl.-Math. Christian Strauf Leiter Netzwerkabteilung
Rechenzentrum
Erzstraße 51 D-38678 Clausthal-Zellerfeld
Telefon: (05323) 72-20 86 Telefax: (05323) 72-99 20 86
E-Mail: [email protected] URL: http://www.rz.tu-clausthal.de