Môže prepojenie OpenVPN so statickým kľúčom obslúžiť viac klientov?
Režim so statickým kľúčom prepája dva rovnocenné uzly. Pridanie client-to-client z neho nerobí server pre viac klientov; na to treba režim TLS a identitu pre každé zariadenie.
Režim so statickým kľúčom prepája presne dva rovnocenné uzly a to je jeho konštrukcia, nie obmedzenie, ktoré niekto zabudol zrušiť. client-to-client je možnosť preposielania v režime servera, takže jej pridanie do konfigurácie --secret nič nemení na tom, koľko klientov sa môže pripojiť. Rozhodnutie nie je o tom, ktorý prepínač pridať, ale či nasadenie potrebuje spojenie bod-bod alebo službu pre viac klientov. Ak sa musí viac zariadení pripájať nezávisle, režim ochrany sa zmení a každé zariadenie dostane identitu.
Dva uzly, jeden kľúč a žiadny stav pre jednotlivého klienta: tento tvar je celý príbeh režimu.
Na čo slúži režim so statickým kľúčom
V režime tajného kľúča oba uzly zdieľajú jeden súbor s kľúčom a tento kľúč chráni prevádzku priamo. Neexistuje podanie ruky, výmena certifikátov ani relácia pre jednotlivého klienta, pretože v poňatí servera žiadni klienti nie sú, iba dva koncové body.
Režim zostáva užitočný pre pevnú dvojicu strojov so zdokumentovaným postupom rotácie kľúčov a OpenVPN 2.6 ho označuje za zastaraný práve preto, že režim TLS tieto prípady pokrýva s lepšími vlastnosťami. Čo nedokáže, je rozlíšiť jedno pripájajúce sa zariadenie od druhého, pretože držanie súboru je celý príbeh overovania. Pridanie tretieho zariadenia znamená zdieľať s ním ten istý kľúč, a potom prvé dve už nedokážu rozlíšiť, že ide o niekoho iného.
Preto je hranica dvoch uzlov konštrukčná, a nie nastavenie, ktoré by sa dalo zmeniť.
Prečo client-to-client nie je chýbajúci diel
client-to-client riadi, či si pripojení klienti môžu vymieňať prevádzku cez server. Neprijíma klientov, neprideľuje identity ani nevytvára režim servera, ktorý nebol nakonfigurovaný, a v konfigurácii so statickým kľúčom neexistuje zoznam klientov, ktorý by mohol spravovať.
Ďalšie časté zmätky sa týkajú materiálu tls-crypt alebo tls-auth. Server TLS môže jeden z týchto kľúčov zdieľať medzi všetkými klientmi, pretože chráni riadiaci kanál, a nie dokazuje, kto ktorý klient je. Zdieľaný kľúč riadiaceho kanála v režime TLS je iný objekt než zdieľaný statický dátový kľúč, hoci oba prichádzajú ako podobne vyzerajúce súbory.
Voľba medzi režimami sa redukuje na dve otázky. Musí sa nezávisle pripájať viac než jedno zariadenie a potrebuje nasadenie odvolanie pre každé zariadenie? Nie na obe udržiava režim so statickým kľúčom životaschopný; áno na ktorúkoľvek z nich ukazuje na TLS. Neexistuje tretia možnosť, kde by bol druhý klient prijatý bez vlastnej identity.
Budovanie servera pre viac klientov
Server pre viac klientov potrebuje režim TLS, certifikát na strane servera a identitu pre každého klienta. Pomocník servera nastaví fond adries a režim pre viac klientov, ale nedodá konfiguráciu TLS, dôveryhodnú kotvu ani klientske certifikáty, ktoré robia prijatie zmysluplným.
Zaregistrujte každé zariadenie cez existujúcu certifikačnú autoritu namiesto kopírovania poverení jedného klienta. Práve odlišné identity umožňujú odvolanie, smerovanie pre jednotlivých klientov a užitočné záznamy, a jediný zdieľaný klientsky certifikát zrúti všetky tri.
Ak nasadenie overuje používateľov cez externý adresár alebo druhý faktor, tento návrh zostáva tak, ako je. Prechod do serverového režimu TLS rozhoduje o tom, ako sa uzly preukazujú na vrstve tunela, a nediktuje backend účtov. Držte obe rozhodnutia oddelené, aby zmena v jednom potichu nezmenila druhé.
Potom sa vedome rozhodnite o politike preposielania. client-to-client zapína prevádzku medzi klientmi na serverovej ceste v používateľskom priestore, čo mnohé nasadenia chcú a niektoré nesmú mať. Je to prepínač politiky, nie mechanizmus identity, a má sa zapnúť preto, že to návrh vyžaduje, nie preto, že ho zahrnul nejaký návod.
Kontrola, či sú klienti skutočne nezávislí
Pripojte dvoch klientov a potvrďte, že dostávajú rôzne adresy a objavujú sa s rôznymi identitami v protokole servera. Potom jedného odvolajte a potvrďte, že druhý ďalej funguje, čo je praktický test, že identity neboli zdieľané.
Otestujte povolenú službu medzi uzlami a tú, ktorá má zostať zablokovaná. Dve úspešné prihlásenia dokazujú prijatie, nie izoláciu, a rozdiel je dôležitý, keď má nasadenie oddeľovať skupiny používateľov.
Nakoniec čítajte režim servera z bežiacej konfigurácie, nie z pamäte. Konfigurácia so statickým kľúčom a ďalšími možnosťami je stále spojenie bod-bod a správny server TLS je jediné usporiadanie, v ktorom je niekoľko klientov skutočne oddelených uzlov.
Ak protokol ukazuje jedno spoločné meno pre každé zariadenie, problém nie je v režime. Problém je v procese registrácie.