Xidmət uğursuz olur, qeydlərdə spawn və qovluq qeyd olunur, ilk instinkt isə VPN konfiqurasiyasını yoxlamaqdır. Həmin faylda hələ heç nə oxunmayıb. systemd prosesi hazırlayarkən, icra olunan fayl işə düşməzdən əvvəl uğursuz oldu, yəni nə parser, nə sertifikat, nə də uzaq host sorğulanıb. Status kodunu sistemd əvəzinə OpenVPN haqqında bir ifadə kimi oxumaq bu işi qısa araşdırmaya çevirir.

Tətbiqdən əvvəl status kodunu oxuyun

Xidmət adından sonrakı rəqəmsal kod hansı mərhələnin uğursuz olduğunu göstərir. Qovluq xətası CHDIR statusu kimi bildirilir, icra oluna bilməyən fayl isə tamamilə başqa koddur. İkisi xülasə sətrində oxşar görünür və səbəblərində heç bir ortaqlıq yoxdur.

Bu fərq vacibdir, çünki düzəlişlər müxtəlif fayllardadır. CHDIR xətası yol və xidmətin ona baxışı ilə bağlıdır. Exec xətası binar fayl, onun interpretatoru və ya əlaqəsiz mount ilə bağlıdır. VPN uzaq nöqtəsini, şifrə siyahısını və ya sertifikat yolunu dəyişmək heç birini həll edə bilməz.

Xətanın uğurlu işləmədən sonra deyil, başlanğıcda olduğunu təsdiqləyin. Xidmət dünən işləyib indi eyni mərhələdə uğursuz olursa, qovluq, onun icazələri və ya unit özü dəyişib və axtarmaq lazım olan sübut həmin dəyişiklikdir.

Unit-dən harada olmaq istədiyini soruşun

Quraşdırılmış hesab etdiyiniz faylı deyil, effektiv unit-i oxuyun, çünki drop-in faylları əsas unit-i heç redaktə etmədən iş qovluğunu üstələyə bilər. Show çıxışı suala birbaşa cavab verir:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

Yuxarı server şablonu üçün iş qovluğu server konfiqurasiyası qovluğudur və instansiya adı onun içindəki profili seçir. Buna görə branch adlı instansiya həmin qovluqda öz faylını gözləyir və başqa yerə qoyulmuş profil iş qovluğu tələbini qətiyyən ödəmir.

Unit-in tələb etdiyi ilə mövcud olanı müqayisə edin. Əvvəllər mövcud olan yol, indi başqa yerə işarə edən simvolik keçid və ya artıq qovluğa uyğun gəlməyən instansiya adı bu dəqiq xətanı doğuran adi dəyişikliklərdir.

Yolu xidmətin gördüyü kimi yoxlayın

Sizin shell və xidmət eyni fayl sistemi görünüşünü paylaşmır. Konfiqurasiya edilmiş kök qovluq və ya kök obraz unit daxilində mütləq yolun mənasını dəyişir və hostda açıq şəkildə mövcud olan yol həmin ad məkanında olmaya bilər. Əl ilə testə güvənməzdən əvvəl unit-in parametrlərini oxuyun.

İcazələr problemi daha da dərinləşdirir. Xidmət müəyyən istifadəçi kimi işləyir və həmin istifadəçi hədəfə çatmaq üçün hər üst qovluqdan keçə bilməlidir, yalnız hədəfin özünü oxuya bilməsi kifayət deyil. Root üçün oxunaqlı, lakin xidmət istifadəçisi üçün keçilməz qovluq itkin yol kimi görünən xəta yaradır.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

Sərtləşdirmə parametrləri də bu mənzərənin hissəsidir. Ev qovluqlarını gizlədən və ya fayl sisteminin bir hissəsini yalnız-oxunaqlı edən unit konfiqurasiya olunduğu kimi davranır və iş qovluğu sandbox-in hələ də açdığı yerdə yerləşməlidir.

Sahibini düzəldin, sonra başqa xəta gözləyin

Tərtibatı və ya unit-i həmin konfiqurasiyanın sahibi vasitəsilə düzəldin. Profili gözlənilən qovluğa köçürmək tərtibat səhv olduqda haqlı düzəlişdir, lakin daxil oluna bilməyən qovluğu izah etmir, ona görə bunu ümumi cavab kimi qəbul etməyin.

Konfiqurasiya ağacında icazələri genişləndirməyin və ya sandbox-i silməyin qısa yoluna aldanmayın. Hər ikisi simptomu aradan qaldırır, lakin qəsdən qoyulmuş qoruyucuları götürür və növbəti xətanı şərh etmək daha çətin olacaq.

İnstansiyanı yenidən başladın və uğuru fərz etmək əvəzinə növbəti hadisəni oxuyun. Ehtimal olunan növbəti xəta OpenVPN-in konfiqurasiya faylını aça bilməməsidir ki, bu irəliləyişdir: iş qovluğuna daxil olundu və parser artıq işləyir. Oradan unit-in faktiki fayl xəritələşdirməsini izləyin, şəbəkə diaqnostikasına qayıtmayın.

systemd icra arayışı iş qovluğunun kök qovluqlar və sandbox ilə birlikdə necə şərh edildiyini müəyyən edir. Yadda saxlanmalı naxış sadədir: hər status kodu fərqli mərhələni adlandırır və yalnız tətbiqin öz xətaları tətbiqi təsvir edir.

Əlaqəli məqalələr