Wireguard Skalierung

Started by hsiewert, December 04, 2023, 08:31:22 PM

Previous topic - Next topic
Hallo Zusammen,

Aktuell betreibe ich ca. 60 OpenVPN-Tunnel. Das hat bisher auch immer recht gut funktioniert. Ich habe 8 "Server" in OpenVPN konfiguriert und jede Instanz auf 12 Nutzer begrenzt. Das funktioniert recht gut.
Jede FW hat einen D-1518 @ 2.20GHz (4 cores, 8 threads).

Ich beisse mir nun seit einiger Zeit die Zähne an einer funktionierenden Konfiguration zwischen den OpenVPN Clients und der opnSense aus. Die aktuelle Konfiguration nutzt die Server (Legacy) mit OpenVPN 2.5.9 unter Win10. Ich habe Probeweise eine Instanz (new) konfiguriert, bekomme den Client aber nicht verbunden.
Installiere ich einen 2.6.8er Client funktioniert das so lala, ABER: Split DNS funtkioniert (mit Windows) so gar überhaupt nicht, bzw. DNS "spackt" oft nicht nachvollzehbar herum. (Office 365, Hybrid-Exchange und so ... )   
Soweit ich es sagen kann hängt es am OpenVPN-Client und dem neuen DCO-Treiber, der Prbleme mit dem DHCP-Options hat. Ich teste seit Version 2.6.2 an einer funktionieren Kobmbi, bisher aber ohne Erfolg.

Ich habe etwas Sorge, dass in absehbarer Zeit OpenVPN für uns nicht mehr nutzbar sein wird.

Daher habe ich angefangen mal mit Wireguard als Alternative herumzuspielen.
Bisher bin ich sehr positiv überrascht. Auch der Betrieb für meine "nicht-Admins" ist handlebar.

Habt Ihr eine Anleitungen oder Erfahrungen, wie man ein Wireguard-Setup auf einer opnSense macht, wenn mit 60 - 120 Clients bedienen möchte. Also, sollten die Tunnel auf mehere Instanzen aufgeteilt werden, wo sind Fallstricke etc. ?

Ich bin für jegliche Anregung dankbar.






Wireguard für daheim kann schon ganz nett sein was Geschwindigkeit vor allem bei schwachen Clients angeht.
Für den gewerblichen Einsatz sehe ich Wireguard überhaupt nicht.
Da fehlen einfach zu viele Konfigurationsmöglichkeiten und auch dass es keine weitere Authentifizierung am Client gibt ist mir ein Dorn im Auge.
Selbst für daheim nutze ich WG mittlerweile nur noch auf meinem Smartphone und selbst hier überlege ich, wieder OVPN zu verwenden. Das fängt für mich im Heimgebrauch schon damit an, dass ein oder zwei Subnetze von der Verwendung des VPN ausgeschlossen werden sollen, während sonst alles darüber geroutet wird. Da kannste bei OVPN einfach die beiden routen über das net_gateway pushen und fertig, bei WG muss man diese in den allowed IPs ausschließen (also nur alles drumherum erlauben) und das kann dann schonmal ganz schön hässlich werden, sofern man die routen nicht manuell auf den Clients hinterlegen will.

Wireguard ist halt irgendwie sowas wie eine Fritzbox: Für viele Heimanwender sehr nice, aber wenn es über die typische Heimanwendung hinausgehen soll, dann muss eben was anderes her...
i am not an expert... just trying to help...

Für Roadwarriors empfehle ich IPsec mit der OPNsense. Super schnell (reizt die Bandbreite echt maximal aus, z.b. 600mbit/s auf einem Laptop wenn man das als Upload hat.) Niemand ruft jemals an weil es einfach funktioniert. Ich hab in die Docs ne Anleitung geschrieben wie ich es betreibe. Ich benutze den NCP Client.

https://docs.opnsense.org/manual/how-tos/ipsec-swanctl-rw-ikev2-eap-mschapv2.html

Hardware:
DEC740

Für Neue Verbindungen nutze ich nur noch Wireguard.

Warum?

1. Es ist deutlich schneller als OpenVPN. Es hat niedrigere Latenzen.
2. Ich brauch den ganzen Zertifikate Müll nicht. Ständig drauf achten ob die evtl. ungültig sind.
3. Genau das keine weitere Auth. ist ein wichtiger Punkt für mich. Hehe So unterschiedlich sind Anforderungen.
Quote from: tiermutter on December 05, 2023, 07:18:48 AM
auch dass es keine weitere Authentifizierung am Client gibt ist mir ein Dorn im Auge.

Korrekt ist das einem evtl. etwas bessere Verwaltung fehlt. Wobei ich hier auch mit den Wireguard Instanzen arbeite an denen dann die Peers hängen.

Ich habe bisher aber nur so 30 Clients und gut 8 S2S Verbindungen. Ich mag das Konzept der Allowed IPs, weil ich darüber einem Client den Zugriff auf genau ein Ziel (IP) einschränken kann. Da brauche ich dann keine zusätzlichen Firewall regeln.

Es ist stabil und ich hatte bisher bei keinem der Updates von OPNsense eine Config die nicht mehr ging.

Das Konzept der Allowed IPs ist wie eine abgespeckte Version der SPD (Security Policy Database) in IPsec. Da wurde das Rad bei Wireguard auch nicht neu erfunden.

Wenn man bei IPsec in der Phase 2 (Child) nur einzelne IP Adressen eingibt, dann ist es genauso wie die allowed IPs bei Wireguard. Auch hier wird automatisch die Kernel Route angelegt und Verkehr der nicht erlaubt ist verworfen.

Wenn man ein gescheites "VPN" und nicht nur einen "Tunnel" möchte, kommt man an IPsec immer noch nicht vorbei.

Ich benutze Wireguard ausschließlich für einfache Tunnel zwischen VMs oder zwischen Infrastruktur. Alles wo ein Benutzer sich Authentifizieren muss, wird mit IPsec gemacht, gerade auch wegen 2 Faktor Authentifizierung.

Hardware:
DEC740

Hallo Zusammen,

Danke (Danke Danke ...)

Manchmal sehe ich die Bäume im Wald nicht mehr. Manchmal hilft es hier zu fragen und dann auf andere Ideen zu kommen. Ich renne und renne und finde den Ausgang nicht.

Wireguard: Werde ich weiter im Hinterkopf behalten. So als Notnagel super.

OpenVPN: Ich habe eine Konfig gefunden, die funktioniert. Werde ich bei Gelegenheit posten, vielleicht bekommen wir im Forum raus, wo's grundsätzlich hängt.

IPSec Roadwarrior: Habe ich getestet, das wird's dann vermutlich auch werden.

;-)


Hallo,

ich habe das gerade zufällig gelesen:

Quote from: Monviech on December 05, 2023, 12:00:22 PM
Alles wo ein Benutzer sich Authentifizieren muss, wird mit IPsec gemacht, gerade auch wegen 2 Faktor Authentifizierung.

Mich würde interessieren, a) was Du da als zweiten Faktor verwendest und b) mit welchem Client: dem oben erwähnten von NCP? Könntest Du mir dazu evtl. eine Info geben? Das wäre prima, vielen Dank!

IPsec kann Xauth - das ist das Stichwort. Da kannst du dann LDAP oder RADIUS (z.B.) hinten dran hängen, wird in Firmenumgebungen gerne auf Windows mit dem Active Directory verknüpft. RADIUS für Windows heißt bei Microsoft IAS - Internet Authentication Service.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

2-FA kann auch eine Kombination aus "Client Certificate" (Something you have) und Passwort (Something you know) sein.

In der OPNsense könnte man es mit einer doppelten "Remote Authentication" Round erreichen.

Round 0 = Public Key (Also Client Certificate, jeder Benutzer hat sein eigenes was von der CA signiert ist die hier eingetragen ist)
Round 1 = EAP-MSCHAPv2

Im NCP Client kann man bei "Identität" dann bei "Pre-Shared Key" das Client Certificate hinterlegen, und bei "EAP Authentifizierung" den Benutzernamen. Das Kennwort muss beim Anmelden dann eingegeben werden.

-----------------------------------

Ansonsten gibt es für OTP die Möglichkeit, die Benutzer in "System: Access: Users" anzulegen. Dann benutzt man "XAUTH Pam" als Option für die "Remote Authentication". Es sollten sich nun alle Benutzer in der Local Database mit OTP am VPN anmelden können (Zumindest hat das mit der "Mobile Client" Funktion damals geklappt, ob es mit Connections geht hab ich noch nie getestet)

-----------------------------------

Bitte beachte: Ich habe "würde - sollte - könnte" verwendet weil ich diese Szenarien noch nicht mit der OPNsense getestet habe. Für andere Lösungen benutze ich das was @Patrick oben angedeutet hat.

Hardware:
DEC740

Vielen Dank Euch beiden für die Infos zu 2FA. Ich hatte damals einige Kombinationen mit verschiedenen Clients (Windows Native, NCP, TheGreenBow etc.) getestet. Und ja, eine Variante dabei war User Cert + AD-Account. Auch die Möglichkeiten, an FreeRADIUS neben Authentifizierung gegen AD (erste Runde) in einer zweiten Runde OTP-Sachen anzudocken hatte ich mal angefangen abzuklopen. Irgendwie wurde es dann doch relativ aufwendig, gemeinsame Schnittmengen hinsichtlich der jeweils unterstützten Verfahren zu finden. Schlussendlich wurde es in dem konkreten Fall dann Cert+AD Credentials.

Von daher hat mich das halt einfach interessiert, für welche Kombination sich andere Leute entschieden haben.  ;)