Üç dizayn eyni laboratoriya problemini həll edir: kiçik bir LAN WireGuard həmkarından çıxmalıdır, şlüzün özü isə adi yuxarı kanalını saxlayır. Cəlbedici qısa yol marşrutlaşdırıcının standart marşrutunu tunelin içinə köçürməkdir və bu, qutunun öz idarəetmə yolunu və ötürdüyü hər şeyi sındırır. Maraqlı variant bir interfeys və bir prefikslə məhdudlaşan siyasət əsaslı marşrutlaşdırmadır. Faktiki olaraq malik olduğunuz maşına dair üç suala cavab verərək aralarında seçim edin.

Çıxışın harada yaşadığını müəyyənləşdirin

Birinci sual: bu host başqa nə isə ötürürmü? Ayrılmış laboratoriya şlüzü standart olaraq rədd edən ötürmə siyasəti ilə yaşaya bilər. İstehsal vəzifələri olan marşrutlaşdırıcı isə yaşaya bilməz və idarə olunan güvəndlik divarının üstünə rəqib qaydalar dəsti qoymaq fasilələrin necə planlaşdırıldığının yoludur. İkinci: iki siyasət obyektinə və onların yenidən başlatmalar arasındakı sırasına sahib ola bilirsinizmi? Üçüncü: malik olduğunuz həmkar tunel mənbə ünvanınıza icazə verirmi və internetə çıxış təklif edirmi? Yalnız özəl şəbəkəni açan həmkar başqa məhsuldur və heç bir yerli marşrutlaşdırma dəyişikliyi bunu düzəltmir. Hər hansı cavab xeyrdirsə, çıxışı bunun yerinə adlar fəzasına və ya birdəfəlik virtual maşına qoyun.

Adlar fəzası və ya VM yaddaş bahasına başa gəlir və sizə təmiz partlayış radiusu verir. Siyasət əsaslı marşrutlaşdırma iki qaydaya başa gəlir və sizə sazlanacaq bir qutu qoyur.

Mənbəyinizə icazə verən çıxışı seçin

Bu laboratoriyada uğursuzluqların çoxu tək bir güvəndlik divarı qaydası mövcud olmadan əvvəl baş verir. Çıxış operatoru paketlərinizin tərcümədən sonra daşıdığı mənbə ünvanını qəbul etməlidir və bu dizaynda həmin ünvan LAN prefiksi deyil, tunel ünvanıdır. Buna görə maskalama dizayna sonradan əlavə kimi deyil, əvvəldən daxil olmalıdır.

Operatorla üç şeyi təsdiqləyin: həmkar tunel ünvanınıza icazə verir, IPv4-ü öz üzərində sonlandırmaq əvəzinə ötürür və çıxış NAT-ını tətbiq edir. Birincisi olmadan paketləriniz gəlib yox olur. Üçüncüsü olmadan özəl mənbə ilə çıxıb növbəti atlamada ölür. Sonra yoxlayın ki, wg-quick öz standart marşrutunu quraşdırmır — bunu Table = off maneə törədir; bu ayar marşrut yaradılmasını susdurur, həmkarın AllowedIPs yoxlamalarını və ya DNS davranışını deyil.

Sükanı iki siyasət obyekti idarə edir

Sükan üçün cədvəl və qayda lazımdır. Cədvəl iki marşrut saxlayır: LAN interfeysindən çıxan LAN prefiksi və tuneldən çıxan standart marşrut. Qayda LAN interfeysinə gələn və o prefiksi daşıyan trafiki cədvələ göndərir. Mənbə uyğunluğunun yanında iif seçicisini istifadə edin, çünki şlüzün öz WireGuard paketləri lokal olaraq yaranır və heç vaxt girən interfeysə uyğun gəlmir.

Qoruyucu axtarışdan əvvəl gəlir, sonra deyil. Bu sıra dizaynın bütün təhlükəsizlik xassəsidir.

Qoruyucu həmin seçici üzərində hökmü unreachable olan ikinci qaydadır. Ona daha yüksək rəqəmsal prioritet verin ki, tunel açıq ikən axtarış yenə qalib gəlsin. Tunel marşrutu yox olduqda axtarış heç nə qaytarmır və qoruyucu axtarışı dayandırır, onu əsas cədvəldəki WAN standartına düşməyə qoymur.

ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0

Geri dönüş boşluğunu açmadan əvvəl bağlayın

Əvvəlcə qoruyucunu, sonra axtarışı quraşdırın. Bunu tərsinə etmək saniyələr uzunluğunda bir pəncərə buraxır və həmin müddətdə test müştərisinin trafiki yuxarı kanala çata bilər.

Filtrləmə mənzərəni tamamlayır. forward qarmağında test prefiksi üçün LAN-dan tunelə istiqaməti və qurulmuş geri dönüş istiqamətini qəbul edin, sonra qalan hər şeyi atın; həmin prefiks üçün tunel interfeysinə NAT postrouting bölməsində yerləşir. Ötürmə zəncirində policy drop buraxmaq məhz çatışmayan marşrutu sızma yerinə sükuta çevirir. Əks yol filtrləməsi tunel interfeysində boş rejim tələb edir, çünki dekapsulyasiyadan sonra gələn ictimai mənbənin ən yaxşı əks marşrutu WAN tərəfindədir. Linux all və interfeys dəyərlərindən yüksəyini götürür, ona görə tunel interfeysini təyin etmək hər yerdə yoxlamanı zəiflətməklə eyni şey deyil.

Bunu uğursuzluq halı ilə sübut edin

Kerneldən dəqiq sual soruşun: müştərinin mənbə ünvanını və gəldiyi interfeysi adlandırın. Hər ikisi olmadan aparılan axtarış başqa suala cavab verir və hər iki halda düzgün görünəcək. Sonra güvəndlik divarı sayğaclarına, həmkarın ötürmə vəziyyətinə və müştərinin öz xidmətinə baxın.

Çıxarılmanı düzgün sınaqdan keçirin. Qayda və filtr yerində qalmaqla tuneli dayandırın: müştəri ilişməli, şlüzün öz trafiki isə işləməyə davam etməlidir. Sonra yerli interfeysə toxunmadan həmkarı dayandırın — yalnız marşrutun mövcudluğuna güvənən dizaynları tutan hal budur. Nəhayət yenidən başladın və qayda sırasını yenidən yoxlayın, çünki qoruyucunu silən sökülmə qarmağı bütün dizaynı əsas cədvələ qaytarır. Cədvəl nömrəsini, prioritetləri və interfeys adlarını dəyişiklik bilettinə yazın, çünki qayda əlavə edəcək növbəti adam bunu sındıracaq adamdır.

Əlaqəli məqalələr