Best Practice OpenVPN RW mit "Instances" ?

Started by AlexS, April 09, 2024, 05:16:45 PM

Previous topic - Next topic
April 09, 2024, 05:16:45 PM Last Edit: April 11, 2024, 05:08:46 PM by AlexS
ich migriere derzeit von IpFire zu OpnSense.
die Roadwarriors sollen, wie bisher per OpenVPN auf die LAN-Netzwerke zugreifen.
Es gibt ja nun die Möglichkeit, die Legacy-Einstellung (Server/Client) zu verwenden.
Da es ja nun eine neue Art der Konfiguration für OpenVPN gibt, und ich sowieso alles neu mache, wollte ich das auch direkt diese neue Art verwenden.
für einen Testclient habe ich das nun nach dieser Anleitung hier: https://docs.opnsense.org/manual/how-tos/sslvpn_instance_roadwarrior.html ans Laufen bekommen. (OpenVPN Client 2.6.10, zunächst noch nicht als Service, das muss noch getestet werden)
mir ist nun aber nicht ganz klar, wie ich das ganze auf 50+ User skalieren kann.
wenn ich eine Instanz lasse, teilen sich alle Clients ein Zertifikat
wenn ich für jeden Client eine eigene Instanz machen muss, entsteht sehr viel Konfigurations-Overhead, wo man jede Instanz praktisch mit identischen Daten für Local Network etc. füttern muss, und zwar immer mit jeweils eigenem "tunnel network used"

Property site B
Role Server
Description MyServer
Protocol UDP (IPv4)
Port number 1194
Bind address 10.10.8.1
Server (IPv4) 10.1.8.0/24 (the tunnel network used)
Certificate choose the prepared server certificate
TLS static key choose the prepared static key
Authentication Local Database
Strict User/CN Matching [V]
Local Network 192.168.8.0/24


habe ich irgendwo einen Denkfehler? Wie bekomme ich für jeden Clienten eine fixe IP (optional)?

Danke und Gruß

EDIT: es geht hier weiter: https://forum.opnsense.org/index.php?topic=38532.0

Hallo AlexS,

lass mal die Legacy Einstellungen weg, die fliegen irgendwann raus. Wenn Du es neu bauen musst, setz' es gleich auf Instances auf.
Die Skalierung bei OpenVPN kommt über mehrere Prozesse. Da schaust Du dir an, wie viele CPU's deine Firewall hat und legst entsprechen viele Server an. (Daumenwert 12 MHz CPU je MBit/s  vgl. https://openvpn.net/vpn-server-resources/openvpn-access-server-system-requirements/)

In deine Clientconfig muss dann sowas mit rein.

remote-random
remote vpn.fqdn1 1194 udp4
remote vpn.fqdn2 1195 udp4
...
remote vpn.fqdn99 1199 udp4


Idealer Weise bekommt jeder Benutzer ein eiegenes Zertifikat. Über "Client Specific Overrides" kannst Du dann jedem Zertifikat eine eigene IP zuweise, wenn es sein muss.

VG



Also wir haben seit über 4 Jahren keine Probleme 50+ OpenVPN User über nur 1 (einen) OpenVPN Client laufen zu lassen; daher ist dieses "Massen-Port" Auswahl gedöns eher verwirrend als hilfreich ^^...

Aber es kann allgemein sicher die Performance steigern - wenn man denn auf der Gegenseite eine 10 oder 100 GBit Leitung hat ^^ (früher war OpenVPN Tunnel ohne Tuning auf 16 MBit CPU technisch beschränkt; inzwischen kann es aber auch locker 100 MBit und mehr schaffen).

In diesem Fall ist das "Zertifikate Problem" wohl eher ein logischer Fehler.
Selbst wenn man mehrere Instanzen über IPs oder Ports verteilt, hindert einen doch nichts daran, immer das gleiche Server Zertifikat zu nutzen?
Bei Clients wird je Client ein eigenes Zertifikat mit dem CN / Common Name emfohlen und konnte so z.B. schon in der pfSense in der CA Verwaltung erzeugt und zugewiesen werden.
Die Systeme hindern uns aber auch nicht daran, auch auf der Client Seite nur ein shared Zertifkat zu verwenden und den dafür zusätzlich abgefragten CN/Usernamen mit einem Passwort und ggf. auch 2FA /Push Nachricht per Radius abzugleichen. ... ähh, OPNsense leider doch... das TOTP wurde bisher nur für lokale DB und LDAP implementiert (Stand Herbst 23 / Februar wohl auch noch in der Legacy Variante).