Läget med statisk nyckel kopplar ihop exakt två jämbördiga parter, och det är dess konstruktion, inte en begränsning som någon glömde att häva. client-to-client är ett vidarebefordringsalternativ i serverläget, så att lägga till det i en --secret konfiguration ändrar inget i hur många klienter som kan ansluta. Beslutet handlar inte om vilken flagga som ska läggas till, utan om driftsättningen behöver en punkt-till-punkt-förbindelse eller en tjänst för flera klienter. Om flera enheter måste ansluta oberoende ändras skyddsläget och varje enhet får en identitet.

Två parter, en nyckel och inget tillstånd per klient: den formen är hela historien om läget.

Vad läget med statisk nyckel är till för

I hemligt läge delar båda parterna en enda nyckelfil, och den nyckeln skyddar trafiken direkt. Det finns ingen handskakning, ingen certifikatutväxling och ingen session per klient, eftersom det inte finns några klienter i serverbemärkelse, bara två ändpunkter.

Läget är fortfarande användbart för ett fast maskinpar med en dokumenterad nyckelrotationsprocess, och OpenVPN 2.6 markerar det som föråldrat just därför att TLS-läget täcker de fallen med bättre egenskaper. Det det inte kan är att skilja en anslutande enhet från en annan, eftersom innehavet av filen är hela autentiseringshistorien. Att lägga till en tredje enhet innebär att dela samma nyckel med den, varefter de två första inte längre kan skilja den från sig själva.

Därför är gränsen på två parter strukturell och inte en inställning som kan ändras.

Varför client-to-client inte är den saknade biten

client-to-client styr om anslutna klienter får utbyta trafik via servern. Det släpper inte in klienter, tilldelar inga identiteter och skapar inte ett serverläge som inte konfigurerats, och i en konfiguration med statisk nyckel finns ingen klientlista för det att styra.

Den andra vanliga förvirringen gäller tls-crypt eller tls-auth material. En TLS-server kan dela en av dessa nycklar över alla klienter, eftersom den skyddar kontrollkanalen i stället för att bevisa vem varje klient är. En delad kontrollkanalnyckel i TLS-läget är ett annat objekt än en delad statisk datanyckel, även om båda anländer som filer som ser likadana ut.

Valet mellan lägena kokar ner till två frågor. Ska mer än en enhet ansluta oberoende, och behöver driftsättningen återkallning per enhet? Ett nej på båda håller läget med statisk nyckel livskraftigt; ett ja på endera pekar mot TLS. Det finns inget tredje alternativ där en andra klient släpps in utan sin egen identitet.

Bygga servern för flera klienter

En server för flera klienter behöver TLS-läget, ett certifikat på serversidan och en identitet per klient. Serverhjälparen ställer in adresspoolen och läget för flera klienter, men den levererar inte TLS-konfigurationen, förtroendeankaret eller klientcertifikaten som gör antagningen meningsfull.

Registrera varje enhet via den befintliga certifikatmyndigheten i stället för att kopiera en klients inloggningsuppgifter. Just åtskilda identiteter gör återkallning, routing per klient och användbara loggar möjliga, och ett enda delat klientcertifikat får alla tre att kollapsa.

Om driftsättningen autentiserar användare via en extern katalog eller en andra faktor förblir den designen som den är. Övergången till TLS-serverläget avgör hur parterna bevisar sig på tunnelnivån, och det dikterar inte konto-backenden. Håll de två besluten åtskilda så att en ändring i det ena inte tyst ändrar det andra.

Bestäm sedan vidarebefordringspolicyn medvetet. client-to-client aktiverar trafik mellan klienter i servervägen i användarutrymmet, vilket många driftsättningar vill ha och vissa inte får ha. Det är en policybrytare, inte en identitetsmekanism, och den bör slås på för att designen kräver det, inte för att en handledning tog med den.

Kontrollera att klienterna verkligen är oberoende

Anslut två klienter och bekräfta att de får olika adresser och framträder med olika identiteter i serverns logg. Återkalla sedan en och bekräfta att den andra fortsätter att fungera, vilket är det praktiska provet på att identiteterna inte delades.

Testa den tillåtna tjänsten mellan parterna och en som ska förbli blockerad. Två lyckade inloggningar bevisar antagning, inte isolering, och skillnaden spelar roll när driftsättningen ska skilja grupper av användare.

Läs slutligen serverläget från den körande konfigurationen i stället för från minnet. En konfiguration med statisk nyckel och extra alternativ är fortfarande en punkt-till-punkt-förbindelse, och en korrekt TLS-server är den enda ordningen där flera klienter är verkligt åtskilda parter.

Om loggen visar ett gemensamt namn för varje enhet är det inte läget som är problemet. Registreringsprocessen är det.

Relaterade artiklar