VPN müştərilərinin tunel üzərində bir-birinə çatmasını dayandırın
Xidmətə çatmaq marşrutdur, başqa müştəriyə çatmaq siyasətdir. Həmyaşıd trafikini həll edən ötürmə nöqtəsini tapın, sonra qadağanı müştəridən sübut edin.
İki müştəri hər ikisi jump host-u aça bilər və yenə də bir-birini açmağa heç bir səbəbi olmaz. Xidmətə çatmaq ötürmə qərarıdır, həmyaşıda çatmaq isə siyasət qərarıdır və əksər VPN yığınları bunları ayrı obyektlərdə saxlayır. Birinci üçün konfiqurasiya etdiyiniz heç nə ikincini tətbiq etmir. Deməli, iş qayda əlavə etmək deyil, bu serverdə həmyaşıd trafikini həll edən obyekti tapmaq, qadağanı orada yazmaq və müştəridən sübut etməkdir.
Ortaq xidmətə marşrut həmyaşıdlar arasında icazə deyil
Müştəri alt şəbəkəsini elan etmək həmyaşıda başqa müştəri ünvanına doğru paketi necə kabelə qoyacağını deyir. Paketin çatdırılıb-çatdırılmayacağı sonra, onu ötürən hər nədirsə, həll olunur. Linux şlüzündə bu FORWARD zənciridir; istifadəçi məkanındakı demonun içində isə tunelin öz sessiya cədvəlidir. Marşrut əlçatanlığa cavab verir və icazəyə toxunmur.
Buna görə yalnız marşrutları oxuyan izolyasiya yoxlaması heç nə sübut etmir. /24 hər müştəriyə göndərilə bilər, halbuki hər həmyaşıd arası paket ötürmə qarmağında düşürülür. Təhlükəli hal tərsidir: açıq qayda yoxdur, icazəli standart var və izolyasiya yalnız heç kim onu sınamadığı üçün mövcuddur.
Tələbi terminal açmazdan əvvəl bir sətirdə yazın. Xidmət blokuna və jump host-a çatın, müştəri blokunun içində başqa heç nəyə çatmayın.
Həmyaşıd paketini həqiqətən kimin ötürdüyünü tapın
İki server davranışı müştəri tərəfindən eyni görünür və fərqli qaydalar tələb edir. Ya nüvə paketi yenidən tunel interfeysindən ötürür, ya da demon onu sessiyalar arasında kopyalayır və nüvə onu heç vaxt görmür.
WireGuard birinci qrupa aiddir: həmyaşıdlar arası açarı yoxdur, ona görə 10.8.0.4-dən 10.8.0.5-ə paket wg0 üzərində gəlir, ötürmə qarmağına dəyir və AllowedIPs hər iki ünvanı əhatə etdikdə yenidən wg0-dan yönləndirilir. OpenVPN, server konfiqurasiyasında client-to-client qoyulduqdan sonra ikinci qrupdur, çünki bu direktiv paketi istifadəçi məkanında sessiyalar arasında ötürür. Nə isə yazmazdan əvvəl yüklənmiş konfiqurasiyada bu direktivi yoxlayın. Trafiki heç vaxt görməyən nüvə qaydasını işləyən qaydadan ayırmaq mümkün deyil və quraşdırma elə belə heç bir izolyasiya olmadan sonlanır.
Fərz etdiyiniz faylı deyil, effektiv konfiqurasiyanı oxuyun, çünki distributiv paketləri öz daxiletmələrini gətirir. Ötürməni demon edirsə, qadağa onun öz müştəri-üzrə nəzarətlərinə aiddir və host firewall-u yalnız hosta ünvanlanmış trafiki süzür. Nüvə ötürürsə, yalnız ötürmə qarmağı vacibdir.
Marşrutlaşdırılmış və tərcümə olunmuş quraşdırmalar bir yoxlama daha tələb edir: uzaq müştərinin gördüyü mənbə gözlədiyiniz ola bilməz. Onda müştəri alt şəbəkəsinə uyan qayda heç nəyə uymur. Uyğunluğu yazmazdan əvvəl tərcümədən sonra qalan ünvanı qeyd edin və NAT ünvanlarını təxmin etməkdənsə interfeys cütünü uyğunlaşdırmağa üstünlük verin.
Hər ünvana təkbaşına ləğv edilə bilən kimlik verin
İki cihaz bir etimadnaməni paylaşan kimi izolyasiya çökür. Bu kimliyə bağlanmış qayda onları ayıra bilmir və itirilmiş noutbukun ləğvi bütün qrupu ləğv edir. Cihaz üzrə sertifikatlar və ya həmyaşıd üzrə açarlar ləğvi yerli, siyasəti oxunaqlı saxlayır, çünki hər ünvan tam bir şəxsə və ya maşına uyğundur. Dizayn bunu edə bilmirsə, qaydanı incə dənəli adlandırmaq əvəzinə bunu əməliyyat təlimatında yazın.
Ünvan bölgüsü siyasətlə uyğun olmalıdır. Xidmətlər üçün blok, müştərilər üçün blok ayırın və müştəri ünvanlarını ilk gələn götürür aralığından deyil, idarə etdiyiniz hovuzdan paylayın. Server tərcümə edirsə və ya körpü qurursa, xəritə cədvəlini konfiqurasiyanın yanında saxlayın, çünki növbəti oxucu qaydanı yenidən çıxarmaq üçün məhz ona ehtiyac duyur.
Qadağanı paketin tuneli keçdiyi yerə qoyun
WireGuard trafikini ötürən şlüzdə vəziyyəti iki qayda əhatə edir: xidmət blokuna icazə verin, sonra müştəri blokunun qalanını düşürün. İnterfeys cütü ünvanlar qədər vacibdir, çünki yalnız təyinat üzrə uyğunlaşma LAN-dan gələn trafiki də tutur. İcazə əvvəl qiymətləndirilsin deyə onları bu sıra ilə yükləyin.
nftables ilə cüt mövcud inet filter cədvəlinə düşür, əvvəl icazə, sonra düşürmə. Hər iki uyğunluq ünvanlarla yanaşı interfeys cütünü də bərkidir.
nft add rule inet filter forward iifname "wg0" oifname "wg0" ip saddr 10.8.0.0/24 ip daddr 10.8.2.0/24 accept
nft add rule inet filter forward iifname "wg0" oifname "wg0" ip saddr 10.8.0.0/24 ip daddr 10.8.0.0/24 drop
Yüklədikdən sonra çıxış statusuna güvənməkdənsə zənciri geri oxuyun və hər iki qaydanın nəzərdə tutduğunuz sırada olduğunu təsdiqləyin. IPv6 hovuzu üçün uyğun ip6 qaydaları əlavə edin, əks halda v4 cütü iki yığınlı tuneldə yalnız bəzəkdir. Serverin artıq icazəli ötürmə siyasəti varsa, zənciri tamamilə dəyişməkdənsə düşürməni əlavə edin.
OpenVPN üzərində client-to-client aktiv olduqda bu ötürmə qaydaları həmyaşıd trafikinə heç vaxt uyğun gəlmir və qadağa demonun öz nəzarətlərində yaşamalıdır. Hosta ünvanlanmış trafik üçün nüvə qaydalarını saxlayın, lakin onları izolyasiya nəzarəti saymayın.
Qadağanı serverdən deyil, müştəridən sübut edin
Şlüzdən sınaq heç nə sübut etmir, çünki yerli yaranan trafik çıxış yolunu tutur və ötürmə qarmağını heç vaxt keçmir. İki real müştəri istifadə edin: biri xidmətə çatmalı, biri rədd edilməlidir. Əvvəlcə icazə halını işə salın ki, xarab tunel işləyən siyasətlə səhv salınmasın.
İcazə verilmiş müştəridən xidmətin öz portunda cavab verdiyini təsdiqləyin. Həmin müştəridən həmyaşıd ünvanını yoxlayın və rədd əvəzinə sakit düşmə gözləyin:
ping -c 3 -W 2 10.8.0.5
nc -z -w 2 10.8.0.5 22
nft list chain inet filter forward
iptables -vnL FORWARD
ping -6 -c 3 -W 2 fd00:8::5
Düşürülmüş paket və oflayn həmyaşıd ikisi də fasilə kimi görünür, ona görə nə isə nəticə çıxarmazdan əvvəl sayğacları yoxlayın. Həmyaşıdın açıq-aşkar işlək olduğu halda düşürmə qaydasının sayğacının artdığını təsdiqləyin. IPv6 üzərində təkrarlayın, çünki çatışmayan ip6 qaydası v4 qadağasını işlək kimi göstərir. Qəbul edilmiş və rədd edilmiş nəticələri tarixlə birlikdə əməliyyat təlimatına yazın, çünki növbəti miqrasiya qaydanı yenidən çıxaracaq.