Palyginkite du OpenVPN profilius neatskleisdami raktų
Tekstinis diff gali atskleisti įterptus raktus taip pat lengvai, kaip parodo pakeistą direktyvą. Palyginkite pagal vaidmenį apsaugotose kopijose, tada sukurkite atskirą redaguotą diagnostikos failą.
Du profiliai, vienas prisijungia, kitas ne, o greitas būdas pamatyti kodėl yra diff. Bėda ta, kad tas pats diff išspausdina įterptą privatų raktą, statinį raktą ir bet kurį kredencialų bloką, kurį neša failas, o žmonės įklijuoja išvestį į pokalbį prieš tai pastebėdami. Nuspręsti, ką lyginate, reikia prieš paleidžiant komandą. Palyginkite struktūrą ir vaidmenis apsaugotose kopijose, o kai kitam reikia pamatyti, sukurkite atskirą redaguotą failą.
Ką iš tikrųjų neša .ovpn failas
Failas .ovpn yra konfigūracija su pasirenkamais įterptais blokais. Jame gali būti CA sertifikatas, kliento sertifikatas, privatus raktas, tls-auth arba tls-crypt raktas, ir direktyvos, kurios nurodo išorinius failus arba prašo kredencialų. Du failai gali atrodyti beveik identiški ir skirtis tik bloko viduje, arba viena direktyva, kuri visiškai pakeičia transportą. Eilučių skaičius nieko nesako apie tai, kuris iš jų įvyko.
Skirtumas rakto bloko viduje nėra viešas jokių dalykų įrodymas. Perleistas sertifikatas ir sertifikatas su nauju raktu gali duoti tą pačią pokyčio formą, todėl bloko nesutapimas sako, kad medžiaga skiriasi, o ne koks sprendimas ją sukėlė. Traktuokite tai kaip signalą lyginti laukus, ne kaip išvadą.
Lyginkite pagal vaidmenį, ne pagal eilutę
Laikykitės pačios jungties tvarkos: pirmiausia galinis taškas ir transportas, tada pasitikėjimas ir laukiama tapatybė, tada naudotojo autentifikavimas, tada maršrutai, DNS ir scenarijų kabliukai. Ši seka atitinka tai, ką daro klientas, todėl pirmas skirtumas, kurį sutiksite, yra pirmas dalykas, galėjęs nutraukti jungtį. Lyginimas pagal abėcėlę vietoj to išbarsto susijusius nustatymus po visą išvestį.
Laukus suprantantis praėjimas žiūri šiuos elementus ta tvarka. Viskas, ko klientas klausia interaktyviai, priklauso autentifikavimo eilutei, o ne pasitikėjimo eilutėms.
remote,protoir prievadas, įskaitant kiekvieną jungties bloką.caircert: išdavėjas, subjektas ir galiojimo pabaigos data.- Ar privatus raktas apskritai yra, niekada ne tai, ką jis turi.
tls-autharbatls-cryptbuvimas ir rakto kryptis.- Autentifikavimo direktyvos, įskaitant bet kokią nuorodą į kredencialų failą.
- Maršrutai, DNS parinktys ir scenarijų kabliukai, vykdomi jungiantis.
Kai faile yra keli jungties blokai, laikykite kiekvieną parinktį su jos galiniu tašku. Lyginti tik pirmą remote eilutę gali praleisti alternatyvą, kurią klientas iš tikrųjų pasirenka šiame tinkle.
Kodėl paprastas diff yra netinkamas įrankis
Paprastas diff sukurtas tekstui, ne paslaptims. Jis mielai išspausdins privatų raktą į ekrano istoriją ir nepasakys, kad direktyva, į kurią žiūrite, nesusijusi su gedimu. Laukų ištraukimas yra ir saugesnis, ir lengviau skaitomas, nes sertifikato medžiagą galima lyginti kaip metaduomenis, o ne baitus.
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
Pirmosios dvi komandos spausdina tapatybę ir galiojimą neliesdamos rakto, todėl jų išvestį saugu įklijuoti. grep spausdina direktyvų pavadinimus ir reikšmes, bet niekada blokų turinio, todėl tai tinkamas pirmas praėjimas, kai įtariate transporto ar maršrutizavimo skirtumą. Jei reikia palyginti patį bloką, lyginkite jo maišos kodą, o ne turinį.
Sukurkite redaguotą kopiją bilietui
Pašalinkite tikras paslaptis ir nereikalingus identifikatorius, išlaikydami laukų pavadinimus ir pakankamai struktūros skirtumui paaiškinti. Tos pačios formos žymeklis vis tiek atskleidžia, kur medžiaga yra ir kokia buvo ilga, todėl nuspręskite, ar net tai priimtina. Patikrinkite patį galutinį priedą, o ne pasitikėkite komanda, kurią prisimenate paleidę. Neredaguokite darbinio originalo vien tam, kad sukurtumėte pavyzdį, nes redaguotas profilis nebūtinai vykdomas ir niekada neturi būti importuojamas iš naujo.
Išlaikykite originalus atpažįstamus pagal failo pavadinimą ir maišą, o ne kopijuokite juos į tris panašiai pavadintus katalogus. Maišos eilutė pakanka įrodyti, kuris failas buvo peržiūrėtas, ir nieko nekainuoja, jei ji nuteka. Apkarpykite kopijas, kai pakeitimas uždaromas, kad kitas žmogus paveldėtų vieną patikimą failą.
Laikykite palyginimą susietą su gedimu
Palyginimas vertas savo kainos, kai atsako į klausimą apie vieną importą ar vieną jungties gedimą. Pirmiausia įvardykite nepavykusį žingsnį, tada lyginkite tik tuos laukus, nuo kurių jis priklauso; visų kliento kredencialų surinkimas į vieną katalogą padaro kitą nutekėjimą tikėtinesnį, o kitą diagnostiką lėtesnę. Kuo siauresnis klausimas, tuo trumpesnis laukų, galinčių į jį atsakyti, sąrašas.
Jei naujas failas atėjo iš operatoriaus, patvirtinkite jo platinimo kelią prieš keisdami pasitikėjimo medžiagą. Po pakeitimo apžiūrėkite importuotą kopiją, kurią klientas iš tikrųjų pasirinko, ir suderintą rezultatą, nes direktyvą kita kliento versija gali ignoruoti arba perskaityti kitaip. Failas diske nėra įrodymas, kad jungtis įvyko. Direktyvų semantika yra OpenVPN 2.6 vadove.