Salīdziniet divus OpenVPN profilus, neizpaužot atslēgas
Teksta diff var atklāt iegultās atslēgas tikpat viegli, kā parāda mainītu direktīvu. Salīdziniet pēc lomas aizsargātās kopijās, pēc tam izveidojiet atsevišķu rediģētu diagnostikas failu.
Divi profili, viens savienojas, otrs nē, un ātrākais veids, kā redzēt kāpēc, ir diff. Problēma ir tā, ka tas pats diff izdrukā iegulto privāto atslēgu, statisko atslēgu un jebkuru akreditācijas datu bloku, ko fails nes, un cilvēki ielīmē izvadi tērzēšanā, pirms to pamana. Izlemt, ko jūs salīdzināt, nāk pirms komandas palaišanas. Salīdziniet struktūru un lomas aizsargātās kopijās, un, kad kādam citam tas jāredz, izveidojiet atsevišķu rediģētu failu.
Ko .ovpn fails patiešām nes
Fails .ovpn ir konfigurācija ar neobligātiem iegultiem blokiem. Tajā var būt CA sertifikāts, klienta sertifikāts, privātā atslēga, tls-auth vai tls-crypt atslēga, un direktīvas, kas norāda uz ārējiem failiem vai pieprasa akreditācijas datus. Divi faili var izskatīties gandrīz identiski un atšķirties tikai bloka iekšienē, vai vienā direktīvā, kas pilnībā maina transportu. Rindu skaits neko nepasaka par to, kurš no šiem notika.
Atšķirība atslēgas bloka iekšienē nav publisks pierādījums nekam. Atkārtoti izdots sertifikāts un sertifikāts ar jaunu atslēgu var radīt tādu pašu izmaiņu formu, tāpēc bloka neatbilstība saka, ka materiāls ir atšķirīgs, nevis kāds lēmums to radīja. Uztveriet to kā signālu salīdzināt laukus, nevis kā atradumu.
Salīdziniet pēc lomas, nevis pēc rindas
Sekojiet paša savienojuma secībai: vispirms galapunkts un transports, tad uzticēšanās un gaidītā identitāte, tad lietotāja autentifikācija, tad maršruti, DNS un skriptu āķi. Šī secība atbilst tam, ko dara klients, tāpēc pirmā atšķirība, ko sastopat, ir pirmā lieta, kas varēja pārtraukt savienojumu. Salīdzināšana alfabēta kārtībā tā vietā izkaisa saistītos iestatījumus pa visu izvadi.
Uz laukiem vērsta pārbaude aplūko šos elementus šajā secībā. Viss, ko klients jautā interaktīvi, pieder autentifikācijas rindai, nevis uzticēšanās rindām.
remote,protoun ports, ieskaitot katru savienojuma bloku.cauncert: izdevējs, temats un derīguma termiņa beigas.- Vai privātā atslēga vispār ir, nekad ne tas, ko tā satur.
tls-authvaitls-cryptklātbūtne un atslēgas virziens.- Autentifikācijas direktīvas, ieskaitot jebkuru atsauci uz akreditācijas datu failu.
- Maršruti, DNS opcijas un skriptu āķi, kas darbojas savienojuma laikā.
Kad failā ir vairāki savienojuma bloki, turiet katru opciju pie tās galapunkta. Salīdzinot tikai pirmo remote rindu, var palaist garām alternatīvu, ko klients šajā tīklā faktiski izvēlas.
Kāpēc vienkāršs diff ir nepareizais rīks
Vienkāršs diff ir būvēts tekstam, nevis noslēpumiem. Tas labprāt izdrukās privāto atslēgu ekrāna vēsturē un nepateiks, ka direktīva, uz kuru jūs skatāties, nav saistīta ar kļūmi. Lauku izguve ir gan drošāka, gan lasāmāka, jo sertifikāta materiālu var salīdzināt kā metadatus, nevis 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
Pirmās divas komandas izdrukā identitāti un derīgumu, neaizskarot atslēgu, tāpēc to izvadi ir droši ielīmēt. grep izdrukā direktīvu nosaukumus un vērtības, bet nekad bloku saturu, kas to padara par pareizo pirmo pārbaudi, ja jums ir aizdomas par transporta vai maršrutēšanas atšķirību. Ja jāsalīdzina pats bloks, salīdziniet tā jaucējkodu, nevis saturu.
Izveidojiet rediģētu kopiju biļetei
Noņemiet īstos noslēpumus un nevajadzīgos identifikatorus, vienlaikus saglabājot lauku nosaukumus un pietiekamu struktūru, lai izskaidrotu atšķirību. Tādas pašas formas marķieris joprojām atklāj, kur materiāls atrodas un cik tas bija garš, tāpēc izlemiet, vai pat tas ir pieņemami. Pārbaudiet pašu galīgo pielikumu, nevis paļaujieties uz komandu, kuru atceraties palaidis. Nerediģējiet darba oriģinālu tikai tāpēc, lai izveidotu piemēru, jo rediģēts profils ne vienmēr ir izpildāms un to nekad nevajadzētu importēt atkārtoti.
Turiet oriģinālus atpazīstamus pēc faila nosaukuma un jaucējkoda, nevis kopējiet tos trīs mapēs ar līdzīgiem nosaukumiem. Jaucējkoda virkne ir pietiekama, lai pierādītu, kurš fails tika pārbaudīts, un neko nemaksā, ja tā noplūst. Aprobežojiet kopijas pēc izmaiņu slēgšanas, lai nākamais cilvēks manto vienu autoritatīvu failu.
Turiet salīdzinājumu piesaistītu kļūmei
Salīdzinājums ir savas izmaksas vērts, kad tas atbild uz jautājumu par vienu importu vai vienu savienojuma kļūmi. Vispirms nosauciet neizdevušos soli, pēc tam salīdziniet tikai tos laukus, no kuriem šis solis ir atkarīgs; visu klienta akreditācijas datu savākšana vienā mapē padara nākamo noplūdi ticamāku un nākamo diagnostiku lēnāku. Jo šaurāks jautājums, jo īsāks to lauku saraksts, kas var uz to atbildēt.
Ja jauns fails nāca no operatora, apstipriniet tā izplatīšanas ceļu pirms uzticēšanās materiāla nomaiņas. Pēc izmaiņām pārbaudiet importēto kopiju, kuru klients faktiski izvēlējās, un sarunāto rezultātu, jo direktīvu cita klienta versija var ignorēt vai lasīt citādi. Fails diskā nav pierādījums par savienojumu, kas notika. Direktīvu semantika ir OpenVPN 2.6 rokasgrāmatā.