OpenVPN Client mit Gerätezertifikaten welche Möglichkeiten?
-
Hallo zusammen,
habe nun schon eine längere Zeit verschiedene Netgate Modelle mit pfsense am laufen und bin sehr zufrieden damit :).
Mal generell zu dem Thema OpenVPN sowie die zugehörigen Clients. Aktuell habe ich auf der pfsense einen OpenVPN Server mit einer CA am laufen. Die Benutzer Authentifizieren sich gegen ein Active Directory und es gibt für jeden Benutzer zusätzlich ein SSL Zertifikat für die Einwahl. Die OpenVPN Clients lade ich über die pfsense mittels Client Export pro Benutzer runter und installiere diese auf dem entsprechenden Gerät. Soweit so gut.
Nun ist es natürlich so das man sich den OpenVPN Client auf jedem Gerät installieren kann und von dort auch einwählen. Alternativ kann man sich auch einfach die Konfiguration und das Zertifikat kopieren und nutzen.
Ich suche nun eine Möglichkeit den OpenVPN Client so einzusetzen das dies eben nicht mehr möglich ist. Welche Möglichkeiten gibt es da?
Am liebsten wäre mir ein SSL Zertifkat was nur mit einem bestimmten Gerät funktioniert. Oder gibt es auch noch andere Möglichkeiten? -
@johndo said in OpenVPN Client mit Gerätezertifikaten welche Möglichkeiten?:
Ich suche nun eine Möglichkeit den OpenVPN Client so einzusetzen das dies eben nicht mehr möglich ist. Welche Möglichkeiten gibt es da?
Das WAS nicht mehr möglich sein soll? Und warum?
Du machst Auth via AD - kann man also nicht abgreifen, höchstens irgendwie abschnüffeln oder mitschreiben wenn der Mitarbeiter sich doof anstellt.
Client Zertifikat kann eben kopiert werden wenn der Rechner in fremde Hände fällt. Das ist klar - lässt sich auch nicht vermeiden. VPNs haben keine Möglichkeit irgendwie an die Hardware eines Rechners gekettet zu werden. Zumindest nicht mit einem Zertifikat, das kann man immer exportieren, selbst wenn mans via Zertifikatsspeicher von Windows o.ä. macht.Es gäbe ggf. für Windows/Mac/Linux die Möglichkeit aufwendig ein custom Script für post-auth zu basteln, das die HW MAC des Rechners mitschickt - dann müsste das auf Server Seite ausgewertet werden (wahrscheinlich via Radius). Zumindest gabs da mal was in Bezug auf den OVPN Access Server. Aber ob das mit AD/LDAP Auth und auf pfSense mit dem Community Server auch geht - ich bin skeptisch. Und sehe den Sinn nicht. Wenn jemandes Rechner geklaut wird, ist das aber eh egal.
Ansonsten wäre sowas wie ein TOTP Key, der nicht auf dem Rechner liegt und ggf. von einem extra Token generiert wird, zu bevorzugen.
-
Es soll nicht mehr möglich sein das sich ein Benutzer mit dem OpenVPN Client von jedem beliebigen Gerät mit dem Unternehmensnetzwerk verbinden kann. Mir geht es da gar nicht um das abgreifen von fremden etc. das habe ich im Griff. Auch wenn ein Gerät gestohlen wird ist das kein Problem. Die Festplatte ist komplett verschlüsselt, und ich kann das Gerät remote wipen etc.. Es geht er um Mitarbeiter die den OpenVPN Client zweckentfremden.
Hintergrund, ein paar affine Mitarbeiter haben sich das OpenVPN Installationspaket mittels USB Stick kopiert und auf dem privaten Rechner installiert. Damit kann man sich einfach im Unternehmensnetzwerk einwählen und umgeht natürlich das ganze GPO-Werk von Windows. Das möchte ich letztendlich unterbinden.
Es gibt ja von den großen Herstellern Cisco, Checkpoint Möglichkeiten die Clientsoftware so einzuschränken das diese nur auf einem bestimmten Gerät funktionieren. Das heißt selbst wenn ein Mitarbeiter die Clientinstallationsdatei hat und diese auf einem Gerät installiert kann er sich nicht einwählen. Außer die IT gibt explizit dieses Gerät frei.
Daher dachte ich an ein Zertifikat was auf ein Gerät gebunden ist. Dieses Zertifikat darf natürlich nicht vom Anwender exportiert werden können.
-
Nur mal so als Idee. Wenn man das Benutzerzertifikat in den Windows Truststore importiert kann man das auch Passwort schützen? Sprich das man es nur exportieren kann mit dem entsprechenden Passwort?
-
@johndo
das Thema ist sehr interessant und würde mich auch interessieren.
Mir ist bis dato kein Weg bekannt das einzuschränken. -
@johndo said in OpenVPN Client mit Gerätezertifikaten welche Möglichkeiten?:
Nur mal so als Idee. Wenn man das Benutzerzertifikat in den Windows Truststore importiert kann man das auch Passwort schützen? Sprich das man es nur exportieren kann mit dem entsprechenden Passwort?
Nope, denn AFAIK kann OpenVPN das Zertifikat zwar aus dem Trusted Store lesen, aber nicht mit Passwort geschützt. Und damit kann das jeder mit ein wenig Fingerfertigkeit aus dem Store auch wieder exportieren. Lohnt also die Mühe nicht wirklich.
Es gibt ja von den großen Herstellern Cisco, Checkpoint Möglichkeiten die Clientsoftware so einzuschränken das diese nur auf einem bestimmten Gerät funktionieren.
Jap weil die ihren eigenen proprietären Kram auf Protokolle draufflanschen. DarkMagic irgendwo draufkleben kann dann sowas vielleicht abdecken. Den VPN Protokollen per se ist das aber wurscht.
Das heißt selbst wenn ein Mitarbeiter die Clientinstallationsdatei hat und diese auf einem Gerät installiert kann er sich nicht einwählen. Außer die IT gibt explizit dieses Gerät frei.
Die Crux von BYOD und findigen Mitarbeitern ;) Irgendwer findet immer eine Möglichkeit. Klar mag aus Firmen IT Sicht ärgerlich sein. Auf der anderen Seite versteh ichs nicht, umgekehrt ja. Aber Firmenkram auf meinen PrivatPC backen - dann hab ich ja noch mehr Arbeit. Urks. Man könnte höchstens unterbinden, dass es mehr als ein Zugriff gleichzeitig geben darf. Das klappt. Aber OVPN oder IPsec kennen kein Rechnermerkmal, dass sie übermitteln, dass du abfragen könntest - von der MAC was ich oben geschrieben hatte mal abgesehen und selbst die kann man spoofen. Andere Merkmale gibts IMHO nicht oder werden nicht übermittelt.
Sidenote: Finde es auch interessant, einerseits sowas an Anforderung zu lesen, andererseits gehen alle grad steil wegen Wireguard und superduper und schnell - wobei man das noch viel weniger eingrenzen und beschränken bzw einsehen kann ;) Wirre Welt
-
@jegr said in OpenVPN Client mit Gerätezertifikaten welche Möglichkeiten?:
Sidenote: Finde es auch interessant, einerseits sowas an Anforderung zu lesen, andererseits gehen alle grad steil wegen Wireguard und superduper und schnell - wobei man das noch viel weniger eingrenzen und beschränken bzw einsehen kann ;) Wirre Welt
Auf dem Notebook würde ich kein Wireguard wählen, aber auf dem Smartphone um z.B. den ActiveSync der jetzt offen im Internet steht zu schützen ist das genial.
@johndo
wir haben ja nur Linux Notebooks, Du hast mich aber auf eine Idee gebracht.
Sobald die VPN Verbindung besteht einfach mit SSH auf das Gerät, nach einer Hardware ID suchen und ggf. die VPN Verbindung sofort beenden bzw. dauerhaft sperren wenn die ID nicht stimmt... -
Hi,
wundert mich eigentlich das noch niemand diese Anforderung hatte. Letztendlich wird ja ein Endgerät von der IT vorbereitet und an einen Mitarbeiter übergeben. Auf dem Gerät sind verschiedene Sicherheitsmechanismen vorhanden die der Benutzer nicht umgehen kann. Zum Beispiel verschlüsselte Festplatte, abgesichertes BIOS inkl. verheirateter Festplatte, zentral gesteuerter Virescanner über den auch alle Ports (USB etc.) gesperrt sind, Firewall etc..
Die Benutzer haben auch keinerlei Adminrechte und können Software nur über einen bereitgestellten Softwarekatalog installieren.Es geht letztendlich darum das der Mitarbeiter das alles umgehen kann wenn er einfach den Client auf seinem eigenen Gerät installiert :). Das finde ich schon recht gravierend.
Mir ist bisher noch nicht ganz klar ob OpenVPN tatsächlich im größeren Unternehmensbereich im Einsatz ist. Wir sind ja vor einiger Zeit auf die Netgate Applicances gewechselt. Da gehts in erster Linie um Firewallthemen und das funktioniert super.
OpenVPN ist sozusagen ein Feldversuch für derzeit 20 Mitarbeiter. In der Endausbaustufe sind das über 500.
Da gehts halt nicht nur um die OpenVPN Technik sondern genau um solche Anforderungen die ich geschrieben habe. Ein weiteres Thema ist zum Beispiel ein automatischer Client Rollout vom OpenVPN Client. Es muss möglich sein über eine Softwareverteilung den Client auf die Endgeräte zu bekommen. Das muss ich mir auch noch anschauen wie das mit der Softwareverteilung funktioniert.Die doppelte Benutzerführung gefällt mir aktuell auch nicht so richtig. Wir haben ja bereits alle Benutzer im AD über das wir Authentifizieren. Um das Zertifikat für einen Benutzer zu erstellen muss ich diese ja auch auf der pfsense erstellen. Naja wie gesagt stehe da aktuell mit dem Thema noch am Anfang.
Kann natürlich sein das wir dann wieder auf eine andere VPN Lösung von Cisco, Checkpoint etc. wechseln, ich würde aber gerne bei OpenVPN bleiben. Daher bin ich aktuell am schauen das ich weitgehenst auf alles vorbereitet bin :)
-
@johndo da mobil nur kurz:
Nein du musst Zertifikate nicht auf der pfSense verwalten. Das entsprechend zu bauen für größere Rollouts ist auch nicht schwer, extern MS Kram machen lassen geht :)
Nur als kurzer Anstoß: die CA kann egal wo sein, die muss nicht auf der Sense sein, zumindest nicht ausstellend. Die Sense braucht für den Betrieb nur die CA lesend (cert) und ein Server Cert von ihr. That's it. Alles andere kann auch extern über build Prozesse, Ansible, Puppet, MS Deployment oder whatever gelöst werden. Und wir haben da durchaus Kunden, die 200+ User ausgerollt haben. User+PW via AD/LDAP und Zert via Microsoft. Beim Anmelden an der Domain bekommen die ihren Client installiert, Konfig gepusht und Zert eingespielt.
Könnte man sicher auch anpassen dass die Certs in den Trusted Keystore kommen dann wäre es schwerer das einfach auf die Privatkiste zu kopieren. Aber ganz ausschließen ist immer schwer. Solche großen Setups fahren dann aber statt irgendwelchen VPN Verbiegungen meist ein Login Control System. Dann wird per Rechnername/ID/MAC or whatever geprüft, ob das ein gültiger PC ist und wenn nicht, wird er geblockt. Das kann ggf auch per VPN klappen wenn es am AD Login hängt. :)