Tres portàtils en un equip, tres menús de VPN diferents i un tiquet que diu que la connexió funciona a tot arreu menys al Mac. El pla darrere d'aquests clients pot ser idèntic encara que els menús no ho siguin. El que ha de coincidir és més estret del que assumeixen la majoria de desplegaments: una identitat de passarel·la, un tipus de credencial, un conjunt de rutes i una política de resolutor. Escriviu aquests quatre punts abans que algú exporti un perfil, i la feina de plataformes es converteix en una llista de comprovació en lloc d'una investigació.

Comenceu pel contracte d'accés, no pel fitxer del client

El contracte d'accés són cinc línies que un revisor pot comprovar sense obrir la consola del proveïdor. Anomena els prefixos privats que han de ser accessibles, els noms interns que s'han de resoldre, el resolutor que els respon, el trànsit que es permet quedar-se al camí local i el certificat de la passarel·la que el client hauria d'esperar. Tota la resta del desplegament és una traducció d'aquestes línies a un format de fitxer.

Un exemple d'oficina fa la forma concreta: servidors d'aplicacions a 10.60.0.0/16, noms privats sota corp.example, un resolutor intern a 10.61.0.53 i la navegació corrent deixada al camí que el dispositiu ja utilitza. L'últim punt és una decisió de política, no un valor per defecte del client, i diversos clients enviaran tot pel túnel si ningú no diu el contrari. Registreu el contracte amb data i propietari, perquè aquest registre és el que us dirà més endavant si va canviar el túnel o la política.

Trieu un protocol i una parella d'autenticació que pugueu defensar

IKEv2 amb autenticació de passarel·la basada en certificat i EAP per a l'usuari és l'elecció habitual quan les tres plataformes han de funcionar sense programari addicional, ja que Windows, macOS i NetworkManager porten cadascun un client IKEv2. El problema és que donar suport a IKEv2 descriu una etiqueta, no un conjunt de funcions. Els mètodes EAP, les claus amb suport de maquinari, el mapatge de certificat a compte i la reconnexió automàtica s'implementen per plataforma. Una combinació que funciona en dues de les tres és prou habitual perquè l'hàgiu d'assumir fins que la proveu.

Proveu la parella a cada plataforma objectiu abans d'escriure la guia de desplegament, no després. Una passarel·la que ofereix EAP-MSCHAPv2 i EAP-TLS alhora us dona marge per retrocedir, sempre que la retrocessió estigui documentada com a suportada i no es descobreixi durant un incident. Dos camins suportats són una assegurança barata; un tercer camí no documentat és un tiquet futur.

Quan cap parella no cobreix els tres clients, les opcions honestes són afegir un client, afegir un perfil de passarel·la o reduir la llista de plataformes suportades. Desactivar la validació de certificats a la plataforma que es queixa més fort no és una d'elles. Aquest canvi converteix un buit de compatibilitat en un risc d'intercepció, i cap pas posterior del desplegament el repara.

Construïu un artefacte per plataforma a partir del contracte

Windows pren un perfil VPNv2, lliurat per MDM o creat localment amb Add-VpnConnection i la seva càrrega XML. Les parts que fan mal són l'abast i la confiança. Un perfil d'abast de dispositiu i un perfil d'abast d'usuari s'instal·len en magatzems diferents, així que el certificat que necessita el client ha de ser al magatzem que coincideix amb l'abast triat. Una parella incorrecta produeix un perfil que s'importa net i després falla a la primera connexió.

macOS pren un perfil de configuració amb la càrrega VPN gestionada, signat i enviat per MDM o instal·lat a mà per a un pilot. La identitat i la cadena de CA viatgen com a càrregues separades, i per això un perfil es pot instal·lar sense queixes i fallar igualment en el moment de connectar. Reviseu la llista de càrregues, no només el resultat de la instal·lació.

Linux depèn del rerefons darrere de NetworkManager, i strongSwan i el connector de NetworkManager són paquets separats. Les propietats de connexió són específiques del connector, no claus VPN genèriques, així que una clau copiada d'un altre connector sovint es desa sense error i després falla en activar-se. Construïu la connexió en una imatge neta per confirmar que el connector hi és on realment s'executarà.

Els tres artefactes difereixen de format, però cadascun codifica les mateixes cinc línies del contracte. Aquesta és la prova que un artefacte està acabat: cada línia hi és representada en algun lloc, i no s'ha inventat res extra pel camí.

PlatformArtifactCheck before handoff
WindowsVPNv2 profile or Add-VpnConnectionScope matches certificate store
macOSManaged VPN payload plus certificate payloadBoth payloads present in one profile
LinuxNetworkManager connection with strongSwan backendPlugin package installed on the image

Verifiqueu rutes, resolutor i reconnexió en un compte net

Connectat no és la prova d'acceptació. A Windows, Get-VpnConnection mostra el perfil i route print mostra si el prefix privat ha arribat a la interfície del túnel. A macOS, scutil --nc list confirma el servei actiu mentre scutil --dns mostra l'ordre de resolutors que el sistema farà servir realment.

A Linux, nmcli connection show --active demostra que la connexió està aixecada i resolvectl status mostra el DNS per enllaç. Un resolutor present al fitxer de connexió però absent de la sortida per enllaç vol dir que el DNS dividit no s'està aplicant. Aquesta és la diferència entre noms que es resolen i noms que es resolen pel túnel, i canvia quin equip de suport té el següent pas. Compareu la sortida per enllaç abans i després que la connexió s'aixequi, no només després.

Executeu la comprovació sencera amb un compte nou, sense credencials en memòria cau i sense cap certificat instal·lat per un administrador. Després repetiu-la després d'una suspensió i represa, i una vegada més després de forçar una reintroducció de credencials. Aquestes dues transicions treuen a la llum la majoria de fallades de reconnexió que una primera connexió no mostra mai.

Versiona el paquet i mantén un camí de reversió

Etiqueteu cada paquet de plataforma amb la revisió del contracte que implementa, i anoteu les versions de client i passarel·la amb què l'heu acceptat. Quan el comportament canviï després d'una actualització del client, l'etiqueta apunta a un contracte per tornar a provar i no a un fitxer per endevinar.

Manteniu recuperable el paquet anterior de cada plataforma i escriviu-hi al costat la comanda d'eliminació. Desinstal·lar un perfil de VPN no és la imatge inversa d'instal·lar-lo a Windows, macOS o Linux, i les diferències surten en el pitjor moment possible. Assageu l'eliminació una vegada en un dispositiu de recanvi perquè l'arxiu esdevingui un pla i no una esperança.

Articles relacionats