Sziasztok!
Jelenleg az alábbi módon néz ki egy VPN configom.
Adott 3 telephely, ezek összelőve site-to-site wireguardal (Opnsense tűzfalakkal). Ezen kívül a main telephelyen fut egy Softether is, ami SSTP-t szolgáltat 15-20 gépnek (home office, ide-oda járó arcok, etc...) Ez utóbbira azért volt szükség, mert Wireguard-al volt gond a különféle erősen tűzfalazott, NAT-olt hálózatoknál az UDP miatt. Próbáltam először elrejteni a wireguard kommunikaciot TLS-ben (vannak erre leirasok a neten) de eleg macera, illetve a kliens oldalon is csak bonyolitja a használatát... SSTP nagy előnye, hogy gyarilag SSL alatt fut, így kb mindenhol megy.
Viszont gondoltam jó lenne egységesíteni, illetve valami közös interfészt összerakni a VPN-eknek. A Peer-to-Peer VPN-ek érdekesnek hangzottak, mert megoldják (elviekben) több gondom is. Van egységes management, illetve a legtöbb rendekezik relay serverrel a "nehezebb dió" hálózatok kezelésére.
Először a legelterjedtebbet próbáltam ki, a Tailscalet és a nyílt forráskódú manager szerverét, a Headscalet.
Sikerült is szépen beconfigolni és nagyon jól teszi a dolgát. A megengedő tűzfalak (tehát a telephelyeim) között szépen összeáll wireguardal, a problémás helyeken lévő kliensek pedig a beépített relay serveren (DERP) keresztül szintén gond nélkül csatalkoztak (a DERP SSL alapú)
A problémám csak a következő.... A Tailscale minden kliense wireguard-go alapú (még a linuxosak is). Ez elvileg koncepcio, nem is tervezik a modositását. (lásd ezt az issue-t: https://github.com/tailscale/tailscale/issues/426) viszont a userspace wireguard 100 Mbit <--> 1Gbit telephelyek között kb 30-40 mbitet tud (a gyengecske tuzfal vasakon) ott, ahol a opnsense kernel alapúja lazán 90-95 mbitel hasít... szóval a klienseknek még elmegy ez a savszel, viszont site-to-site nekem keves...
A lényeg, hogy próbáltam keresni alternatívákat (netbird, Innernet, zerotier...) de egyik sem tudta azt a funcionalitast, amit szerettem volna... A zerotier lassu volt, az Innernetben egyáltalán nincs relay server. Még a netbird volt a legigeretesebb, de valami oknál fogva azt a koncepciót követik, hogy a relay serveruk ugyanugy UDP alapu...
Szóval ha esetleg valaki ismer olyan Peer-to-Peer VPN-t, ami wireguard alapú és a relay servere pedig TLS, akkor irjon!
Hozzászólások
Szia. Pont Headscale-t szeretnék beállítani. DERP-vel meg tudtad oldani, hogy a site subneteit propagáltad a vpn-re?
Kubernetesen szeretném beállítani, hogy a belső ipket, a meshen belülről el lehessen érni .
Logo
Konkrét javaslatom nincs, kb. az összes lehetőséget felsoroltad.
Az jutna eszembe, hogy mondjuk Netmaker-rel megcsinálni a WG mesh hálózatot, és akár egy OPNsense-et beleszőni, ami tudna pl. OpenVPN-nel (pl. TCP/443-on) macerás helyről érkező klienseket fogadni. Elmélet, mert nem használtam még Netmaker-t, csak a leírása alapján nem userspace WG-t használ, így irgéretük szerint gyorsabb a többieknél.
Viszont részben ide kapcsolódik (szerintem) amin mostanában töröm a fejem, hogy mi módon lehet ilyesmit biztonságosra csinálni. Na nyilván alapból ezek mind biztonságosak, de mobil kliens esetében pl. mi van, ha ellopják/elveszik az eszköz? WG kapcsolat adatokat nem nehéz kiolvasni, és semmi olyan lehetőség nincs, amit a felhasználónak meg kell adnia, elérhetővé kell tennie (jelszó, PIN, TOTP, HW 2FA, stb) Én speciel ezért nem is gondolkodtam el WG használatán mobil eszközön (site-to-site szerintem a fő célközönsége, nem a road warrior), mert nem igazán látom, hogyan lehetne hatékonyan megvédeni ilyen esetben. Pláne, ha az eszköz nem veszik el, csak simán egy malware lenyúlja róla a WG kapcsolati adatokat.
A másik gondolatom, hogy érdemes-e a mobil klienseket is a mesh-be bevonni, nem lenne-e jobb azoknak egy (több a rendelkezésre állás okán) dedikált gateway, amin keresztül hozzáférést kapnak ahhoz, amihez muszáj.
- mindig lesznek olyan helyek, amik valamilyen extra szűrést tartalmaznak és nem működik a kliens oldali VPN. Erre megoldás az, hogy a kliens keres másik Internet elérést, vagy WG-t a szabványos IPSEC alapú portokra kell ráültetni. Sok helyen ezeket kiengedik, hogy ne legyen probléma a kliens oldali VPN. Az, hogy keresünk extra megoldást rá csak bonyolítja a konfigurálást és növeli a hibaforrás lehetőségét.
- céges VPN klienst csak olyan kliensre telepítek ki, amit Én felügyelek és nincs a felhasználónak admin joga. A tapasztalatom az, hogy admin jog nélkül nem lehet a WG kliensből kinyerni az információkat. (Mobiltelefon fel sem merülne bennem, hogy azon keresztül adjak VPN hozzáférést a felhasználónak.)
Ha megfújják a laptopot, akkor azért eléggé könnyű admin hozzáférést csinálni rajta. Na persze ha nincs BIOS password a boot-ra, HDD titkosítással megspékelve, ami a helybeni indítást és a kiszerelt meghajtós próbálkozást is megakadályozza. De a legtöbb helyen (az én környezetemben) ezt a felhasználók ellenállása miatt nem lehet bevezetni, mert kényelmetlen, és a biztonság senkit sem érdekel (főnök inkluzíve, amíg nincs baj...)
Pont ezen okból morfondírozok azon, hogy pl. IPsec IKEv2 esetén (aminem jó a kliens oldali támogatottsága, és a legtöbb helyen átengedik a tűzfalon a udp/4500-as portot) elég-e a tanúsítvány, vagy kell mellé az user/pass mindenképp, ha az user/pass úgy is el van mentve a gépre, nem üti be a felhasználó minden egyes kapcsolódáskor...
Céges környezetbe alap a lemeztitkosítás (bitlocker), és így nincs szükség BIOS/HDD/Boot jelszóvédelemre. A bitlockernél semmi interakcióra nincs szükség a felhasználó részéről, de védve van a merevlemez.
lokális admin jog: szeparált account + Privileged Access Management
A tanúsítvány alapú VPN addig jó, amíg a tanúsítványt nem lehet kiszedni a gépből és erre van lehetőség Windows esetében. De ehhez is megfelelő infrastruktúra (pénz) kell.
User/pass: ha a felhasználót a csatlakozásnál User/pass megadására kötelezem, akkor mindenképp kell az MFA még mellé.
Ezeket kombinálva:
- lemeztitkosítás
- noadmin jog
- CA infrastruktúra
már össze lehet rakni egy olyan VPN megoldást, ami a felhasználó interakciója nélkül képes csatlakozni a céges hálózatra. (Erre pont jelenleg nem alkalmas a WG)