Вы знаходзіце файл з назвай config.json, у ім згадваецца VPN-сервер, і адразу ўзнікае здагадка: гэта павінна быць злучэнне OpenVPN. Часта гэта не так. JSON-файл з такой назвай можа належаць настольнаму інтэрфейсу, які запускае кліент, дэману, які захоўвае ўласныя налады, або фармату экспарту прадукту, і кожны з іх мае ўласную схему.

Назва файла — найменш карысная падказка. Пачніце з працэсу, які чытае файл, затым праверце, ці фармат, якога ён чакае, наогул JSON, і толькі пасля гэтага вырашайце, ці рэдагаванне файла — гэта падтрыманы спосаб нешта змяніць.

Пачніце з працэсу, а не з назвы файла

Паглядзіце, што насамрэч працуе. Сэрвісны модуль, скрыпт запуску або праграма ў латку назвуць бінарны файл, які яны запускаюць, і часта шлях да канфігурацыі, які яны перадаюць. Каталог, у якім знаходзіцца файл, — другая падказка: каталогі даных праграм, каталогі канфігурацыі сэрвісаў і каталогі профіляў карыстальнікаў указваюць на розных уладальнікаў.

Затым прачытайце дакументацыю прадукту, якому належыць гэты кампанент. Калі JSON належыць абгортцы, яго ключы — гэта ключы абгорткі, і праўдападобны аб’ект, пабудаваны па прыкладзе іншага прадукту, будзе адхілены або моўчкі праігнараваны.

Два файлы з адной назвай у розных каталогах — распаўсюджаная пастка. Адзін можа быць згенераваным станам, які сэрвіс перазапісвае пры кожным запуску, а другі — шаблонам, які павінен рэдагаваць чалавек. Змяненне не таго файла дае выпраўленне, якое трымаецца да наступнага перазапуску.

Што насамрэч уяўляе сабой профіль Community OpenVPN

Community OpenVPN 2.6 чытае тэкставы фармат на аснове опцый. Профіль — гэта паслядоўнасць дырэктыў: радок рэжыму кліента, радок прылады, выдалены канчатковы пункт, а таксама опцыі ідэнтычнасці, шыфра і маршрутаў, і ён можа ўбудоўваць матэрыял сертыфіката і ключа ўнутры ўбудаваных блокаў.

Гэты фармат аналізуецца радок за радком самім кліентам. Перадача яму JSON-дакумента праз опцыю config не ўключае JSON-парсер; першы радок будзе адхілены як невядомая дырэктыва. Перайменаванне JSON-файла, каб ён сканчаўся на .ovpn, таксама не пераўтварае яго змест, а слушны файл опцый не становіцца няслушным праз незвычайнае пашырэнне.

OpenVPN Connect і OpenVPN 3 Linux маюць уласныя шляхі імпарту і кіравання профілямі. Гэтыя прадукты могуць прыняць профіль і захаваць яго ў сваёй базе даных або стане сэрвісу, што не тое ж самае, як JSON-файл, які выпадкова апісвае сервер.

Рэдагаванне стану, якім валодае іншы кампанент

Калі JSON згенераваны, яго рэдагаванне — гэта гонка. Працуючы сэрвіс можа запісаць яго назад пры выключэнні, пры паўторным падключэнні або пры наступнай змене налад, і ручная правака знікае без памылкі. Аддавайце перавагу камандзе імпарту прадукту, API кіравання або інтэрфейсу налад, бо гэтыя шляхі абнаўляюць той унутраны стан, які ўяўляе файл. Файл, які вяртаецца пасля перазапуску, кажа вам, які шлях быў надзейным.

Калі вы ўсё ж рэдагуеце згенераваны файл, спачатку спыніце сэрвіс, зрабіце рэзервовую копію і ўнясіце як мага меншае змяненне. Затым праверце, ці сэрвіс перазапісвае файл пры запуску, бо файл, які вяртаецца пры запуску, азначае, што сапраўдная крыніца ісціны знаходзіцца ў іншым месцы, і правака ніколі б не захавалася.

Паролі і ўбудаваныя прыватныя ключы — асобная справа. JSON можа несці поўны ключ гэтак жа лёгка, як файл опцый, таму стаўцеся да любога экспарту як да сакрэту, трымайце яго па-за агульнымі дыскамі і вымайце значэнні перад устаўкай структуры ў пытанне на форуме.

Праверка змянення і абарона файла

Праверка — гэта не “JSON аналізуецца”. Аналіз даказвае толькі тое, што дужкі супадаюць; ён нічога не кажа пра тое, ці ўладальнік пазнае ключы. Праверце ўласны стан прадукту: спіс актыўных профіляў, выбранае злучэнне і паўторнае падключэнне, якое сапраўды выкарыстоўвае новыя значэнні. Профіль, які з’яўляецца ў спісе, але ніколі не становіцца выбраным, па-ранейшаму не ўяўляе профіль, які выкарыстоўваецца.

Сачыце за журналам кампанента, які вы рэдагавалі, а не толькі за журналам VPN-кліента. Абгортка, якая адхіляе ваш файл, звычайна паведамляе пра гэта ў сваім журнале, а кліент, які ніколі не атрымаў файл, выглядае гэтак жа, як кліент, які атрымаў дрэнныя налады.

Захавайце копію працоўнага файла і запішыце версію прадукту, на якой вы правяралі. Гэтыя фарматы змяняюцца паміж выпускамі, і структура, якая працавала летась, можа быць адхілена пасля абнаўлення з паведамленнем, якое наогул не згадвае схему.

Рэзюмэ праходжання: вызначце працэс, прачытайце яго дакументацыю, пацвердзіце, ці файл наогул JSON, выкарыстайце падтрыманы шлях рэдагавання і праверце праз уласны стан прадукту. Назва файла ніколі не адказала ні на адно з гэтых пытанняў.

Падобныя артыкулы