Kan en OpenVPN-forbindelse med statisk nøkkel betjene flere klienter?
Modusen med statisk nøkkel kobler to likeverdige parter. Å legge til client-to-client gjør den ikke til en server for flere klienter; det krever TLS-modus og identitet per enhet.
Modusen med statisk nøkkel kobler nøyaktig to likeverdige parter, og det er dens design, ikke en begrensning noen glemte å oppheve. client-to-client er et videresendingsvalg i servermodus, så å føye det til en --secret konfigurasjon endrer ingenting i hvor mange klienter som kan koble til. Avgjørelsen handler ikke om hvilket flagg som skal legges til, men om utrullingen trenger en punkt-til-punkt-forbindelse eller en tjeneste for flere klienter. Hvis flere enheter må koble til uavhengig, endres beskyttelsesmodusen, og hver enhet får en identitet.
To parter, én nøkkel og ingen tilstand per klient: den formen er hele historien om modusen.
Hva modusen med statisk nøkkel er til
I hemmelig modus deler begge partene én nøkkelfil, og den nøkkelen beskytter trafikken direkte. Det er ingen håndtrykk, ingen sertifikatutveksling og ingen økt per klient, fordi det ikke finnes klienter i serverforstand, bare to endepunkter.
Modusen er fortsatt nyttig for et fast maskinpar med en dokumentert nøkkelrotasjonsprosess, og OpenVPN 2.6 merker den som foreldet nettopp fordi TLS-modus dekker de tilfellene med bedre egenskaper. Det den ikke kan, er å skille én tilkoblende enhet fra en annen, siden besittelsen av filen er hele autentiseringshistorien. Å legge til en tredje enhet betyr å dele den samme nøkkelen med den, hvoretter de to første ikke lenger kan skille den fra seg selv.
Derfor er grensen på to parter strukturell og ikke en innstilling som kan endres.
Hvorfor client-to-client ikke er den manglende brikken
client-to-client styrer om tilkoblede klienter kan utveksle trafikk gjennom serveren. Den slipper ikke inn klienter, tildeler ikke identiteter og oppretter ikke en servermodus som ikke ble konfigurert, og i en konfigurasjon med statisk nøkkel finnes det ingen klientliste for den å styre.
Den andre vanlige forvirringen gjelder tls-crypt eller tls-auth materiale. En TLS-server kan dele en av disse nøklene på tvers av alle klienter, fordi den beskytter kontrollkanalen i stedet for å bevise hvem hver klient er. En delt kontrollkanalnøkkel i TLS-modus er et annet objekt enn en delt statisk datanøkkel, selv om begge ankommer som filer som ser like ut.
Valget mellom modusene koker ned til to spørsmål. Skal mer enn én enhet koble til uavhengig, og trenger utrullingen tilbakekalling per enhet? Et nei på begge holder modusen med statisk nøkkel levedyktig; et ja på en av dem peker på TLS. Det finnes ingen tredje mulighet der en andre klient slipper inn uten sin egen identitet.
Bygge serveren for flere klienter
En server for flere klienter trenger TLS-modus, et sertifikat på serversiden og en identitet per klient. Serverhjelperen setter opp adressepulen og modusen for flere klienter, men den leverer ikke TLS-konfigurasjonen, tillitsankeret eller klientsertifikatene som gjør opptak meningsfullt.
Registrer hver enhet gjennom den eksisterende sertifikatmyndigheten i stedet for å kopiere én klients påloggingsinformasjon. Ulike identiteter er det som gjør tilbakekalling, ruting per klient og nyttige logger mulig, og ett delt klientsertifikat får alle tre til å kollapse.
Hvis utrullingen autentiserer brukere gjennom en ekstern katalog eller en andre faktor, forblir det designet som det er. Overgangen til TLS-servermodus avgjør hvordan partene beviser seg selv på tunnelnivået, og den dikterer ikke konto-backenden. Hold de to beslutningene atskilt slik at en endring i den ene ikke lydløst endrer den andre.
Bestem deretter videresendingspolicyen bevisst. client-to-client aktiverer trafikk mellom klienter i serverbanen i brukerrommet, noe mange utrullinger ønsker og noen ikke må ha. Det er en policybryter, ikke en identitetsmekanisme, og den bør slås på fordi designet krever det, ikke fordi en veiledning inkluderte den.
Kontrollere at klientene virkelig er uavhengige
Koble til to klienter og bekreft at de får ulike adresser og fremstår med ulike identiteter i serverens logg. Tilbakekall deretter én og bekreft at den andre fortsetter å virke, som er den praktiske prøven på at identitetene ikke ble delt.
Test den tillatte tjenesten mellom partene og en som skal forbli blokkert. To vellykkede pålogginger beviser opptak, ikke isolasjon, og forskjellen er viktig når utrullingen skal skille grupper av brukere.
Til slutt, les servermodusen fra den kjørende konfigurasjonen i stedet for fra hukommelsen. En konfigurasjon med statisk nøkkel og ekstra valg er fortsatt en punkt-til-punkt-forbindelse, og en korrekt TLS-server er den eneste ordningen der flere klienter er virkelig atskilte parter.
Hvis loggen viser ett felles navn for hver enhet, er ikke modusen problemet. Registreringsprosessen er.