Defolt libvirt şəbəkəsindəki qonaqlar WireGuard interfeysi qalxana qədər adları mükəmməl həll edir, sonra isə hər axtarış eyni yerdə donur. dnsmasq hələ də 192.168.122.1:53 ünvanında dinləyir, qonaq hələ də həmin ünvanı resolver kimi istifadə edir və sorğu hələ də gəlir. Dəyişən odur ki, hostun öz yuxarı axın sorğusu və ya ona verilən cavab indi düzəltməyi düşündüyünüz hər hansı filtr zəncirindən əvvəl qiymətləndirilən qayda tərəfindən atılır. Çıxış yolu cavabın miras aldığı bağlantıda kifayət qədər erkən tətbiq olunan markadır.

Tunel qalxan kimi qonaqlar DNS-i itirir

Heç nəyi dəyişməzdən əvvəl formasını təsdiqləyin. Tuneli endirin, qonaqdan dig @192.168.122.1 example.com işə salın və cavab verdiyini görün. Tuneli qaldırın, təkrarlayın və vaxt aşımına uğradığını görün. Bu iki nəticə bir addımda sınıq libvirt şəbəkəsini, səhv resolver ünvanını və ölü dnsmasq-i istisna edir.

Sonra host tərəfinə baxın. Əgər dnsmasq sorğunu və onun yuxarı axın yönləndirməsini qeyd edirsə, paket gəlib və nasazlıq çıxışdadır. Əgər dnsmasq heç nə qeyd etmirsə, qonaq sorğusu girişdə atılır və istisna bu məqalənin işarələdiyindən başqa hook-a aiddir.

Niyə sonrakı zəncirdəki icazə qaydası heç vaxt işə düşmür

Marka əsaslı VPN divarı paket markasına və ya bağlantı markasına baxaraq qərar verir, mənbə ünvanınıza deyil. Fiziki interfeysə gözlənilən marka olmadan gələn hər şey rədd edilir və bu rədd marka yoxlamasına sahib qayda dəstində baş verir. Sonrakı zəncirə əlavə edilən ip saddr 192.168.122.0/24 accept sətri o paket üçün sadəcə heç vaxt nəzərdən keçirilmir, buna görə də aşkar qayda düzgün görünür və heç nəyi dəyişmir.

İşləyənə qədər onu genişləndirmək ikinci tələdir. Host giriş yolunda bütün libvirt alt şəbəkəsini qəbul etmək hər host xidmətini qonaqlara açır, halbuki real ehtiyac bir portdur.

Dar istisnanı mümkün edən mexanizm bağlantı izləməsidir. Bir paketə ct mark təyin etdikdə dəyər yalnız paketdə deyil, conntrack girişində saxlanılır, ona görə də həmin bağlantıdakı hər paket sonradan onu daşıyır, o cümlədən hostdan qonağa cavab. Bütün hiylə budur: sorğunu bir dəfə işarələyin və qayıdış yolu artıq işarələnmiş olur.

Sorğunu VPN cədvəli onu görməmişdən əvvəl işarələyin

İstisnanı öz cədvəlinə qoyun ki, sonrakı oxucu VPN qaydalarını təhlil etmədən onu tapa bilsin:

table inet allowedLocal {
  chain guest_dns {
    type filter hook input priority mangle; policy accept;
    ip saddr 192.168.122.0/24 meta l4proto { tcp, udp } \
      th dport 53 ct mark set 0x00000f41
  }
}

priority mangle mənfidir və bu zənciri VPN paketinin sıfır prioritetdə quraşdırdığı adi filtr zəncirlərindən qabağa qoyur. Qaydanı effektiv edən hook sırasıdır; VPN zəncirindən sonra sıralanan zəncirdəki eyni qayda yalnız bəzəkdir.

Marka nömrəsinin özü daşınmazdır. Quraşdırılmış VPN qaydalarının öz trafiki üçün qəbul etdiyi dəyəri götürün, canlı qayda dəstindən oxuyun və ondan istifadə edin. Səhv marka təmiz yüklənən, hər sorğuya uyğun gələn və heç nəyə icazə verməyən qayda yaradır.

Deşiyi 53-cü portun enində saxlayın

Yazıldığı kimi, bu, libvirt alt şəbəkəsindən hosta TCP və ya UDP üzrə 53-cü porta DNS icazəsi verir və başqa heç nəyə. Qonaqların tuneldən kənarda internete çıxmasına imkan vermir və hostun qonaqlara doğru bağlantı açmasına imkan vermir. Əgər qonağa sonradan başqa host xidməti lazım olsa, bu qaydanı yumşaltmaq əvəzinə həmin təyinat portunu adlandıran ayrıca qayda əlavə edin.

Nə müqabilində nə verdiyiniz barədə dürüst olun. Resolver-ə çata bilən qonaq DNS sorğuları vasitəsilə ixtiyari məlumat da tunelləyə bilər və bu istisna VPN sərhədində qəsdən buraxılmış boşluqdur, yerli şəbəkənin etibarlı olması bəyanatı deyil. Mənbəyi 192.168.122.0/24 ilə məhdudlaşdırmaq boşluğu bütün digər yerli alt şəbəkələrdən uzaq saxlayır və təhlükə sizin üçün vacibdirsə, həmin mənbəyə qarşı sorğuları saymaq ucuzdur.

Onu yenidən başlatmaya dözməli edin və hər iki yarısını sübut edin

Shell promptunda yazılan qayda növbəti açılışda yox olur və VPN interfeysi artıq trafik keçirdikdən sonra yüklənən qayda ilk bağlantıda yarışı uduzur. Cədvəli hostun davamlı nftables konfiqurasiyasına və ya VPN xidmətindən əvvəl sıralanan unit-ə qoyun və sıralamanı fərz etmək əvəzinə yoxlayın.

Yoxlama üç ayrı cavab tələb edir. Zəncirin yükləndiyini və birinci sırada olduğunu təsdiqləyin, conntrack girişinin markanı hər iki istiqamətdə göstərdiyini təsdiqləyin və qonaq axtarışının ünvan qaytardığını təsdiqləyin. Sonra digər yarısını təsdiqləyin: qonağın adi veb trafiki ictimai hosta tunel aşağıda və ya bloklayanda hələ də uğursuz olur. Əgər DNS işləyir və qalan hər şey sızırsa, qaydanız yuxarıdakından genişdir.

Marka yerində olduqdan sonra axtarışlar hələ də uğursuz olursa, mənbəyi genişləndirmək istəyinə qarşı durun. dnsmasq-ın hara yönləndirdiyini, qonaq resolver-inin 192.168.122.1 ünvanına, yoxsa kimsənin yazdığı ictimai ünvana baxdığını və sorğunun ümumiyyətlə hosta çatıb-çatmadığını yoxlayın. İşarələmə paketi qəbul edir və başqa heç nəyi, ona görə də pis yuxarı axın və ya sınıq virtual şəbəkə nə qədər qayda əlavə etsəniz də sınıq qalır.

Əlaqəli məqalələr