Kas staatilise võtmega OpenVPN link saab teenindada mitut klienti?
Staatilise võtmega režiim ühendab kaks võrdset osapoolt. client-to-client lisamine ei muuda seda mitme kliendi serveriks; selleks on vaja TLS-režiimi ja iga seadme identiteeti.
Staatilise võtmega režiim ühendab täpselt kaks võrdset osapoolt ja see on selle konstruktsioon, mitte piirang, mille keegi unustas tühistada. client-to-client on serverirežiimi edastusvalik, seega selle lisamine --secret konfiguratsiooni ei muuda midagi selles, kui palju kliente saab ühenduda. Otsus ei ole see, millist lippu lisada, vaid kas juurutamine vajab punkt-punkti linki või mitme kliendi teenust. Kui mitu seadet peavad ühenduma iseseisvalt, muutub kaitse režiim ja iga seade saab identiteedi.
Kaks osapoolt, üks võti ja mingit olekut kliendi kohta: see kuju on kogu selle režiimi lugu.
Milleks staatilise võtmega režiim mõeldud on
Salarežiimis jagavad mõlemad osapooled ühte võtmefaili ja see võti kaitseb liiklust otse. Puudub käepigistus, puudub sertifikaatide vahetus ja puudub seanss kliendi kohta, sest serveri mõttes kliente ei ole, on ainult kaks lõpp-punkti.
Režiim jääb kasulikuks kindlale masinapaarile dokumenteeritud võtme rotatsiooni protsessiga ja OpenVPN 2.6 märgib selle vananenuks just seetõttu, et TLS-režiim katab need juhtumid paremate omadustega. Mida see ei suuda, on eristada üht ühenduvat seadet teisest, sest faili valdamine on kogu autentimise lugu. Kolmanda seadme lisamine tähendab sama võtme jagamist sellega, mille järel kaks esimest ei suuda seda enam endast eristada.
Seetõttu on kahe osapoole piir struktuurne, mitte muudetav seade.
Miks client-to-client ei ole puuduv tükk
client-to-client juhib, kas ühendatud kliendid tohivad serveri kaudu liiklust vahetada. See ei võta kliente vastu, ei määra identiteete ega loo serverirežiimi, mida ei konfigureeritud, ja staatilise võtmega konfiguratsioonis ei ole kliendiloendit, mida see juhiks.
Teine tavaline segadus puudutab tls-crypt või tls-auth materjali. TLS-server saab ühte neist võtmetest jagada kõigi klientide vahel, sest see kaitseb juhtkanalit, mitte ei tõesta, kes iga klient on. Jagatud juhtkanali võti TLS-režiimis on teine objekt kui jagatud staatiline andmevõti, kuigi mõlemad saabuvad sarnaselt näivate failidena.
Režiimide vahel valimine taandub kahele küsimusele. Kas rohkem kui üks seade peab ühenduma iseseisvalt ja kas juurutamine vajab seadme kaupa tühistamist? Ei mõlemale hoiab staatilise võtmega režiimi elujõulisena; jah ükskõik kummale osutab TLS-ile. Kolmandat valikut, kus teine klient võetakse vastu ilma oma identiteedita, ei ole.
Mitme kliendi serveri ehitamine
Mitme kliendi server vajab TLS-režiimi, serveripoolset sertifikaati ja identiteeti iga kliendi kohta. Serveri abiline seadistab aadresside kogumi ja mitme kliendi režiimi, kuid ei anna TLS-konfiguratsiooni, usaldusankrut ega kliendisertifikaate, mis teevad vastuvõtu mõttekaks.
Registreerige iga seade olemasoleva sertifitseerimisasutuse kaudu, mitte ärge kopeerige ühe kliendi mandaate. Just erinevad identiteedid teevad võimalikuks tühistamise, kliendipõhise marsruutimise ja kasulikud logid, ning üks jagatud kliendisertifikaat variseb kõik kolm kokku.
Kui juurutamine autendib kasutajaid välise kataloogi või teise teguri kaudu, jääb see disain selliseks, nagu see on. Üleminek TLS-serveri režiimile otsustab, kuidas osapooled tunnelikihis end tõestavad, ja ei dikteeri kontode taustasüsteemi. Hoidke kaks otsust lahus, et muudatus ühes ei muudaks vaikselt teist.
Seejärel otsustage edastuspoliitika teadlikult. client-to-client lubab klientidevahelise liikluse kasutajaruumi serverirajal, mida paljud juurutused soovivad ja mõned ei tohi omada. See on poliitika lüliti, mitte identiteedimehhanism, ja see tuleks sisse lülitada seetõttu, et disain seda nõuab, mitte seetõttu, et õpetus selle lisas.
Kontrollimine, et kliendid on tõesti sõltumatud
Ühendage kaks klienti ja kinnitage, et nad saavad erinevad aadressid ja ilmuvad serveri logis erinevate identiteetidega. Seejärel tühistage üks ja kinnitage, et teine jätkab töötamist, mis on praktiline test, et identiteete ei jagatud.
Testige lubatud osapooltevahelist teenust ja sellist, mis peaks jääma blokeerituks. Kaks edukat sisselogimist tõestavad vastuvõttu, mitte isolatsiooni, ja see vahe on oluline, kui juurutamine peaks kasutajarühmi eraldama.
Lõpuks lugege serverirežiim töötavast konfiguratsioonist, mitte mälust. Staatilise võtmega konfiguratsioon lisavalikutega on endiselt punkt-punkti link ja korrektne TLS-server on ainus paigutus, kus mitu klienti on tõeliselt eraldi osapooled.
Kui log näitab iga seadme kohta üht ühist nime, ei ole probleem režiimis. Probleem on registreerimisprotsessis.