Şlüz öz idarə səhifəsini saxlayır: daxili ünvan, yoxsa ictimai
VPN şlüzünün özündə olan xidmət tunelin çata bildiyi daxili girişə ehtiyac duyur. Onu özəl olaraq yayımlayın, sonra ictimai dinləyicinin hələ də açıq olmadığını təsdiqləyin.
İdarə səhifəsi mobil məlumatdakı telefondan cavab verir, VPN-ə qoşulmuş noutbukdan isə vaxt aşımına uğrayır. Tuneldə heç nə sınmayıb, çünki sorğu ora heç vaxt daxil olmur. Host adı şlüzün ictimai ünvanına həll olunur və həmin ünvana yalnız onun sonlandırdığı tuneldən kənardan çatmaq olar. Bunu düzəltmək xidmətə özəl giriş vermək deməkdir, xarici son nöqtəni o tərəf-bu tərəfə yeritmək deyil.
Səhifə tuneldən deyil, kənardan yüklənir
İki fərqli sorğu müqayisə olunur. Mobil məlumatdan brauzer ictimai ünvana birbaşa çatır. Tunelin içindən eyni ad eyni ictimai ünvana həll olunur və paket indi tunelin öz uzaq tərəfindəki ünvana çatmaq üçün tuneldən çıxmalıdır. Eyni ad, eyni ünvan, iki tamam fərqli mövqe.
Təyinat marşrutu portu deyil, ünvanı seçir. Marşrut cədvəlində heç nə bilmir ki, 443 portu idarəetmə üçündür, 1194 portu isə nəqliyyatdır, ona görə də hər ikisi eyni təyinat kimi qəbul edilir.
Səhifənin bəzən işləməsi, bəzən işləməməsi buna görədir; müştərinin hansı adı və hansı şəbəkəni istifadə etdiyindən asılıdır. Bu, autentifikasiya problemi deyil, yol problemidir. Hər iki müştəri tam yaxşı autentifikasiya edir.
Xarici son nöqtəni əlçatan saxlayın
Tam tunel profilləri VPN son nöqtəsi üçün istisna marşrutu tələb edir və OpenVPN-in redirect-gateway seçimi məhz bunu sənədləşdirir: uzaq son nöqtə əvvəldən mövcud şlüzdən keçən marşrutu saxlayır ki, tunel öz içinə marşrutlamasın. Bu istisnanı silsəniz, şifrələnmiş nəqliyyat tuneli izləyir və bu, sessiyanı döngədə bitirir. Son nöqtə ünvanının tunelin içindən əlçatan qalmasının səbəbi həmin istisnadır.
Nəticə odur ki, ictimai ünvan müştəridən əlçatan qalır; buna görə də həmin ünvana brauzer sorğusu eyni istisnanı izləyib tunelə girmədən çıxa bilir. İstisna öz işini görür, zərəri isə ad vurur.
Heç nəyi dəyişməzdən əvvəl interfeys siyahısını deyil, marşrut qərarını oxuyun. Aşağıdakı əmrlər inventarı deyil, qərarı çap edir. Onları uğursuz olan müştəridən işə salın.
ip -4 route get 203.0.113.77
ip -4 rule show
ip -4 route show table allƏgər axtarış son nöqtə marşrutunu fiziki şlüzdən göstərirsə, davranış düzgündür və idarə səhifəsi sadəcə yanlış yola göndərilir. Ad həllinin düzəlişə çevrildiyi yer məhz budur.
Xidmətə özəl ad verin
Xidmət tunelin içində şlüzün ünvanına həll olunan ada ehtiyac duyur, eyni zamanda tətbiqin gözlədiyi sertifikat və host adı semantikası saxlanılır. İdarə adı üçün özəl zona qeydi adi cavabdır və bu, nəqliyyat adına toxunmur.
Nəqliyyat adını daxili ünvana yönəltməyin, çünki növbəti tunel qurulması yalnız tunelin içində mövcud olan ünvana çatmağa çalışacaq. Bu səhv düz bir dəfə işləyən VPN yaradır.
Hər iki ünvan ailəsini də yoxlayın, çünki arxada qalmış AAAA qeydi brauzeri özəl planın heç vaxt əhatə etmədiyi yerə göndərə bilər.
dig +short admin.hq.internal
dig +short -t AAAA admin.hq.internal
curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://admin.hq.internal/Siyasəti prosesin işlədiyi yerə uyğunlaşdırın
Şlüzdə dinləyən yerli prosesə lokal-giriş yolu ilə çatılır, ona görə də giriş zənciri və soket bağlaması sorğunun qəbul edilib-edilmədiyini müəyyən edir. Yönləndirmə qaydaları və IP yönləndirməsi yerli dinləyicini cavablandırmır. Giriş siyasətində tunel mənbələrinə icazə verin və prosesin tunelin çata bildiyi ünvana bağlandığını təsdiqləyin.
Host portunda yayımlanan konteyner fərqli yol izləyir, çünki paketin təyinatı dəyişdirilir və yönləndirilir. Bu sorğu hostun yönləndirmə siyasətinə və Docker-in öz qaydalarına rast gəlir; buna görə də işləyən yerli dinləyici eyni portu rədd edən konteynerlə birgə mövcud ola bilir.
Başlama sırası hər iki halda vacibdir, çünki yalnız tunel qalxdıqdan sonra görünən ünvana bağlanma açılışda səssizcə uğursuz olur.
Özəl girişi və rədd edilən ictimai yolu yoxlayın
Tətbiqin öz şəxsiyyət yoxlamaları toxunulmaz qalmaqla, səlahiyyətli müştəridən yeni adlı sorğu edin. Sonra eyni xidməti tuneldən kənardan yoxlayın və cavab vermədiyini təsdiqləyin. Özəl ad məhdudiyyət deyil, rahatlıqdır; ictimai ünvana hələ də bağlı olan dinləyici isə hələ də açıqdır. Ən çox nəzərdən qaçırılan yoxlama məhz sonuncudur.
İstifadəçilərə verilən host adını deyil, bağlamaları və filtr vəziyyətini oxuyun. Məruz qalma adın deyil, soketin xassəsidir. Bu fərq hər DNS dəyişikliyində qalır.
ss -lntp | grep ':443'
nft list ruleset | grep -n 443
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://203.0.113.77/Daxili sorğu səhifəni qaytaranda və xarici sorğu vaxt aşımına uğrayanda, xidmətin bir qəsdən özəl yolu var və nəqliyyat əlçatan qalır. Xarici sorğu hələ də cavab verəndə isə, kimsə xidməti yalnız daxili adlandırmazdan əvvəl dinləyici və ya yayımlanmış konteyner girişi daraldılmalıdır.