Kompari du OpenVPN-profilojn sen malkaŝi ŝlosilojn
Teksta diff povas malkaŝi enkonstruitajn ŝlosilojn same facile kiel ĝi montras ŝanĝitan direktivon. Komparu laŭ rolo sur protektitaj kopioj, poste kreu apartan redaktitan diagnozan dosieron.
Du profiloj, unu konektiĝas kaj la alia ne, kaj la rapida maniero vidi kial estas diff. La problemo estas, ke la sama diff presas la enkonstruitan privatan ŝlosilon, la statikan ŝlosilon kaj ajnan blokon de akreditaĵoj, kiun la dosiero portas, kaj homoj algluas la eligon en babilon antaŭ ol rimarki. Decidi, kion vi komparas, venas antaŭ ol ruli la komandon. Komparu strukturon kaj rolojn sur protektitaj kopioj, kaj konstruu apartan redaktitan dosieron kiam iu alia bezonas vidi ĝin.
Kion .ovpn-dosiero efektive portas
Dosiero .ovpn estas agordo kun laŭvolaj enkonstruitaj blokoj. Ĝi povas teni CA-atestilon, klientan atestilon, privatan ŝlosilon, ŝlosilon tls-auth aŭ tls-crypt, kaj direktivojn kiuj montras al eksteraj dosieroj aŭ petas akreditaĵojn. Du dosieroj povas aspekti preskaŭ identaj kaj diferenci nur ene de bloko, aŭ en unu direktivo kiu tute ŝanĝas la transporton. La nombro de linioj diras al vi nenion pri tio, kiu el tiuj okazis.
Diferenco ene de ŝlosilbloko ne estas publika pruvo pri io ajn. Reeldonita atestilo kaj atestilo kun nova ŝlosilo povas produkti la saman formon de ŝanĝo, do la malkongruo de la bloko diras, ke la materialo estas malsama, ne kiu decido ĝin kreis. Traktu ĝin kiel signalon kompari kampojn, ne kiel konstaton.
Komparu laŭ rolo, ne laŭ linio
Sekvu la propran ordon de la konekto: unue finpunkto kaj transporto, poste fido kaj atendata identeco, poste uzantaŭtentikigo, poste itineroj, DNS kaj skriptaj hokoj. Tiu sinsekvo kongruas kun tio, kion la kliento faras, do la unua diferenco, kiun vi renkontas, estas la unua afero, kiu povus esti rompinta la konekton. Kompari alfabete anstataŭe disŝutas rilatajn agordojn tra la tuta eligo.
Kampkonscia trairo rigardas ĉi tiujn erojn, en tiu ordo. Ĉio, kion la kliento petas interage, apartenas al la aŭtentikiga vico, ne al la fidaj vicoj.
remote,protokaj pordo, inkluzive de ĉiu konekta bloko.cakajcert: eldoninto, subjekto kaj findato.- Ĉu privata ŝlosilo entute ĉeestas, neniam kion ĝi enhavas.
tls-authaŭtls-crypt-ĉeesto kaj ŝlosila direkto.- Aŭtentikigaj direktivoj, inkluzive de ajna referenco al akreditaĵa dosiero.
- Itineroj, DNS-opcioj kaj skriptaj hokoj kiuj ruliĝas ĉe konekto.
Kiam dosiero tenas plurajn konektajn blokojn, tenu ĉiun opcion kun ĝia finpunkto. Kompari nur la unuan remote-linion povas maltrafi la alternativon, kiun la kliento efektive elektas en ĉi tiu reto.
Kial ordinara diff estas la malĝusta ilo
Ordinara diff estas konstruita por teksto, ne por sekretoj. Ĝi volonte presos privatan ŝlosilon en la rulumhistorion, kaj ĝi ne diros al vi, ke la direktivo, kiun vi fiksas, estas nerelevanta al la fiasko. Kampelektadoj estas samtempe pli sekuraj kaj pli legeblaj, ĉar atestila materialo povas esti komparata kiel metadatenoj anstataŭ bajtoj.
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
La unuaj du komandoj presas identecon kaj validecon sen tuŝi la ŝlosilon, do ilia eligo estas sekura por alglui. grep presas direktivnomojn kaj valorojn sed neniam la korpojn de blokoj, kio faras ĝin la ĝusta unua trairo kiam vi suspektas transportan aŭ itineran diferencon. Se la bloko mem devas esti komparata, komparu ĝian haŝon anstataŭ la enhavon.
Konstruu redaktitan kopion por la bileto
Forigu verajn sekretojn kaj nebezonatajn identigilojn dum vi konservas kampnomojn kaj sufiĉan strukturon por klarigi la diferencon. Markilo de la sama formo ankoraŭ malkaŝas, kie la materialo sidas kaj kiom longa ĝi estis, do decidu, ĉu eĉ tio estas akceptebla. Kontrolu la finan aldonaĵon mem anstataŭ fidi la komandon, kiun vi memoras esti rulinta. Ne redaktu la laboran originalon nur por produkti ekzemplon, ĉar redaktita profilo ne nepre estas plenumebla kaj neniam reimportendas.
Tenu la originalojn identigeblaj per dosiernomo kaj haŝo anstataŭ kopii ilin en tri dosierujojn kun similaj nomoj. Haŝa signoĉeno sufiĉas por pruvi, kiun dosieron oni reviziis, kaj kostas nenion se ĝi likas. Tondi la kopiojn post kiam la ŝanĝo fermiĝas, por ke la sekva homo heredu unu aŭtoritatan dosieron.
Tenu la komparon ligita al fiasko
Komparo meritumas sian koston kiam ĝi respondas demandon pri unu importo aŭ unu konekta fiasko. Unue nomu la fiaskantan paŝon, poste komparu nur la kampojn, de kiuj tiu paŝo dependas; kolekti ĉiujn akreditaĵojn de la kliento en unu dosierujon igas la sekvan likadon pli verŝajna kaj la sekvan diagnozon pli malrapida. Ju pli mallarĝa la demando, des pli mallonga la listo de kampoj, kiuj povas respondi ĝin.
Se nova dosiero venis de la operatoro, konfirmu ĝian distribuan vojon antaŭ ol anstataŭigi fidan materialon. Post la ŝanĝo, inspektu la importitan kopion, kiun la kliento efektive elektis, kaj la intertraktitan rezulton, ĉar direktivo povas esti ignorita aŭ alie legita de alia klienta versio. La dosiero sur la disko ne estas pruvo de la konekto, kiu ruliĝis. La semantiko de la direktivoj troviĝas en la OpenVPN 2.6-manlibro.