OPNsense Forum

International Forums => German - Deutsch => Topic started by: monstermania on July 27, 2017, 03:09:46 pm

Title: [GELÖST] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: monstermania on July 27, 2017, 03:09:46 pm
Moin,
ich nutze seit geraumer Zeit zu Hause OPNsense (17.1.11) und habe einen OpenVPN-Server gemäß der folgenden Anleitung eingerichtet: https://www.kirkg.us/posts/building-an-openvpn-server-with-opnsense/

Ich habe einen User mit administrativen Rechten auf der OPNsense eingerichtet (incl. User Certificate) und die OpenVPN-Konfiguration meines Users exportiert.
Auf meinem Firmen-Rechner habe ich den OpenVPN Client installiert (Securepoint-Client) und die Konfigurationsdatei importiert.
Funktioniert auch soweit Alles. D.h. ich kann mich von meinem Firmenrechner auf meine OPNsense schalten.
Nun habe ich zufällig mal versucht mit dem 'root'-User der OPNsense die VPN-Verbindung herzustellen. Funktioniert auch!  :o

Bin jetzt etwas baff, da ich für den User 'root' gar kein User-Zertifikat angelegt habe! Daher habe ich jetzt testweise mal einen User ganz ohne Rechte auf der OPNsense angelegt (ebenfalls ohne User Zertifikat).
Aber auch mit diesem User kann ich mich mit der OPNsense per OpenVPN verbinden!  :o

In den Einstellungen des OpenVPN-Dienstes ist als Autentifizierungsart "Remote Access (SSL/TLS + User Auth)" eingestellt. Was läuft hier falsch!?
Ist das ein generelles Problem, oder habe ich einen Fehler in meiner OpenVPN Einrichtung!? Eigentlich dürfte sich ja nur ein User verbinden können, wenn sein Client Zertifikat und die User Autentifizerung übereinstimmen.
Aber ganz offensichtlich kann sich jeder meiner OPNsense-User mit dem Client Zertifikat eines anderen OPNsense-Users anmelden!
Anbei ein Bild der VPN-Clientkonfiguration.

Gruß
Dirk
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: monstermania on July 29, 2017, 08:24:38 am
Hmm,
nutzt denn Niemand hier OpenVPN auf der OPNsense?
Wäre schön, wenn Jemand das Verhalten bestätigen könnte. Ist das so gewollt, oder handelt es sich um einen Fehler?
Kenne sonst nur unsere Firmen UTM. Da ist es anders. Jeder User kann nur mit seinem Zertifikat + Username/Kennwort eine VPN Verbindung herstellen.
Wie kann ich denn User der OPNsense von der Nutzung von OpenVPN bzw. VPN ausschließen?

Gruß
Dirk
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: monstermania on July 30, 2017, 08:29:18 am
Hallo,
hab jetzt das Problem mal bei github gemeldet: https://github.com/opnsense/core/issues/1748

Gruß
Dirk
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: franco on July 31, 2017, 08:39:09 am
Hallo Dirk,

Wie schon im Ticket beschrieben ist das generell die Funktionsweise von Nutzer + Zertifikat Anmeldung. Eine Option für die strikte Verbindung von Nutzernamen und Zertifikat gibt es in den Server-Einstellungen, aber diese setzt sehr strenge Zertifikatsregeln voraus (der Common Name muss der Nutzername sein) die wir so nicht in allen Anwendungsfällen forcieren können.

Aus der Anfrage ist ein Feature-Request entstanden in dem für IPsec (global) und OpenVPN (per Server) nun eine Gruppe zugewiesen werden kann für das Recht einzuloggen. Damit lässt sich dann auch verhindern, dass ein reiner OPNsense Administrator Account zum Login verwendet werden kann bei lokaler Authentifizierung.


Grüsse
Franco
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: JeGr on July 31, 2017, 10:18:52 pm
Hi,

hätte in Dirks Szenario nicht schlicht das "Enforce user/cert match" genügt? Klingt für mich so, dafür ist die Funktion ja angedacht, dass nicht nur einfach User/Pass ggü. dem OpenVPN hinterlegten Auth Mechanismus geprüft werden, sondern auch das Zertifikat gleichsam abgeglichen wird, damit man sich nicht mit anderem User anmelden kann. Also per se kein Bug in OpenVPN sondern eher ein Konfiguration"Fehler" (im Sinne von "fehlen").

Zusätzlich hätte es sicherlich in diesem Fall auch noch mehr Sinn gemacht, den Auth Provider via Radius auszulagern, damit eben keine opnSense User für die UI für VPN genutzt werden können. So handhaben wir das zumindest bei opn-/pfSense Installationen. Wird hier VPN genutzt, wird das entweder via LDAP oder Radius authentifiziert.

Die Gruppenlösung (um damit User quasi vom Login auszuschließen) ist aber sicherlich zu begrüßen. Das Problem ist aber IMHO problemlos vermeidbar :)

@Dirk: BTW: solltest du mehrere OpenVPN Server für Clients (Roadwarrior) anlegen solltest du ggf. auch über mehrere CAs bzw. eine CA mit mehreren Intermediates nachdenken, da ansonsten ein User mit Zert. einfach den VPN Server "wechseln" kann und damit ggf. ganz andere Rechte hat, als er haben sollte ;)
Unser Beispiel: Ein VPN Server pro Kunde auf dessen ProjektVLAN gebucht. Damit die Isolation der Kunden VPN Server funktioniert haben wir die VPN CA mit Kunden Intermediates ergänzt und statt 2 Level 3 eingestellt, damit die komplette Kette geprüft wird und sich Client Kunde 1 nicht per Änderung der IP/Port plötzlich bei Kunde 2 ins VPN einloggt. :)

Grüße
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: franco on July 31, 2017, 11:14:32 pm
Guten Abend,

Genau, die Option "Strict User/CN Matching" fehlte und warum dies nicht standardmässig aktiviert sein sollte. Auch das externe LDAP als Backend für die User Auth wurde kurz angeschnitten im Ticket aber hier der Einfachheit weggelassen.

Die Gruppen für IPsec und OpenVPN sind schon implementiert.

Eigentlich fehlt nur noch eine Rückmeldung von Dirk für welches Herzblatt er sich entscheidet... :D


Grüsse
Franco
Title: Re: [EDIT] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen!
Post by: monstermania on August 01, 2017, 06:12:04 am
Moin,
der Dirk hat leider gerade nicht viel Zeit ;)

Ich hab OpenVPN zum ersten Mal auf einer Sense genutzt. Kannte bisher nur die Implementierung auf unserer UTM in der Firma.
Dort ist per Default so, dass man jedem User ein User Zertifikat zuweisen kann. Der User kann sich dann nur mit diesem Zertifikat und seinem Account anmelden. Ging davon aus, dass das Default unter OpenVPN ist, wenn ich diese Art der Authentifizierung wähle.
Eine Nutzung eines anderen Zertifikats durch den User für die Anmeldung ist nicht möglich! Und das mit den Gruppen gibt es dort auch! Ohne Mitgliedschaft in der VPN Gruppe ist eine VPN Verbindung nicht möglich. Unabhängig davon, ob der User ein Zertifikat hat oder nicht.

Wieder was dazu gelernt.

@Franco
Danke für die schnelle Implementierung der VPN Gruppen. Schau ich mir die Tage an!
Gruß
Dirk

PS: LDAP und Radius ist mir zu viel Aufwand für zu Hause  ;)
Title: Re: [SOLVED] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: franco on August 01, 2017, 10:46:08 am
Hi Dirk,

Besten Dank für die Rückmeldung. Es gibt seit 17.7 ein FreeRADIUS Plugin, damit ist die Integration vielleicht einfach(er).


Grüsse
Franco
Title: Re: [SOLVED] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: JeGr on August 01, 2017, 10:50:23 am
da stimme ich Franco zu, das freeRadius Plugin ist wirklich extrem einfach aufzusetzen und in Betrieb zu nehmen. Doku dazu gibt's auch und ist notfalls bei der anderen Sense zu finden ;) Ansonsten zur Nutzer Trennung und für zusätzliche Features wie parallele Logins, Logindauer etc sehr hilfreich!

@franco: auch freeRadius 3 oder noch 2?
Title: Re: [SOLVED] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: franco on August 01, 2017, 10:52:47 am
Hallo Jens,

Ja, es ist die 3. :)


Grüsse
Franco
Title: Re: OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: monstermania on August 14, 2017, 08:23:43 am
@Franco
Hallo Franco,
ich habe Deinen Patch mit den Gruppen mal getestet.
Code: [Select]
# opnsense-patch ee0c170Direkt nach Anwendung des Patches finde ich auch den neuen Menupunkt mit der Gruppenzuweisung in der OpenVPN-Serverkonfiguration. Aber nach einem Neustart des OpenVPN-Servers ist eine Verbindung per OpenVPN nicht mehr möglich.
Dabei ist es vollkommen egal, ob das neue Feature überhaupt genutzt wird!
- Anwendung Patch -> Neustart des OpenVPN Servers -> keine OpenVPN-Verbindung mehr möglich
Erst nach einer deinstallation des Patches ist wieder eine Nutzung von OpenVPN möglich.

Gruß
Dirk

Title: Re: [TEST] OpenVPN. User können Verbindung ohne eigenes User-Zertifikat herstellen
Post by: monstermania on August 15, 2017, 11:01:58 am
So,
die Einschränkung der Möglichkeit zu OpenVPN-Verbindung nach Gruppe funktioniert jetzt auch:
Code: [Select]
# opnsense-patch ee0c170und dann
Code: [Select]
# opnsense-patch f473470
Fein! Damit kann ich sicherstellen, dass der User 'root' sich nicht per VPN mit der OPNsense verbinden kann.  :)

Gruß
Dirk