Pot un enllaç OpenVPN amb clau estàtica servir diversos clients?
El mode de clau estàtica connecta dos iguals. Afegir client-to-client no el converteix en un servidor per a diversos clients; això necessita el mode TLS i una identitat per dispositiu.
El mode de clau estàtica connecta exactament dos iguals, i aquest és el seu disseny, no una limitació que algú va oblidar aixecar. client-to-client és una opció de reenviament del mode servidor, així que afegir-la a una configuració --secret no canvia res sobre quants clients es poden connectar. La decisió no és quina bandera afegir, sinó si el desplegament necessita un enllaç punt a punt o un servei per a diversos clients. Si diversos dispositius s’han de connectar de manera independent, el mode de protecció canvia i cada dispositiu obté una identitat.
Dos iguals, una clau i cap estat per client: aquesta forma és tota la història del mode.
Per a què serveix el mode de clau estàtica
En el mode secret, tots dos iguals comparteixen un sol fitxer de clau, i aquesta clau protegeix el trànsit directament. No hi ha encaixada de mans, ni intercanvi de certificats, ni sessió per client, perquè no hi ha clients en el sentit de servidor, només dos extrems.
El mode continua sent útil per a una parella fixa de màquines amb un procés documentat de rotació de claus, i OpenVPN 2.6 el marca com a obsolet justament perquè el mode TLS cobreix aquests casos amb millors propietats. El que no pot fer és distingir un dispositiu connectat d’un altre, ja que la possessió del fitxer és tota la història de l’autenticació. Afegir un tercer dispositiu vol dir compartir-hi la mateixa clau, i després els dos primers ja no poden distingir-lo d’ells mateixos.
Per això el límit de dos iguals és estructural i no un paràmetre que es pugui canviar.
Per què client-to-client no és la peça que falta
client-to-client controla si els clients connectats poden intercanviar trànsit a través del servidor. No admet clients, no assigna identitats ni crea un mode servidor que no estigui configurat, i en una configuració de clau estàtica no hi ha cap llista de clients que pugui governar.
L’altra confusió habitual afecta el material de tls-crypt o tls-auth. Un servidor TLS pot compartir una d’aquestes claus entre tots els clients, perquè protegeix el canal de control en lloc de demostrar qui és cada client. Una clau compartida del canal de control en mode TLS és un objecte diferent d’una clau de dades estàtica compartida, encara que totes dues arribin com a fitxers que semblen iguals.
Triar entre els modes es redueix a dues preguntes. Cal que més d’un dispositiu es connecti de manera independent, i el desplegament necessita revocació per dispositiu? Un no a totes dues manté viable el mode de clau estàtica; un sí a qualsevol de les dues apunta al TLS. No hi ha una tercera opció en què s’admeti un segon client sense identitat pròpia.
Construir el servidor per a diversos clients
Un servidor per a diversos clients necessita el mode TLS, un certificat del costat del servidor i una identitat per client. L’auxiliar del servidor prepara el conjunt d’adreces i el mode multclient, però no proporciona la configuració TLS, l’àncora de confiança ni els certificats de client que fan que l’admissió tingui sentit.
Inscriviu cada dispositiu a través de l’autoritat de certificació existent en lloc de copiar les credencials d’un client. Les identitats diferents són el que fa possibles la revocació, l’encaminament per client i uns registres útils, i un sol certificat de client compartit enfonsa les tres coses.
Si el desplegament autentica els usuaris mitjançant un directori extern o un segon factor, aquest disseny es manté tal com és. Passar al mode servidor TLS decideix com els iguals es demostren a la capa de túnel i no dicta el rerefons de comptes. Manteniu les dues decisions separades perquè un canvi en una no alteri silenciosament l’altra.
Després decidiu la política de reenviament deliberadament. client-to-client habilita el trànsit entre clients al camí del servidor en espai d’usuari, cosa que molts desplegaments volen i alguns no poden tenir. És un commutador de política, no un mecanisme d’identitat, i s’ha d’activar perquè el disseny ho requereix, no perquè un tutorial l’inclogués.
Comprovar que els clients són realment independents
Connecteu dos clients i confirmeu que reben adreces diferents i que apareixen amb identitats diferents al registre del servidor. Després revoqueu-ne un i confirmeu que l’altre continua funcionant, que és la prova pràctica que les identitats no es van compartir.
Proveu el servei permès entre iguals i un que hagi de romandre bloquejat. Dos inicis de sessió correctes proven l’admissió, no l’aïllament, i la diferència importa quan el desplegament ha de separar grups d’usuaris.
Finalment, llegiu el mode servidor des de la configuració en execució i no de memòria. Una configuració de clau estàtica amb opcions addicionals continua sent un enllaç punt a punt, i un servidor TLS correcte és l’única disposició en què diversos clients són iguals realment separats.
Si el registre mostra un sol nom comú per a cada dispositiu, el problema no és el mode. El problema és el procés d’inscripció.