De modus met statische sleutel verbindt precies twee peers, en dat is het ontwerp, geen beperking die iemand vergat op te heffen. client-to-client is een doorstuuroptie in de servermodus, dus het toevoegen ervan aan een --secret configuratie verandert niets aan hoeveel clients verbinding kunnen maken. De beslissing gaat niet over welke vlag je toevoegt, maar over de vraag of de uitrol een punt-tot-puntkoppeling of een dienst voor meerdere clients nodig heeft. Als meerdere apparaten onafhankelijk verbinding moeten maken, verandert de beveiligingsmodus en krijgt elk apparaat een identiteit.

Twee peers, één sleutel en geen toestand per client: die vorm is het hele verhaal van de modus.

Waar de modus met statische sleutel voor dient

In de geheime modus delen beide peers één sleutelbestand, en die sleutel beschermt het verkeer rechtstreeks. Er is geen handshake, geen certificaatuitwisseling en geen sessie per client, omdat er geen clients in serverzin zijn, alleen twee eindpunten.

De modus blijft nuttig voor een vast paar machines met een gedocumenteerd sleutelrotatieproces, en OpenVPN 2.6 markeert hem juist als verouderd omdat de TLS-modus die gevallen met betere eigenschappen dekt. Wat hij niet kan, is het ene verbindende apparaat van het andere onderscheiden, aangezien het bezit van het bestand het hele authenticatieverhaal is. Een derde apparaat toevoegen betekent dezelfde sleutel ermee delen, waarna de eerste twee het niet meer van zichzelf kunnen onderscheiden.

Daarom is de grens van twee peers structureel en geen instelling die je kunt wijzigen.

Waarom client-to-client niet het ontbrekende stuk is

client-to-client bepaalt of verbonden clients verkeer via de server mogen uitwisselen. Het laat geen clients toe, wijst geen identiteiten toe en maakt geen servermodus die niet is geconfigureerd, en in een configuratie met statische sleutel is er geen clientlijst die het kan beheren.

De andere veelvoorkomende verwarring betreft materiaal voor tls-crypt of tls-auth. Een TLS-server kan een van die sleutels met alle clients delen, omdat die het controlekanaal beschermt in plaats van te bewijzen wie elke client is. Een gedeelde controlekanaalsleutel in TLS-modus is een ander object dan een gedeelde statische datasleutel, ook al komen beide als bestanden die er hetzelfde uitzien.

De keuze tussen de modi komt neer op twee vragen. Moet meer dan één apparaat onafhankelijk verbinding maken, en heeft de uitrol intrekking per apparaat nodig? Een nee op beide houdt de modus met statische sleutel levensvatbaar; een ja op een van beide wijst op TLS. Er is geen derde optie waarin een tweede client wordt toegelaten zonder eigen identiteit.

De server voor meerdere clients bouwen

Een server voor meerdere clients heeft de TLS-modus, een certificaat aan de serverkant en een identiteit per client nodig. De serverhulp stelt de adrespool en de modus voor meerdere clients in, maar levert niet de TLS-configuratie, het vertrouwensanker of de clientcertificaten die toelating betekenisvol maken.

Registreer elk apparaat via de bestaande certificaatautoriteit in plaats van de inloggegevens van één client te kopiëren. Afzonderlijke identiteiten maken intrekking, routing per client en bruikbare logboeken mogelijk, en één gedeeld clientcertificaat laat alle drie instorten.

Als de uitrol gebruikers authenticieert via een externe map of een tweede factor, blijft dat ontwerp zoals het is. Overstappen naar de TLS-servermodus bepaalt hoe peers zich op de tunnellaag bewijzen, en het schrijft de accountbackend niet voor. Houd de twee beslissingen gescheiden zodat een wijziging in de ene de andere niet stilzwijgend verandert.

Bepaal daarna bewust het doorstuurbeleid. client-to-client schakelt verkeer tussen clients in het serverpad in de gebruikersruimte in, wat veel uitrollen willen en sommige niet mogen hebben. Het is een beleidsschakelaar, geen identiteitsmechanisme, en hij moet aan staan omdat het ontwerp het vereist, niet omdat een handleiding hem opnam.

Controleren of clients echt onafhankelijk zijn

Verbind twee clients en bevestig dat ze verschillende adressen krijgen en met verschillende identiteiten in het logboek van de server verschijnen. Trek er daarna één in en bevestig dat de ander blijft werken, wat de praktische test is dat identiteiten niet werden gedeeld.

Test de toegestane dienst tussen peers en een die geblokkeerd moet blijven. Twee geslaagde aanmeldingen bewijzen toelating, niet isolatie, en het verschil is belangrijk wanneer de uitrol groepen gebruikers moet scheiden.

Lees ten slotte de servermodus uit de draaiende configuratie en niet uit het geheugen. Een configuratie met statische sleutel en extra opties is nog steeds een punt-tot-puntkoppeling, en een correcte TLS-server is de enige opstelling waarin meerdere clients echt afzonderlijke peers zijn.

Als het logboek één gemeenschappelijke naam voor elk apparaat toont, is de modus niet het probleem. Het registratieproces is het.

Gerelateerde artikelen