Выдаленне key-method з профілю OpenVPN нічога не змяняе
Дырэктыва знікла з парсера, а не з пратаколу. Аддзяліце састарэлую опцыю ад фармату абмену ключамі, перш чым правіць профіль.
Профіль, які працаваў гадамі, раптам адмаўляецца запускацца, і паведамленне называе дырэктыву, якую ніхто не памятае дадаваць: key-method. Наступны вынік пошуку прапануе дадаць key-method 2 для сумяшчальнасці, але гэта парада з іншай эпохі. Парсер, які адхіліў радок, сучасны, і такой опцыі ў ім няма зусім. Выдаленне радка выпраўляе запуск і нічога не змяняе ў тым, як два бакі абараняюць сеанс.
Гэтая розніца паміж тым, што змяшчае профіль, і тым, што пратакол робіць насамрэч, і ёсць галоўная тэма, і яна тлумачыць некалькі іншых правак, якія людзі робяць адначасова. Яна таксама тлумачыць, чаму гэтыя праўкі звычайна прыходзяць пакетам.
Сімптом — памылка разбору, а не збой рукапаціску
Опцыі чытаюцца да таго, як будзе адпраўлены любы пакет. Профіль з невядомай дырэктывай церпіць няўдачу на гэтым этапе, таму працэс ніколі не дасягае сеткі і ніколі не выдае памылку рукапаціску. Фармулёўка звычайна называе опцыю і файл, што робіць гэты збой адным з самых простых для атрыбуцыі. Ні пакет, ні маршрут, ні міжсеткавы экран тут не задзейнічаны.
openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
Калі паведамленне называе дырэктыву, дыягназ завершаны: файл змяшчае нешта, што гэтая зборка не прымае. Калі паведамленне называе шлях да файла, праблема ў адсутным уключэнні або ключы, а гэта іншы раздзел таго ж этапу запуску.
Не варта рабіць выснову, што кліенту або серверу патрэбны старэйшы рэжым пратаколу. Збой разбору — гэта праблема слоўніка паміж вашым файлам і бінарнікам, і бінарнік у гэтым выпадку проста выкінуў слова са свайго слоўніка.
Дырэктыва і фармат перадачы — дзве розныя рэчы
Старая опцыя key-method выбірала, як фармуецца абмен ключамі TLS, а сучасны абмен — гэта шматпакетны метад, які гэтая опцыя раней запытвала. Опцыя знікла, бо больш нічога не выбірала; фармат, які яна называла, стаў адзіным. Таму выдаленне радка пакідае сеанс з тым жа фармаваннем, што і раней. Тэкставая праўка не можа змяніць гэта ні ў адзін бок.
Менавіта таму вяртанне старога бінарніка, каб «аднавіць» метад 2, — няправільны рамонт. Ён не аднаўляе нічога, акрамя старэйшага парсера са старэйшымі значэннямі па змаўчанні, і каштуе вам выпраўленняў, якія з’явіліся пасля яго. Тая ж логіка датычыцца аслаблення праверкі сертыфіката ці спісу шыфраў у надзеі, што злучэнне вернецца.
Карысная праверка — гэта версія і разабраная канфігурацыя, а не наяўнасць слова ў файле:
openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null
Што выдаляць і з якога файла
Правіце файл, які фактычна чытае запушчаны працэс, і толькі яго. У пакетаваных сістэмах гэта звычайна профіль у каталогу кліента або сервера, названым юнітам, а не копія ў вашай хатняй дырэкторыі, якую вы трымаеце для даведкі. Згенераваны профіль можа таксама перабудоўвацца з шаблона, таму змена, зробленая толькі ў разгорнутай копіі, вернецца пасля наступнага запуску забеспячэння.
Выдаліце састарэлы радок і пакіньце канчатковы пункт, сертыфікаты, палітыку шыфраў і налады кантрольнага канала ў спакоі. Гэта падтрыманыя опцыі, якія патрэбны працэсу, і яны не датычныя памылкі разбору. Калі той жа профіль змяшчае іншыя дырэктывы, якія вы не пазнаеце, праверце кожную супраць версіі, якую вы запускаеце, замест таго каб выдаляць іх групай, пакуль працэс не запусціцца.
Затым запусціце патрэбны асобнік і прачытайце яго вывад пры запуску. Чысты запуск з наяўным слухачом — гэта пацверджанне, што гэты этап скончаны; тэст кліента пасля гэтага адказвае на іншае пытанне.
Адхілены профіль і адхілены кліент выглядаюць аднолькава
Дзве няўдачы спараджаюць падобныя тэмы падтрымкі і патрабуюць розных доказаў. Сервер, які адхіляе сваю ўласную канфігурацыю, ніколі не запускаецца, таму ніводзін кліент не можа да яго падключыцца. Сервер, які запускаецца нармальна і адмаўляе аднаму кліенту, працуе, і ў яго журнале ёсць прычына: праблема з сертыфікатам, прасунутая опцыя, якую кліент не прымае, неадпаведнасць шыфра.
Выдаленая опцыя не з’яўляецца дыягназам для другога выпадку, і звяртанне да яе марнуе тую ж гадзіну двойчы. Калі журнал кліента паказвае адмову сервера, чытайце гэтую адмову; калі ён паказвае лакальную памылку, то файл для праверкі — гэта профіль кліента. Звяртанне да дырэктывы, якой больш не існуе, затрымлівае абодва расследаванні на аднолькавую велічыню.
Пытанні сумяшчальнасці, на якія радок так і не адказаў
Профілі, якія ходзяць з гэтай дырэктывай, звычайна нясуць гісторыю пра пэўную платформу, і гісторыя перажывае тэхнічную прычыну. Мабільнаму або настольнаму кліенту ўсё яшчэ патрэбны поўны падтрыманы профіль: давераны ланцуг сертыфікатаў, шыфр даных, які прымаюць абодва бакі, рэжым кантрольнага канала, які рэалізуюць абодва бакі, і адсутнасць дырэктыў, якія адхіляе зборка кліента. Нішто з гэтага не вырашаецца наяўнасцю або адсутнасцю старога радка key-method.
Сцісканне — асобнае пытанне палітыкі з той жа формай. Выдаленне радка key-method нічога не кажа пра тое, ці падтрымліваецца дырэктыва сціскання і ці прымальная яна ў вашым разгортванні, і гэтыя два рашэнні трэба прымаць незалежна. Выдаленне некалькіх бяспеказначных налад адразу, пакуль нешта не падключыцца, — гэта шлях, якім працоўны профіль робіцца непатлумачаным.
Трымайце кароткі запіс пра тое, што вы выдалілі і чаму: опцыя, версія, якая яе адхіліла, і каманда, якая паказала памылку. Наступнаму чалавеку, які атрымае профіль у спадчыну, спатрэбяцца менавіта гэтыя тры факты, і запісаць іх зараз танней, чым аднаўляць пазней.