OpenVPN 3 Linux nasazlıqları tanımadığınız bir adın əlavə olunduğu D-Bus metod xətası kimi gəlir və vəsvəsə paketin versiyasını aşağı salıb ümid etməkdir. Müştəri bir proqram deyil: əmr sətri ön hissəsi profillərə, sessiyalara, VPN mühərrikinə və imtiyazlı şəbəkə dəyişikliklərinə sahib xidmətlərlə avtobus üzərindən danışır. Bu beşindən hansının uğursuz çağırışa sahib olduğuna qərar vermək diaqnozun böyük hissəsidir və geri qaytarmaq əvəzinə bir əmrə başa gəlir. Bundan sonra gələn, nasazlıqların adətən göründüyü ardıcıllıqla həmin qərardır.

Bir əmrin arxasında beş sahib

Beş proses önəmlidir və hər birinin öz avtobus adı var: əmrinizi qəbul edən ön hissə, profilləri və onların giriş siyasətini saxlayan konfiqurasiya meneceri, sessiyanın ömrünə sahib sessiya meneceri, bağlantını OpenVPN 3 Core Engine vasitəsilə icra edən arxa hissə və interfeysi, marşrutları və DNS parametrlərini quraşdıran şəbəkə konfiqurasiyası xidməti. Konfiqurasiya obyektini adlandıran xəta buna görə arxa hissə xətası deyil və başlamayan arxa hissə autentifikasiya nasazlığı deyil. Mesajı həmin sətirlərdən birinə yerləşdirmək hər hansı bir şey dəyişdirilməzdən əvvəl baş verməlidir, çünki hər sonrakı addım hansı sətrin doğru olduğundan asılıdır. Sətri təxmin etmək qısa düzəlişin paketlərlə keçən günortağa çevrilmə üsuludur.

Başqa bir şey soruşmazdan əvvəl sistem avtobusundan hansı xidmətlərin mövcud olduğunu soruşun, sonra quraşdırılmış hissələrin bir versiya üzərində razılaşdığını təsdiqləyin. OpenVPN 3 Linux bu xidmətləri sistem vahidləri kimi qeydiyyata alır, yəni soruşulacaq avtobus sistem avtobusudur, versiya sorğusu inzibati səlahiyyət tələb edir və --user ilə hazırlanmış siyahı vahidlərin heç vaxt görünmədiyi giriş sessiyanızı oxuyur. Xidmətlər tələb üzrə aktivləşir və bəziləri boş qaldıqda çıxır, yəni ilk tələbinizdən əvvəl çatışmayan xidmət sadəcə hələ heç nə üçün soruşulmayıb. Aşağıdakı üç əmr VPN sessiyası açmadan mövcudluq, versiya və vahid vəziyyətinə cavab verir.

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

Hər siyahı əslində nəyi sübut edir

Müştərinin öz görünüşləri mövcud olan ən ucuz sübutdur və hər biri göründüyündən azını sübut edir. Konfiqurasiya siyahısındakı profil bir profilin idxal olunduğunu göstərir və kiminsə onunla qoşula biləcəyi barədə heç nə demir. Sessiya siyahısındakı sessiya bir sessiya obyektinin mövcud olduğunu göstərir və uzaq autentifikasiyanın bitib-bitmədiyi barədə heç nə demir.

openvpn3 configs-list
openvpn3 sessions-list

Bu çıxışlardakı obyekt yolları avtobusda idarə olunan obyektləri göstərir, faylları deyil, buna görə redaktə edilə bilməzlər və əvvəl qeyd edilmiş yol həmin sessiya ayrıldığı anda köhnəlir. Qeydlərinizdən birini təkrar istifadə etmək VPN ilə heç bir əlaqəsi olmayan "no such object" xətaları yaradır. Aşağıdakı mərhələ cədvəli bağlantının hər addımının nə qurduğunu nəyi açıq buraxdığından ayırır və geri qaytarma qərarı məhz bu fərqə dayanır. Sübutunuza uyğun sətri oxuyun, sonra xəta mətnini yenidən oxuyun.

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

Bağlantı çağırışı tunel mövcud olmadan qayıdır

Bağlantı çağırışı sizə izlənəcək bir sessiya verir və qayıdır, buna görə zahirən uğurlu çağırışdan sonra sükut gəlməsi ziddiyyət deyil, normal ara vəziyyətdir. Ön hissə yenə də vəziyyət dəyişikliklərini izləməli və hər qarşılıqlı əlaqə tələbinə cavab verməlidir. Etimad tələb edən və cavab almayan profil, tam olaraq ilişib qalmış arxa hissə kimi görünən vəziyyətdə gözləyir. Bu gözləmə vəziyyəti tanınmağa layiqdir, çünki insanları yanlış komponentə göndərir.

Cəhd davam edərkən sessiya siyahısını və ön hissənin öz jurnalını həmin profil üçün izləyin. Başlanğıc vəziyyətindən heç çıxmayan sessiya dayanan komponenti adlandırır və jurnal onu adətən ilk bir neçə sətirdə adlandırır. Profil adını əlinizdə saxlayın, çünki jurnal əmri sessiya yolu deyil, profil alır, bu da yolu təkrar istifadə etmək əvəzinə siyahını yenidən oxumaq üçün bir səbəbdir.

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

Bir komponentin jurnalını sessiya açmadan oxumaq

Ön hissə faydalı heç nə bildirmədikdə, yeni bağlantı başlatmaq əvəzinə nasazlığı jurnala yazan komponentə gedin. Konfiqurasiya edilmiş systemd-journald qeydiyyatçısı ilə inzibatçının məhdud jurnal görünüşü bir komponentin hadisələrini avtobus siyasətinə toxunmadan və sessiya açmadan oxuyur, bu önəmlidir çünki ölçdüyü sistemi dəyişən diaqnoz çox az şey sübut edir. Syslog etiketinə görə deyil, vahidə görə süzün: ayrı-ayrı xidmət vahidləri ümumi identifikatora zəmanət vermir, buna görə etiket sorğusu boş səhifə qaytara bilər, halbuki vahidin özü nasazlığı qeyd edib.

Kimdənsə kömək istəməzdən əvvəl dörd sahəni qeyd edin: xətanın tam adı, aid olan xidmət və obyekt, zaman damğası və quraşdırılmış paket versiyaları. Bir baxıcının ehtiyac duyduğu bunlardır və heç biri bir profil və ya etimad məlumatını bilete yapışdırmağı tələb etmir. Xətanı susdurmaq üçün avtobus giriş siyasətini genişləndirmək diaqnoz deyil, komponenti sizin üçün adlandıran sərhədi silir. Profillərin şəxsi məzmunu, etimad məlumatları ilə eyni səbəbdən paylaşılan hesabatların xaricində qalır.

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

İmtina edən sərhədi düzəltmək

Xəritənin hər sətrinin öz düzəlişi var və sətirlər bir-birini əvəz etmir. Profildə rədd edilmiş əməliyyat siyasət və mülkiyyət məsələsidir, halbuki aktivləşməyən arxa hissə xidmətlər və paketləmə məsələsidir. Autentifikasiyanı rədd edən server heç biri deyil, buna görə təkrar şifrə dəyişiklikləri yerli aktivləşdirmə problemini düzəldə bilməz. Yanlış düzəlişi seçmək, siyasət probleminin yenidən quraşdırmaya çevrilmə üsuludur.

Paket dəyişikliyindən sonra köhnə ikili faylı yerinə kopyalamaq əvəzinə ardıcıl və dəstəklənən quraşdırmanı yoxlayın. Nəzarətli geri qaytarma, paketlər uyğun qaldıqda və dəstəklənən baxıma qayıtma yolu mövcud olduqda təsdiqlənmiş geriləməyə qanuni cavabdır. O yolu xidmət başlamağı dayandırmazdan əvvəl qurun, sonra deyil.

Başqa platforma eyni əsas VPN kitabxanasını Linux-un avtobus xidmətlərini paylaşmadan paylaşa bilər, buna görə Windows-da bənzər görünən nasazlıq bu barədə heç nə demir. D-Bus icmalı konfiqurasiyalar və sessiyalar üçün təqdim olunan obyekt yollarını sənədləşdirir və bu diaqnozun dayandığı arxitektura hissəsi məhz odur. Bir dəfə oxuyun, və növbəti xəta artıq ona bağlanmış komponentlə gələcək.

Əlaqəli məqalələr