Który program posiada ten config.json w twojej instalacji OpenVPN?
Plik o nazwie config.json może należeć do GUI, demona lub formatu eksportu, a nie do OpenVPN. Znajdź parser, zanim zaczniesz edytować lub podmieniać klucze.
Znajdujesz plik o nazwie config.json, jest w nim mowa o serwerze VPN, i od razu pojawia się założenie: to musi być połączenie OpenVPN. Często tak nie jest. Plik JSON o tej nazwie może należeć do interfejsu graficznego, który uruchamia klienta, do demona przechowującego własne ustawienia albo do formatu eksportu produktu, a każdy z nich ma własny schemat.
Nazwa pliku to najmniej przydatna wskazówka. Zacznij od procesu, który czyta plik, potem sprawdź, czy oczekiwany format to w ogóle JSON, i dopiero wtedy zdecyduj, czy edycja pliku jest obsługiwanym sposobem zmiany czegokolwiek.
Zacznij od procesu, nie od nazwy pliku
Zobacz, co faktycznie działa. Jednostka usługi, skrypt uruchamiający lub aplikacja w zasobniku systemowym wskażą plik binarny, który uruchamiają, a często także ścieżkę konfiguracji, którą przekazują. Katalog, w którym leży plik, to druga wskazówka: katalogi danych aplikacji, katalogi konfiguracji usług i katalogi profili użytkowników wskazują różnych właścicieli.
Następnie przeczytaj dokumentację produktu, do którego należy ten komponent. Jeśli JSON należy do nakładki, jego klucze są kluczami nakładki, a wyglądający wiarygodnie obiekt zbudowany z przykładu innego produktu zostanie odrzucony lub po cichu zignorowany.
Dwa pliki o tej samej nazwie w różnych katalogach to częsta pułapka. Jeden może być wygenerowanym stanem, który usługa przepisuje przy każdym starcie, a drugi szablonem, który ma edytować człowiek. Zmiana niewłaściwego daje poprawkę, która przetrwa do następnego restartu.
Czym naprawdę jest profil Community OpenVPN
Community OpenVPN 2.6 czyta tekstowy format oparty na opcjach. Profil to sekwencja dyrektyw: wiersz trybu klienta, wiersz urządzenia, zdalny punkt końcowy oraz opcje tożsamości, szyfrowania i tras, a może osadzać materiał certyfikatu i klucza w blokach wbudowanych.
Ten format jest analizowany wiersz po wierszu przez samego klienta. Przekazanie mu dokumentu JSON przez opcję config nie włącza parsera JSON; pierwszy wiersz zostanie odrzucony jako nieznana dyrektywa. Zmiana nazwy pliku JSON tak, by kończył się na .ovpn, też nie konwertuje jego zawartości, a poprawny plik opcji nie staje się niepoprawny dlatego, że jego rozszerzenie jest nietypowe.
OpenVPN Connect i OpenVPN 3 Linux mają własne ścieżki importu i zarządzania profilami. Te produkty mogą przyjąć profil i zapisać go we własnej bazie danych lub stanie usługi, co nie jest tym samym co plik JSON, który przypadkiem opisuje serwer.
Edytowanie stanu należącego do innego komponentu
Jeśli JSON jest generowany, jego edycja to wyścig. Działająca usługa może go zapisać ponownie przy wyłączaniu, przy ponownym połączeniu lub przy następnej zmianie ustawień, a ręczna zmiana znika bez błędu. Preferuj polecenie importu produktu, API zarządzania lub interfejs ustawień, bo te ścieżki aktualizują stan wewnętrzny, który reprezentuje plik. Plik, który po restarcie wraca do poprzedniej postaci, mówi ci, która ścieżka była trwała.
Jeśli mimo to edytujesz wygenerowany plik, najpierw zatrzymaj usługę, zrób kopię zapasową i wprowadź najmniejszą możliwą zmianę. Potem sprawdź, czy usługa nie przepisuje pliku przy starcie, bo plik, który wraca przy starcie, oznacza, że prawdziwe źródło prawdy jest gdzie indziej i zmiana nigdy by się nie utrzymała.
Hasła i osadzone klucze prywatne to osobna sprawa. JSON może nieść kompletny klucz równie łatwo jak plik opcji, więc każdy eksport traktuj jako tajemnicę, trzymaj go poza dyskami współdzielonymi i zamazuj wartości, zanim wkleisz strukturę do pytania na forum.
Weryfikacja zmiany i ochrona pliku
Weryfikacja to nie „JSON się parsuje”. Parsowanie dowodzi tylko, że nawiasy pasują; nic nie mówi o tym, czy właściciel rozpoznaje klucze. Sprawdź własny stan produktu: listę aktywnych profili, wybrane połączenie i ponowne połączenie, które naprawdę używa nowych wartości. Profil, który pojawia się na liście, ale nigdy nie staje się wybranym, nadal nie jest profilem w użyciu.
Obserwuj dziennik komponentu, który edytowałeś, nie tylko dziennik klienta VPN. Nakładka, która odrzuca twój plik, zwykle zgłasza to we własnym dzienniku, a klient, który nigdy nie otrzymał pliku, wygląda identycznie jak klient, który otrzymał złe ustawienia.
Zachowaj kopię działającego pliku i zapisz wersję produktu, na której testowałeś. Te formaty zmieniają się między wydaniami, a struktura, która działała rok temu, może zostać odrzucona po aktualizacji z komunikatem, który w ogóle nie wspomina schematu.
Podsumowanie przejścia: zidentyfikuj proces, przeczytaj jego dokumentację, potwierdź, czy plik jest w ogóle JSON, użyj obsługiwanej ścieżki edycji i zweryfikuj przez własny stan produktu. Nazwa pliku nigdy nie odpowiedziała na żadne z tych pytań.