the.other
Goto Top

PfSense, openVPN und FreeRadius -Anfängerfrage

Moinsen,
ich stehe mal wieder auf dem Schlauch und habe eine für Euch Profis vermutlich wieder einfache Frage:

Aufbau ist Fritzbox mit Portfreigabe auf das WAN Interface der pfsense. Dort läuft ein OpenVPN Server, alles funktioniert soweit auch.

Ziel ist den OpenVPN Zugang per FreeRadius zu überwachen.

Und hier gleich meine Frage: unter "FreeRadius/Interfaces" muss ja die IP eingetragen werden. In den Anleitungen ist hier die 127.0.0.1 (localdomain) genannt, siehe hier: https://blog.vonhewitt.com/2017/08/pfsense-openvpn-setup-with-freeradius ...

Muss da nicht vielmehr meine pfSense WAN IP hin, denn da soll ja gelauscht werden? Oder denke ich wieder falsch?

Für eine Antwort, gerne mit Begründung, will ja lernen, bin ich wie immer sehr dankbar.

Grüßle
th30ther

Content-ID: 511507

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

Printed on: November 6, 2024 at 10:11 o'clock

Henere
Henere Nov 02, 2019 at 18:36:47 (UTC)
Goto Top
Servus.

Hängt davon ab, auf welcher IP der Radius lauscht. Aus Sicherheitsgründen lauscht er hier wohl nur auf localhost... also die 127.0.0.1

Aus Deiner Anleitung:
Interface IP Address:  127.0.0.1 – unless you plan on utilizing freeRADIUS authentication for other purposes outside of your pfSense installation you will want to limit this to localhost only.

Henere
aqui
Solution aqui Nov 03, 2019, updated at May 15, 2023 at 14:39:31 (UTC)
Goto Top
vermutlich wieder einfache Frage:
Das erleichtert uns dann das Wochenende face-smile
Aufbau ist Fritzbox mit Portfreigabe auf das WAN Interface der pfsense.
Also eine klassische Router/Firewall Kaskade wie sie HIER beschrieben ist, richtig ?
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
Muss da nicht vielmehr meine pfSense WAN IP hin
Nein ! Denk mal selber etwas nach !! face-wink
Wir gehen hier mal davon aus das du den FreeRadius Server direkt auch auf der pfSense betreibst über die Package Erweiterung, richtig ? Oder ist dein FreeRadius Server extern ?
Wenn er intern ist, sprich also auf der pfSense kommen die OVPN User Requests ja direkt an der pfSense an, die ist ja OVPN Server.
Und...du denkst komplett falsch, denn du verwechselst hier den eigentlichen VPN Prozess und den Radius Prozess indem du alles zusammenwürfelst. Denke in Schritten !
  • Client startet VPN Session
  • VPN Session terminiert am WAN Port der pfSense
  • pfSense extrahiert Username und fragt selber als Radius Client einen Radius Server für die Authentisierung
  • Da Radius Client udn Radius Server ein und dieselbe Maschien sind kann man hier ausnahmsweise die interne 127er IP nehmen da ja nix nach extern muss.
Wenn die pfSense die User also nun per Radius authentisieren soll, dann kann sie sich doch ganz einfach selbst bequem über ihre internbe 127er IP befragen ohne überhaupt nach außen irgendwo ins Netz gehen zu müssen mit irgendeiner externen IP.
Das sagt einem doch aber auch der gesunde IT Verstand ! face-wink
Aus Sicherheitsgründen lauscht er hier wohl nur auf localhost... also die 127.0.0.1
Letztlich ja, denn der pfSense Radius Server könnte natürlich auch noch Switch Port Authentisierung, dyn. VLAN Zuweisung usw. mit 802.1x machen:
Freeradius Management mit WebGUI
Netzwerk Zugangskontrolle mit 802.1x und FreeRadius am LAN Switch
Oder das gleiche z.B. in einem WLAN:
WLAN: VLAN-Zuordnung anhand Radius-Eigenschaften? MikroTik CAPsMAN
Oder beides bzw. alles 3 zusammen.
Dann nimmt man aber immer logischerweise eine IP Adresse aus einem lokalen LAN und niemals eine eine "heissen" Interfaces vor der Firewall. Sicherheitstechnisch wäre das Unsinn.
Diese Frage stellt sich für den TO ja aber gar nicht wenn es rein nur um VPN Authorisierung geht.
the.other
the.other Nov 03, 2019 at 09:59:40 (UTC)
Goto Top
Moinsen,
ja, das war ja mal wieder in der Tat ein kapitaler Denkfehler. Aber so lern ich es vielleicht doch noch...
Der Aufbau hier ist genauso, wie von dir, aqui, vermutet: alles in einer Box (pfSense, OPenVPN und FreeRadius).

Dank deiner Erklärung ist der Groschen mal wieder gefallen, herzlichen Dank. Alles auf gelöst gesetzt und weitermachen mit der Einrichtung.

Allen einen entspannten Sonntag!!

Grüßle
th30ther
aqui
aqui Nov 03, 2019 at 10:14:42 (UTC)
Goto Top
Allen einen entspannten Sonntag!!
Und dir eine erfolgreiche Umsetzung ! face-wink
the.other
the.other Nov 03, 2019 at 13:28:34 (UTC)
Goto Top
Moinsen nochmals,
besten Dank für die Wünsche, aqui. Scheint schon zu reichen, wenn DU Erfolg wünscht. Jetzt klappt alles: openVPN Einwahl mit User/Passwort+Zertifikat+2fa.
Yuhuu!

Darauf erstmal einen Kaffee mit Franzbrötchen, mjam....
face-smile

Grüßle
th30ther
aqui
aqui Nov 03, 2019 updated at 13:41:31 (UTC)
Goto Top
Da diese interessante Konfig sicher auch andere interessiert könntest du sie ja hier mal (wenn das Franzbrötchen aufgegessen ist !) etwas detailierter schildern oder an das hiesige OpenVPN Tutorial anhängen ! face-wink
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
the.other
the.other Nov 03, 2019 at 15:41:05 (UTC)
Goto Top
Kurzes Tutorial: Den OpenVPN Zugang der pfSense mit Benutzernamen PLUS Passwort PLUS Zertifikat PLUS 2-Faktor-Authentifizierung absichern

Moinsen,
wie so viele andere nutze ich im Heimnetzwerk auf einem APU-Board eine pfSense Firewall. Neben der reinen Firewall Funktion nutze ich auch die OpenVPN Funktion der pfSense. Bisher gelang dies immer per Anmeldung via Benutzername, Passwort und Zertifikat. Nun wollte ich zusätzlich einen Absicherung des VPN-Zuganges via FreeRadius ermöglichen, welcher eine 2-Faktoren Authentifizierung nutzen soll. Es entsteht damit eine multifaktorielle Anmeldung, welche den Sicherheitsgrad deutlich erhöhen sollte.

Das Vorgehen in drei Schritten: 1) openVPN einrichten, 2) FreeRadius einrichten und 3) beide miteinander verbinden.


1. Die Konfiguration des openVPN Servers führe ich hier nicht im Detail aus, denn dazu hat zB aqui (lieben Gruß und nochmals auch besten Dank für zahlreiche Hilfen) schon ein super Tutorial verfasst. Wichtig: bevor es weitergeht, sollte der Zugang per openVPN auf jeden Fall auch funktionieren (um auch eine spätere Fehlerdiagnostik zu erleichtern)…

2. FreeRadius Paket installieren und konfigurieren des FreeRadius-Servers. Ersteres ohne weitere Worte. Die Konfiguration erfolgt in den Unterschritten

2.1 Services > FreeRadius > Interfaces: Hier ein neues Interface hinzufügen.

Interface IP=127.0.0.1
Port=1812 (FreeRadius Authentifizierung)
Interface Typ=Authentifizierung
IP Version=je nach Eurer Einrichtung, hier nur IPv4
Beschreibung=wie Ihr wollt

OPTIONAL: Ihr könnt noch zusätzlich ein weitere Interface eintragen zur Überwachung des FreeRadius (Protokollierungen / Accounting):

Interface IP=127.0.0.1
Port=1813
Interface Typ=Accounting
Rest siehe oben

Und speichern…


2.2 Services > FreeRadius > NAS / Client: hier einen neuen Client angeben

Client IP=127.0.0.1
Client IPVersion=siehe oben, hier wieder IPv4
Client Name=wie Ihr wollt
Client Shared Secret=möglichst langes (maximal 31 Stellen) Geheimnis angeben (oder zB per Passwortgenerator anfertigen lassen und MERKEN!)
Protokoll=auf UDP belassen (ja, auch wenn der openVPN Server TCP nutzen sollte)
Beschreibung=wie Ihr wollt
Alles andere unverändert übernehmen oder ggf. nach eigenen Wünschen anpassen.

Und wieder speichern…


2.3 Jetzt der pfSense den frisch eingerichteten FreeRadius Server als Authentifizierungsserver bekannt geben unter System > User Manager > Servers > hinzufügen /add

Namen eintragen (siehe 2.2)
Typ der Authentifizierung=auf RADIUS setzen
Protokoll=unbedingt PAP benutzen, sonst geht die anschließende 2FA nicht...
IP Adresse=127.0.0.1
Shared Secret=hier eintragen, was Ihr unter 2.2 eingetragen habt
Service =Authentifizierung (oder optional Authentifizierung und Accounting, siehe 2.1)
Port=1812 (siehe 2.1) und optional 1813
Authentication Timeout=ich habe den Standardwert 5 gelassen
RADIUS NAS IP=hier habe ich aus der Auswahl LAN eingetragen

2.4 Als nächstes Eure(n) Benutzer anlegen unter Services > FreeRadius > User > hinzufügen / add

Benutzername=Eure Wahl
Password=leer lassen (wir nutzen ja später 2FA)
PasswordEncryption=Cleartext auswählen
One-Time Password=Haken setzen
OTP Auth Methode=Google Authenticator auswählen
Init-Secret=generieren per Knopf
PIN=eigene PIN auswählen und MERKEN!

Dann den QR Code generieren lassen…und mit der App eurer Wahl (Google Authentificator, Authy, Yugbico Authenticator…) einlesen.

2.5 2FA Authentifizierung prüfen!!
Dazu unter Diagnostics > Authentication auswählen

Authentication Server=Euer eben angelegter FreeRadius Server
Username=Euer eben angelegter Benutzern
Password=Eure unter 2.4 gewählte PIN plus der 6-stellige Authenticator-Code

Das sollte dann bestätigt werden mit einem „User XY authenticated successfully...“
Und jetzt, wenn soweit alles geklappt hat, verbinden wir den openVPN Teil mit dem FreeRadius Teil…

3. Zunächst im openVPN Menu die Angaben zum FreeRadius Server machen. Dazu

3.1 VPN > openVPN > Servers
Hier angeben:
Server Mode=Remote Access (SSL/TLS+UserAuth)
Backend=FreeRadius Server

Unter den Advanced Configurations kann noch (neben der push „route xyz“ die Eingabe reneg-sec 0 gemacht werden, so wird ein wiederholtes Abfragen der Authentifizierung alle 3600 Sekunden unterbunden. Da das Passwort mit 2FA ja alle 30 Sekunden neu generiert wird, müsste man also sonst alle 3600 Sekunden eine neue Anmeldung vollziehen, was doch eher nervt.

3.2 Unter Services > FreeRadius > EAP tragt Ihr dann das SSL CA Zertifikat ein, dass ihr für euren openVPN Server ursprünglich eingerichtet habt. Ebenso den Eintrag unter SSL Server Zertifikat anpassen. Dann erneut speichern…

3.3 Jetzt unter System > Cert Manager > Certificates das alte openVPN Nutzerzertifikat entfernen. Anschließend ein neues Benutzerzertifikat anlegen:
Method=Create Internal Certificate
Descriptive Name=Eure Wahl
CA=die CA angeben, die Ihr im Setup nutzt
Key length=empfohlen 4096 (je nach Eurer openVPN Konfiguration)
Digest Algorythm=empfohlen sha512
Certificate Typ=User Certificate
Common Name=wie Ihr wollt…

Speichern….

3.4 Fast geschafft: jetzt nur noch die openVPN Konfiguration exportieren

VPN > openVPN > Client Export
Hier euren Benutzer suchen, je nach Gerät die Datei exportieren, auf dem Gerät installieren, fertig! Achtung, letzter Fallstrick: hier muss unter den Advanced Options ebenfalls der Eintrag reneg-sec 0 eingetragen werden, da Client und Server hier die identischen Angaben benötigen.


Ich zB nutze Android, dafür die openVPN für Android App von Arne Schwabe. Hier einfach die exportierte Datei installieren.
Als Ersatz für den Google-Authenticator nutze ich gerne (wenn schon sicher, dann richtig) Authy (kann per PIN oder Fingerabdruck gesperrt werden) und/oder die Authenticator Funktion von Yubico (kann per Yubikey gesperrt werden).

Ich hoffe, ich habe nix vergessen und wünsche allen viel Spass beim Einrichten.
Natürlich ist das nicht auf meinem Mist gewachsen, sondern aus folgenden links entnommen worden, hier aber dann auf deutsch und zusammengefügt. Zusätzlich hat mir aqui an einigen Stellen mit seinem Rat weitergeholfen. Also, nicht mit fremden Federn schmücken…

https://blog.vonhewitt.com/2017/08/pfsense-openvpn-setup-with-freeradius ...

https://vorkbaard.nl/how-to-set-up-openvpn-with-google-authenticator-on- ...

https://devopstales.github.io/linux/pfsense-2fa/

Grüßle
th30ther