Heç kim daxil olmadan serveri yenidən başladın, sonra nəzarət etmədiyiniz şəbəkədən qoşulun. Bu tək sınaq bərpanın həqiqi olub-olmadığını cavablandırır, çünki yalnız kimsə əllə əmr işə saldıqdan sonra işləyən tunel bərpa deyil, təmirdir. Yoxlamaların çoxu çox tez dayanır: demon aktiv görünür, interfeys qalxır, amma səhifə yenə yüklənmir. Boşluq demək olar ki, həmişə tunelin ətrafındakı hissələrin davamlılığındadır, tunel əmrinin özündə deyil.

Dörd sahib, dörd fərqli sınaq

Yenidən başlatmadan əvvəl tuneli nəyin geri gətirməli olduğunu adlandırın. İcra etdiyiniz sınaq və tətbiq etdiyiniz düzəliş hər ikisi bu cavabdan asılıdır və dörd ümumi sahib var: VPN demonu üçün systemd uniti, WireGuard interfeysi üçün wg-quick instansiya uniti, konteyner runtime-ı və ya şəbəkə meneceri profili. Sahibi adlandıra bilmirsinizsə, dayanın və tapın, çünki gözlənilən başlatma yolu olmayan yenidən başlatma sınağı sizə yalnız nəyinsə baş verdiyini deyir.

Hər sahib öz konfiqurasiyasını fərqli yerdə saxlayır. systemd ilə idarə olunan OpenVPN serveri konfiqurasiyasını başlatmada oxuyur, yəni yükləmə anında faylda nə varsa, o işləyir. wg-quick interfeysi ünvanlarını, marşrutlarını və DNS-i eyni fayldan götürür, bu da o deməkdir ki, qabıqdan əllə qaldırılan və heç vaxt unit kimi aktivləşdirilməyən interfeys geri qayıtmayacaq. Konteyner öz giriş nöqtəsini geri gətirir, lakin host firewall dəyişikliklərini yalnız onlar konteynerin xaricində yaşayırsa gətirir.

Əvvəlcə baza vəziyyəti, yoxsa nəticənin mənası yoxdur

İşləyən vəziyyəti işləyərkən qeydə alın: tuneldəki ünvanlar, müştəri alt şəbəkəsi üçün marşrutlar, NAT və ya yönləndirmə qaydaları, dinləyici soket və yönləndirmə sysctl-i. ip addr show wg0, ip route, nft list ruleset və ya iptables-save, ss -lunp və sysctl net.ipv4.ip_forward əksər hostlarda kifayətdir.

Xidmətin necə başladılmaq üçün konfiqurasiya edildiyini qeyd edin, sadəcə işlədiyini yox. systemctl is-enabled wg-quick@wg0 və systemctl is-active wg-quick@wg0 fərqli suallara cavab verir və yükləmə zamanı vacib olan aktivləşdirilmiş vəziyyətdir, systemctl(1) səhifəsində təsvir olunduğu kimi. OpenVPN üçün hostun hansı şablondan istifadə etdiyini yoxlayın, çünki openvpn@server və openvpn-server@server fərqli defoltlara malik fərqli unitlərdir.

Yenidən başlatmanı icra edin və ilk nasazlığı oxuyun

Seçdiyiniz pəncərədə qəsdən yenidən başladın, konsol və ya kənar yol açıq halda. Son vəziyyəti deyil, hadisələrin sırasını izləyin: host əlçatandır, unit aktivləşdi, interfeys mövcuddur, marşrutlar quraşdırıldı, firewall qaydaları mövcuddur, dinləyici bağlandı, müştəri qəbul edildi. Baş verməyən ilk addım tapıntıdır; ondan sonrakı hər şey səs-küydür.

Tunel istifadə olunmaz halda demon aktiv ola bilər və bu, ən çox rast gəlinən yalançı keçiddir. Unit yalnız network.target əvəzinə network-online.target gözləyirsə, başlatma şəbəkə onlayn olmadan tamamlana bilər. Sertifikatlar, açarlar və ya CRL kimi istinad edilən fayllar həmin anda oxuna bilməz, çünki mount və ya sirr yolu hələ hazır deyil. Heç bir problem unitin jurnalını oxuyana qədər systemctl status içində görünmür.

Hostun xaricindən sınaqdan keçirin. Eyni LAN-dakı müştəri heç bir uzaq müştərinin istifadə etməyəcəyi marşrutla uğur qazana bilər və qutuya SSH sessiyası tunel haqqında heç nə sübut etmir. Qoşulun, daxili adı həll edin, şəxsi resursa çatın, sonra ləğv vəziyyətinin və açarların hələ də qüvvədə olduğunu təsdiqləmək üçün bir dəfə yenidən qoşulun.

Düzəlişinizi təyin edən üç şərt

Tunel qayıdır, amma müştərilər heç nəyə çatmırsa, nasazlıq marşrutlaşdırma və ya NAT davamlılığındadır. Müştərilər handshake-i tamamlaya bilmirsə, nasazlıq interfeysdə və ya autentifikasiya materialındadır. Xidmət heç vaxt başlamırsa, nasazlıq unit faylında və ya onun asılılıqlarındadır. Bu üç budaq fərqli düzəlişlərə aparır, buna görə baza vəziyyəti olmayan kor-koranə yenidən başlatma qənaət etdiyindən çox vaxt aparır.

Düzəlişi parametrin sahibi olduğu yerdə edin. Yönləndirməni bir sysctl drop-in-ə qoyun, NAT qaydalarını yükləmə zamanı yüklənən qaydalar dəstinə qoyun, uniti başlatmaq əvəzinə aktivləşdirin və sirrləri unit başlamadan əvvəl mövcud olan yolda saxlayın. Unite yuxu əlavə etmək asılılığı elan etmək əvəzinə gizlədir.

Nəticəni runbook-da qeyd edin

Öz-özünə nəyin qayıtdığını, nəyi başlatmalı olduğunuzu və boşluğun nə qədər davam etdiyini yazın. Yoxlama üçün istifadə etdiyiniz dəqiq əmrləri daxil edin ki, növbəti şəxs sınağı yenidən təkrarlasın, yenisini icad etməsin. Hər hansı addım əl əmri tələb edibsə, o əmr konfiqurasiyaya aiddir, runbook-da daimi addım kimi yer almamalıdır.

Sonra növbəti sınağı hostun şəbəkə yığınında növbəti dəyişiklikdən sonraya planlaşdırın, altı ay sonrakı təqvim tarixinə deyil. Qarşısını aldığınız nasazlıq rejimi daimi görünən müvəqqəti əmrdir və bunlar məhz kimsə firewall qaydalarını redaktə edəndə və ya xidməti yeni unitə köçürəndə ortaya çıxır.

Əlaqəli məqalələr