Откази у OpenVPN 3 Linux долазе као грешка методе D-Bus са непознатим именом, а искушење је да вратите пакет на старију верзију и надате се. Клијент није један програм: сучеље командне линије разговара преко сабирнице са услугама које поседују профиле, сесије, VPN мотор и привилеговане мрежне промене. Одлука која од тих пет поседује позив који не успева је већи део дијагностике и кошта једну команду уместо враћања верзије. Оно што следи јесте та одлука, редом којим се откази обично појављују.

Пет власника иза једне команде

Пет процеса је важно и сваки има своје име на сабирници: сучеље које прихвата вашу команду, управник конфигурације који чува профиле и њихову политику приступа, управник сесија који поседује трајање сесије, позадински систем који води везу кроз OpenVPN 3 Core Engine и услуга за конфигурацију мреже која поставља сучеље, руте и DNS поставке. Грешка која именује конфигурациони објекат зато није грешка позадинског система, а позадински систем који се не покреће није отказ аутентикације. Сврставање поруке у један од тих редова мора да се догоди пре него што се било шта промени, јер сваки каснији корак зависи од тога који је ред тачан. Погађање реда је пут којим кратка исправка постаје поподне рада са пакетима.

Питајте системску сабирницу које су услуге присутне пре него што питате било шта друго, а затим потврдите да се инсталирани делови слажу око верзије. OpenVPN 3 Linux региструје те услуге као системске јединице, зато сабирница коју треба питати јесте системска, упит о верзији тражи административна овлашћења, а списак направљен са --user чита вашу сесију пријаве, где се јединице никада не појављују. Услуге се активирају на захтев и неке завршавају када мирују, зато услуга која недостаје пре вашег првог захтева једноставно још није била питана ни за шта. Три команде испод одговарају о присутности, верзији и стању јединице без отварања VPN сесије.

sudo busctl list | grep -i openvpn
sudo openvpn3-admin version --services
systemctl list-units 'openvpn3*'

Шта сваки списак заиста доказује

Сопствени погледи клијента су најјефтинији доступни доказ и сваки од њих доказује мање него што изгледа. Профил на списку конфигурације показује да је профил увезен и ништа о томе сме ли неко њиме да се повеже. Сесија на списку сесија показује да објекат сесије постоји и ништа о томе да ли је удаљена аутентикација завршена.

openvpn3 configs-list
openvpn3 sessions-list

Путање објеката у тим излазима означавају управљане објекте на сабирници, а не датотеке, зато не могу да се уређују, а раније забележена путања постаје застарела у тренутку када се та сесија одспоји. Поновна употреба једне из ваших белешки ствара грешке "no such object" које немају никакве везе са VPN-ом. Табела фаза испод одваја шта сваки корак везе успоставља од онога што оставља отвореним, и одлука о враћању верзије почива управо на тој разлици. Прочитајте ред који одговара вашем доказу, па поново прочитајте текст грешке.

StageWhat existsWhat proves itWhat it does not prove
Profile importedA configuration object held by the configuration managerThe profile is listed by the clientThat the profile owner permits a connection
Session requestedA session object held by the session managerThe session appears in the session listThat the remote side accepted the credentials
Connect dispatchedAn asynchronous attempt on the VPN backendStatus changes arrive for that sessionThat an interface was configured
Tunnel configuredAn interface, routes and DNS settingsThe network service reports success and routes appearThat traffic reaches the peer

Позив за повезивање се враћа пре него што тунел постоји

Позив за повезивање вам даје сесију за посматрање и враћа се, зато је наизглед успешан позив за којим следи тишина нормално међустање, а не противречност. Сучеље и даље мора да прати промене стања и да одговори на сваки захтев за интеракцију. Профил који тражи акредитив а не добија одговор чека у стању које изгледа тачно као заглављен позадински систем. То стање чекања заслужује препознавање, јер шаље људе ка погрешној компоненти.

Док покушај траје, пратите списак сесија и сопствени дневник сучеља за тај профил. Сесија која никада не напушта почетно стање именује компоненту која се зауставила, а дневник је обично именује већ у првим редовима. Држите име профила при руци, јер команда за дневник узима профил, а не путању сесије, што је још један разлог да поново прочитате списак уместо да путању поново употребите.

openvpn3 sessions-list
openvpn3 log --config <profile> --level 6

Читање дневника једне компоненте без отварања сесије

Када сучеље не извештава ништа корисно, идите ка компоненти која је забележила отказ у дневнику, уместо да започнете нову везу. Са подешеним systemd-journald записивачем, ограничени преглед дневника администратора чита догађаје једне компоненте без дирања политике сабирнице и без отварања сесије, што је важно јер дијагностика која мења систем који мери доказује веома мало. Филтрирајте по јединици, а не по ознаци syslog: појединачне услужне јединице не гарантују заједнички идентификатор, зато упит по ознаци може да врати празну страницу док је сама јединица забележила отказ.

Забележите четири поља пре него што некога замолите за помоћ: пуно име грешке, укључене услугу и објекат, временски жиг и верзије инсталираних пакета. То је оно што је потребно одржаваоцу и ништа од тога не захтева лепљење профила или акредитива у пријаву. Ширење политике приступа сабирници да би се грешка утишала није дијагностика, оно брише границу која вам је именовала компоненту. Приватни садржај профила остаје изван дељених извештаја из истог разлога као акредитиви.

journalctl -u 'openvpn3-service-*' -n 50 --no-pager
openvpn3-admin journal --service <name>

Исправљање границе која је одбила

Сваки ред карте има своју исправку и редови не замењују један другог. Одбијена операција на профилу је питање политике и власништва, док је позадински систем који се не активира питање услуга и паковања. Сервер који одбија аутентикацију није ни једно, зато поновљене промене лозинке не могу да поправе локални проблем са активирањем. Избор погрешне исправке је пут којим проблем са политиком постаје поновна инсталација.

После промене пакета проверите усклађену и подржану инсталацију уместо да копирате стари бинарни фајл на његово место. Контролисано враћање верзије је легитиман одговор на потврђену регресију, под условом да пакети остану компатибилни и да постоји пут назад ка подржаном одржавању. Успоставите тај пут пре него што услуга престане да се покреће, а не после.

Друга платформа може да дели исту основну VPN библиотеку без дељења сабирничких услуга Linux-а, зато сличан отказ на Windows-у не говори ништа о овом. Преглед D-Bus документује путање објеката изложене за конфигурације и сесије, и управо тај део архитектуре носи ову дијагностику. Прочитајте га једном и следећа грешка ће доћи са већ прикаченом компонентом.

Повезани чланци