Du finder en fil med navnet config.json, den nævner en VPN-server, og antagelsen følger med det samme: dette må være OpenVPN-forbindelsen. Ofte er det ikke tilfældet. En JSON-fil med det navn kan tilhøre en skrivebordsfrontend, der starter klienten, en daemon, der gemmer sine egne indstillinger, eller et produkts eksportformat, og hver af dem har sit eget skema.

Filnavnet er det mindst nyttige spor. Start med den proces, der læser filen, og undersøg derefter, om det format, den forventer, overhovedet er JSON, og beslut først derefter, om redigering af filen er den understøttede måde at ændre noget på.

Start med processen, ikke filnavnet

Se på, hvad der faktisk kører. En serviceunit, et startscript eller et tray-program angiver den binære fil, den starter, og ofte den konfigurationssti, den sender med. Mappen, der indeholder filen, er et andet spor: programdatamapper, servicekonfigurationsmapper og brugerprofilmapper peger på forskellige ejere.

Læs derefter dokumentationen for det produkt, der ejer den komponent. Hvis JSON-filen tilhører en wrapper, er dens nøgler wrapperens nøgler, og et plausibelt udseende objekt bygget efter et andet produkts eksempel vil blive afvist eller stiltiende ignoreret.

To filer med samme navn i forskellige mapper er en almindelig fælde. Den ene kan være genereret tilstand, som tjenesten skriver igen ved hver start, og den anden kan være den skabelon, et menneske skal redigere. At ændre den forkerte giver en rettelse, der holder indtil næste genstart.

Hvad en Community OpenVPN-profil egentlig er

Community OpenVPN 2.6 læser et tekstformat baseret på indstillinger. En profil er en række direktiver: en klienttilstand-linje, en enhedslinje, et eksternt endepunkt samt identitets-, krypterings- og ruteindstillinger, og den kan indlejre certifikat- og nøglemateriale i inline-blokke.

Det format parses linje for linje af klienten selv. At give den et JSON-dokument gennem config-indstillingen slår ikke en JSON-parser til; den første linje vil blive afvist som et ukendt direktiv. At omdøbe en JSON-fil, så den slutter på .ovpn, konverterer heller ikke indholdet, og en gyldig indstillingsfil bliver ikke ugyldig, fordi dens filendelse er usædvanlig.

OpenVPN Connect og OpenVPN 3 Linux har deres egne import- og administrationsveje til profiler. Disse produkter kan acceptere en profil og gemme den i deres egen database eller servicetilstand, hvilket ikke er det samme som en JSON-fil, der tilfældigvis beskriver en server.

Redigering af tilstand, som en anden komponent ejer

Hvis JSON-filen er genereret, er redigering af den et kapløb. En kørende tjeneste kan skrive den tilbage ved nedlukning, ved genopkobling eller ved den næste ændring af indstillinger, og en manuel redigering forsvinder uden fejl. Foretræk produktets importkommando, administrations-API eller indstillingsgrænseflade, fordi disse veje opdaterer den interne tilstand, som filen repræsenterer. En fil, der vender tilbage efter en genstart, fortæller dig, hvilken vej der var den holdbare.

Hvis du alligevel redigerer en genereret fil, skal du først stoppe tjenesten, tage en sikkerhedskopi og foretage den mindst mulige ændring. Undersøg derefter, om tjenesten skriver filen igen ved start, for en fil, der vender tilbage ved start, betyder, at den egentlige sandhedskilde er et andet sted, og at ændringen aldrig ville holde.

Adgangskoder og inline private nøgler er en særskilt sag. JSON kan bære en komplet nøgle lige så let som en indstillingsfil, så behandl enhver eksport som hemmelig, hold den væk fra delte drev, og slør værdierne, før du indsætter struktur i et forumspørgsmål.

Verifikation af ændringen og beskyttelse af filen

Verifikation er ikke “JSON parses”. Parsing beviser kun, at klammeparenteserne passer; det siger intet om, hvorvidt ejeren genkender nøglerne. Kontroller produktets egen tilstand: listen over aktive profiler, den valgte forbindelse og en genopkobling, der faktisk bruger de nye værdier. En profil, der optræder på listen, men aldrig bliver den valgte, er stadig ikke den profil, der er i brug.

Hold øje med loggen for den komponent, du redigerede, ikke kun VPN-klientens log. En wrapper, der afviser din fil, rapporterer det normalt i sin egen log, og en klient, der aldrig modtog filen, ser identisk ud med en klient, der modtog dårlige indstillinger.

Gem en kopi af den fungerende fil, og noter den version af produktet, du testede mod. Disse formater ændrer sig mellem udgivelser, og en struktur, der virkede sidste år, kan blive afvist efter en opgradering med en meddelelse, der slet ikke nævner skemaet.

Opsummering af gennemgangen: identificér processen, læs dens dokumentation, bekræft, om filen overhovedet er JSON, brug den understøttede redigeringsvej, og verificér gennem produktets egen tilstand. Filnavnet besvarede aldrig noget af det.

Relaterede artikler