OpenVPN-profieloordraagbaarheid: draagbare sleutels teenoor platformopsies
’n .ovpn-lêer meng draagbare identiteitsmateriaal met opdragte wat net een kliënt verstaan. Vergelyk die twee voordat u die sertifikaat vir ’n fout blameer.
Dieselfde .ovpn-lêer maak ’n tonnel in een kliënt oop en weier om in ’n ander te begin, en die sertifikaat is gewoonlik die eerste verdagte. Dikwels bevat die lêer ’n opdrag wat net een enjin implementeer. ’n Profiel is ’n kontrak met ’n spesifieke kliënt, nie ’n draagbare script nie.
Skei wat saam met die identiteit reis van wat aan ’n platform behoort. Die fout noem dan gewoonlik homself.
Een lêer, twee kontrakte
’n Profiel bundel drie soorte inhoud: identiteitsmateriaal soos CA- en kliëntsertifikate en die private sleutel, vervoerfeite soos die remote-eindpunt en protokol, en gedragsopdragte soos DNS-hantering of toestelopsies. Die eerste twee is breed draagbaar oor enjins wat dieselfde protokol ondersteun. Die derde is waar implementasies verskil. Om die hele lêer as een draagbare eenheid te behandel, is wat die verwarrende foute veroorsaak.
’n Lêer wat in ’n GUI op een platform werk, is nie outomaties geldig vir die opdragreël-kliënt op ’n ander nie. Selfs wanneer albei OpenVPN is, verskil die interpreteerders en die opsiestelle. Daarom is ’n suksesvolle invoer nie bewys van ’n draagbare profiel nie.
Draagbare materiaal teenoor platformopdragte
Identiteits- en vervoerafdelings is die deel om te bewaar. ca, cert, key en remote beskryf wie verbind en waar, en hulle beteken dieselfde vir enige kliënt wat die standaard volg.
Gedragsopdragte is die deel om te vergelyk. block-outside-dns bestaan byvoorbeeld om Windows se DNS-gedrag te verander. ’n Unix-kliënt herken dit dalk glad nie.
Lees die opsiellys van die ontvangende kliënt eerder as dié van die sturende een. Die OpenVPN 2.6-verwysingshandleiding dokumenteer die enjin se opsies, en ’n GUI se invoervenster is nie daardie lys nie.
Lees die interpreteerderfout voor die sertifikaat
’n Fout wat ’n onbekende opsie noem, is ’n interpreteerderfout, nie ’n verifikasiefout nie. Die verbinding het nooit TLS bereik nie, so om sertifikate te verander kan nie help nie. Lees die eerste fout van die werklike kliënt en weergawe, en verwyder of vervang dan net die opdrag wat daardie kliënt nie kan implementeer nie. Om sertifikaat- of roete-afdelings te skrap om die lêer te laat laai, is hoe ’n werkende profiel ’n onveilige een word.
As die fout die handshake, ’n sertifikaat of ’n syfer noem, het die profiel geparseer en is die probleem elders.
Hou die oorspronklike lêer langs die aangepaste een. Wanneer die aangepaste lêer later misluk, is die oorspronklike die kontrole wat jou vertel of die verandering of die omgewing beweeg het.
Voorreg is ’n tweede grens
Voorreg is die ander grens: om ’n tonneltoestel te skep, roetes te installeer en ’n private sleutel te lees, hang alles van plaaslike regte af. ’n Sleutellêer wat net deur root leesbaar is, is ’n normale ontplooiing, nie ’n profielfout nie. Die regstelling hoort in eienaarskap of vermoë, nie in die lêer nie.
Om die kliënt met sudo te laat loop, kan ’n plaaslike toestemmingsweiering oplos, en dit kan nie ’n opdrag byvoeg wat die program nie implementeer nie. Dit verander ook watter gebruiker se sleutelring, konfigurasiepaaie en netwerkbestuurder-konteks geld, so die resultaat is nie dieselfde toets nie.
Pas doelbewus aan
Wanneer ’n verskaffer aparte profiele publiseer, neem die een wat vir die ontvangende kliënt bedoel is. Om ’n ander platform se lêer aan te pas, is ’n laaste uitweg. Dit vereis ’n rekord van elke veranderde opsie en ’n kopie van die oorspronklike.
Toets identiteit, roetering en DNS as drie aparte uitkomste. ’n Profiel wat verifieer en roeteer maar naamresolusie breek, is ’n gedeeltelik aangepaste profiel, nie ’n werkende een nie.