gastzugangslösung auf basis von pfsense und freeradius · pdf filedipl.-math. christian...
TRANSCRIPT
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