Dy profile, njëri lidhet dhe tjetri jo, dhe mënyra e shpejtë për të parë pse është një diff. Problemi është se i njëjti diff shtyp çelësin privat inline, çelësin statik dhe çdo bllok kredencialesh që mban skedari, dhe njerëzit e ngjitin daljen në një bisedë para se ta vënë re. Vendimi për çfarë po krahasoni vjen para ekzekutimit të komandës. Krahasoni strukturën dhe rolet në kopje të mbrojtura, dhe ndërtoni një skedar të redaktuar veçmas kur dikush tjetër duhet ta shohë.

Çfarë mban në të vërtetë një skedar .ovpn

Një skedar .ovpn është një konfigurim me blloqe inline opsionale. Ai mund të mbajë një certifikatë CA, një certifikatë klienti, një çelës privat, një çelës tls-auth ose tls-crypt, dhe direktiva që tregojnë skedarë të jashtëm ose kërkojnë kredenciale. Dy skedarë mund të duken pothuajse identikë dhe të ndryshojnë vetëm brenda një blloku, ose në një direktivë që ndryshon plotësisht transportin. Numri i rreshtave nuk ju thotë asgjë se cila prej tyre ndodhi.

Një ndryshim brenda një blloku çelësi nuk është provë publike e asgjëje. Një certifikatë e rilëshuar dhe një me çelës të ri mund të prodhojnë të njëjtën formë ndryshimi, prandaj mospërputhja e bllokut thotë që materiali është i ndryshëm, jo cili vendim e krijoi. Trajtojeni si sinjal për të krahasuar fushat, jo si gjetje.

Krahasoni sipas rolit, jo sipas rreshtit

Ndiqni rendin e vetë lidhjes: së pari pika fundore dhe transporti, pastaj besimi dhe identiteti i pritur, pastaj autentikimi i përdoruesit, pastaj rrugët, DNS dhe grepçat e skriptit. Ky sekuencë përputhet me atë që bën klienti, prandaj ndryshimi i parë që hasni është gjëja e parë që mund të ketë prishur lidhjen. Krahasimi sipas alfabetit përkundrazi i shpërndan cilësimet e lidhura në të gjithë daljen.

Një kalim i vetëdijshëm për fushat shikon këto elemente, në atë rend. Çdo gjë që klienti kërkon në mënyrë interaktive i përket rreshtit të autentikimit, jo rreshtave të besimit.

  • remote, proto dhe porti, duke përfshirë çdo bllok lidhjeje.
  • ca dhe cert: lëshuesi, subjekti dhe data e skadimit.
  • Nëse ekziston fare një çelës privat, kurrë se çfarë përmban.
  • tls-auth ose tls-crypt prania dhe drejtimi i çelësit.
  • Direktiva autentikimi, duke përfshirë çdo referencë për një skedar kredencialesh.
  • Rrugët, opsionet DNS dhe grepçat e skriptit që ekzekutohen gjatë lidhjes.

Kur një skedar mban disa blloqe lidhjeje, mbani çdo opsion pranë pikës së tij fundore. Krahasimi vetëm i rreshtit të parë remote mund të humbasë alternativën që klienti zgjedh në të vërtetë në këtë rrjet.

Pse një diff i thjeshtë është mjeti i gabuar

Një diff i thjeshtë është ndërtuar për tekst, jo për sekrete. Ai do të shtypë me kënaqësi një çelës privat në historikun e ekranit, dhe nuk do t'ju thotë se direktiva që po shikoni nuk lidhet me dështimin. Nxjerrja e fushave është njëkohësisht më e sigurt dhe më e lexueshme, sepse materiali i certifikatës mund të krahasohet si metadata në vend të bajteve.

openssl x509 -in ca.crt -noout -subject -issuer -enddate
openssl x509 -in client.crt -noout -subject -issuer -enddate
grep -E '^(remote|proto|port|tls-auth|tls-crypt|route|dhcp-option)' profile.ovpn

Dy komandat e para shtypin identitetin dhe vlefshmërinë pa prekur çelësin, prandaj dalja e tyre është e sigurt për t'u ngjitur. grep shtyp emrat dhe vlerat e direktivave por kurrë trupat e blloqeve, gjë që e bën atë kalimin e parë të saktë kur dyshoni një ndryshim transporti ose rrugëtimi. Nëse vetë blloku duhet krahasuar, krahasoni hash-in e tij në vend të përmbajtjes.

Ndërtoni një kopje të redaktuar për tiketën

Hiqni sekretet e vërteta dhe identifikuesit e panevojshëm duke mbajtur emrat e fushave dhe strukturë të mjaftueshme për të shpjeguar ndryshimin. Një shënues i të njëjtës formë zbulon ende ku ndodhet materiali dhe sa i gjatë ishte, prandaj vendosni nëse edhe kjo është e pranueshme. Kontrolloni vetë bashkëngjitjen përfundimtare në vend që të besoni komandën që mbani mend se e ekzekutuat. Mos e redaktoni origjinalin e punës vetëm për të prodhuar një shembull, sepse një profil i redaktuar nuk është domosdoshmërisht i ekzekutueshëm dhe nuk duhet të riimportohet kurrë.

Mbani origjinalet të identifikueshëm sipas emrit të skedarit dhe hash-it në vend që t'i kopjoni në tre drejtori me emra të ngjashëm. Një varg hash mjafton për të provuar se cili skedar u shqyrtua dhe nuk kushton asgjë nëse rrjedh. Pritini kopjet pasi ndryshimi të mbyllet, që personi tjetër të trashëgojë një skedar të vetëm autoritar.

Mbani krahasimin të lidhur me një dështim

Një krahasim ia vlen koston kur përgjigjet një pyetjeje për një import ose një dështim lidhjeje. Emërtoni së pari hapin që dështon, pastaj krahasoni vetëm fushat nga të cilat varet ai hap; grumbullimi i të gjitha kredencialeve të klientit në një drejtori e bën rrjedhjen tjetër më të mundshme dhe diagnozën tjetër më të ngadaltë. Sa më e ngushtë pyetja, aq më e shkurtër lista e fushave që mund t'i përgjigjen asaj.

Nëse një skedar i ri erdhi nga operatori, konfirmoni rrugën e shpërndarjes para se të zëvendësoni materialin e besimit. Pas ndryshimit, inspektoni kopjen e importuar që klienti zgjodhi në të vërtetë dhe rezultatin e negociuar, sepse një direktivë mund të injorohet ose lexohet ndryshe nga një version tjetër i klientit. Skedari në disk nuk është provë e lidhjes që u ekzekutua. Semantika e direktivave është në manualin e OpenVPN 2.6.

Artikuj të ngjashëm