Uporedite dva OpenVPN profila bez odavanja ključeva
Tekstualni diff može otkriti ugrađene ključeve jednako lako kao što pokaže izmijenjenu direktivu. Upoređujte po ulozi na zaštićenim kopijama, pa napravite odvojen redigovan dijagnostički fajl.
Dva profila, jedan se povezuje a drugi ne, a brz način da vidite zašto je diff. Problem je što isti diff ispiše ugrađeni privatni ključ, statički ključ i svaki blok akreditiva koji fajl nosi, a ljudi zalijepe izlaz u chat prije nego što primijete. Odluka šta poredite dolazi prije pokretanja komande. Upoređujte strukturu i uloge na zaštićenim kopijama, a kada neko drugi treba da vidi, napravite odvojen redigovan fajl.
Šta .ovpn fajl zaista nosi
Fajl .ovpn je konfiguracija sa opcionalnim ugrađenim blokovima. Može sadržavati CA certifikat, klijentski certifikat, privatni ključ, ključ tls-auth ili tls-crypt, te direktive koje pokazuju na vanjske fajlove ili traže akreditive. Dva fajla mogu izgledati gotovo identično i razlikovati se samo unutar bloka, ili u jednoj direktivi koja potpuno mijenja transport. Broj linija ne govori ništa o tome šta se od toga dogodilo.
Razlika unutar bloka ključa nije javni dokaz ničega. Ponovo izdat certifikat i certifikat sa novim ključem mogu dati isti oblik promjene, pa nesklad bloka govori da je materijal drugačiji, a ne koja je odluka to izazvala. Tretirajte to kao signal da uporedite polja, ne kao nalaz.
Upoređujte po ulozi, ne po liniji
Idite vlastitim redoslijedom veze: prvo odredište i transport, zatim povjerenje i očekivani identitet, zatim autentifikacija korisnika, zatim rute, DNS i skriptne kuke. Taj slijed odgovara onome što klijent radi, pa je prva razlika na koju naiđete prva stvar koja je mogla prekinuti vezu. Abecedno poređenje umjesto toga razbacuje povezana podešavanja po cijelom izlazu.
Prolaz koji vodi računa o poljima gleda ove stavke tim redom. Sve što klijent traži interaktivno pripada redu autentifikacije, a ne redovima povjerenja.
remote,protoi port, uključujući svaki blok veze.caicert: izdavač, subjekt i datum isteka.- Da li je privatni ključ uopšte prisutan, nikada šta sadrži.
tls-authilitls-cryptprisustvo i smjer ključa.- Direktive autentifikacije, uključujući svaku referencu na fajl akreditiva.
- Rute, DNS opcije i skriptne kuke koje se pokreću pri povezivanju.
Kada fajl sadrži nekoliko blokova veze, držite svaku opciju uz njeno odredište. Poređenje samo prve remote linije može propustiti alternativu koju klijent zaista bira na ovoj mreži.
Zašto je obični diff pogrešan alat
Obični diff je napravljen za tekst, ne za tajne. Rado će ispisati privatni ključ u historiju ekrana i neće vam reći da direktiva u koju gledate nema veze s kvarom. Izdvajanje polja je istovremeno sigurnije i čitljivije, jer se materijal certifikata može porediti kao metapodaci, a ne kao bajtovi.
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
Prve dvije komande ispisuju identitet i valjanost bez dodirivanja ključa, pa je njihov izlaz siguran za lijepljenje. grep ispisuje nazive direktiva i vrijednosti, ali nikada tijela blokova, što ga čini pravim prvim prolazom kada sumnjate na razliku u transportu ili rutiranju. Ako se sam blok mora uporediti, uporedite njegov heš, a ne sadržaj.
Napravite redigovanu kopiju za tiket
Uklonite prave tajne i nepotrebne identifikatore, a zadržite nazive polja i dovoljno strukture da objasnite razliku. Marker istog oblika ipak otkriva gdje materijal stoji i koliko je bio dugačak, pa odlučite da li je i to prihvatljivo. Provjerite sam konačni prilog, umjesto da vjerujete komandi koju se sjećate da ste pokrenuli. Ne uređujte radni original samo da biste napravili primjer, jer redigovan profil nije nužno izvršan i nikada se ne smije ponovo uvesti.
Držite originale prepoznatljive po imenu fajla i hešu, umjesto da ih kopirate u tri direktorija sa sličnim imenima. Heš string je dovoljan da dokaže koji je fajl pregledan i ništa ne košta ako iscuri. Obrežite kopije nakon što se promjena zatvori, da sljedeća osoba naslijedi jedan autoritativan fajl.
Držite poređenje vezano za kvar
Poređenje zaslužuje svoju cijenu kada odgovori na pitanje o jednom uvozu ili jednom kvaru veze. Prvo imenujte korak koji pada, pa poredite samo polja od kojih taj korak zavisi; sakupljanje svih akreditiva koje klijent ima u jedan direktorij čini sljedeće curenje vjerovatnijim, a sljedeću dijagnozu sporijom. Što je pitanje uže, to je lista polja koja mogu odgovoriti kraća.
Ako je novi fajl došao od operatera, potvrdite put distribucije prije nego zamijenite materijal povjerenja. Nakon promjene pregledajte uvezenu kopiju koju je klijent zaista odabrao i dogovoreni rezultat, jer direktiva može biti ignorisana ili drugačije pročitana od strane druge verzije klijenta. Fajl na disku nije dokaz veze koja je tekla. Semantika direktiva je u OpenVPN 2.6 priručniku.