Ofis və VPN üçün tək URL? İcazə siyahısı mifinin uğursuzluğu
VPN bağlantısı icazəli saytın gördüyü ünvanı dəyişmir. URL əlavə etməzdən öncə real çıxışı, etibarlı proxy sıçrayışını və IPv6 yolunu yoxlayın.
Tuneli qoşun, eyni əlfəcin açın və icazəli sayt ofisdəki kimi cavab verir. Ən uzaqdan çıxış planlarının səssizcə dayandığı fərziyyə budur və o, yalnız üç ayrı şey eyni vaxtda doğru qaldıqda keçərli olur. Bunlardan heç biri VPN müştərisinin xüsusiyyəti deyil və heç bir DNS qeydi onların heç birini təmin edə bilməz. Əlfəcin evdə uğursuz olduqda, səbəb çatışmayan marşrut, təsdiqlənməmiş çıxış ünvanı və ya bildirdiyi mənbəni dəyişdirmiş proxy olsa da, brauzer sizə bir ümumi xəta verir. Bu üçünü bir problem kimi qəbul etmək kiçik siyasət düzəlişinin bir həftəlik icazə siyahısı genişlənməsinə çevrilməsinin yoludur.
Həqiqi ofis şəbəkəsi ilə təmasda davam edən dizayn fərziyyədən dardır: üç sətirli açıq qərar cədvəli, yan keçilə bilməyən bir tətbiq nöqtəsi və nəyisə sübut edən rədd testi. Fərziyyənin sökülməsi birinci gəlir, çünki ondan sonrakı hər şey mənbəni hansı təbəqənin yanlış təqdim etdiyini bilməkdən asılıdır.
Mif: qoşulmaq marşrutlaşdırma deyil
Tunel qurulur və müştəri müəyyən prefikslər dəsti üçün marşrutlar quraşdırır. Qoşulmanın etdiyi iş bütövlüklə bundan ibarətdir. Əlaqəsiz bir HTTPS sorğusunun tuneldən keçib-keçmədiyi və gəldiyində hansı ictimai ünvandan gəldiyi sonradan başqa komponentlərin verdiyi qərarlardır: marşrut cədvəli yolu seçir, çıxış isə mənbəni seçir.
Buna görə də eyni noutbuk, eyni brauzer profili və eyni əlfəcinlə ofis və mətbəx masası ayrılır. Ofisdə sorğu sayt operatorunun razılaşdığı baxılan ictimai ünvandan çıxır. Tam tuneldən o, VPN çıxışından çıxa bilər ki, bu fərqli ünvandır və kimsə onu əlavə etməyincə təsdiqlənməmişdir. Bölünmüş tuneldən isə o, tunelə heç girməyə bilər. Həmin üç yoldan yalnız ikisi sayt sahibi ilə razılaşmanın bir hissəsi olub və üçüncüsü əlavə icazə sətri ilə yamalanacaq qüsur deyil.
Üç sorğu halı, iki təsdiqlənmiş çıxış
Cədvəli firewall-a toxunmadan yazın, çünki cədvəl dizayndır və qayda onun yalnız bir tətbiqidir. Aşağıdakı ünvanlar sənədləşdirmə aralıqlarıdır; onları öz baxılan dəyərlərinizlə əvəz edin və sayt sahibinin yoxlaya biləcəyi yerdə saxlayın.
| Request path | Source the site sees | Intended decision |
|---|---|---|
| Office, no tunnel | Office public exit | Admit to the application login |
| Remote, approved full tunnel | Approved VPN egress | Admit to the same login |
| Remote, ordinary connection | Neither approved address | Deny at the network boundary |
Bu planların çoxu orta sətirdə qırılır. Əhəmiyyətli olan tətbiqedici qurğunun gördüyü ünvandır, noutbukun tunel içində saxladığı özəl ünvan və ya onun LAN ünvanı deyil. 10.8.0.6 kimi bir dəyər ictimai sayt üçün heç nə ifadə etmir, 192.168.1.44 də elə. Tunel ünvanı tunelin ünvanlama detallıdır, saytın yoxlaya biləcəyi etimadname deyil.
Əgər VPN-iniz sabit, sənədləşdirilmiş çıxış təmin edə bilmirsə, cədvəlin etibarlı orta sətri yoxdur və heç bir icazə siyahısı onu uydurmayacaq. O anda vicdanlı seçimlər açıq özəl marşrutlarla əlçatan özəl sayt və ya tətbiqin qarşısında kimlikdən xəbərdar giriş şlüzüdür. Hər ikisinin ictimai icazə siyahısından fərqli müqaviləsi var və hər ikisini auditora izah etmək, işləyənə qədər böyüyən siyahıdan daha asandır.
Mənbəni qərar verilən yerdə oxuyun
Məhdudiyyəti sorğunu sonlandıran qurğuya qoyun və heç bir alternativ mənşə yolunun onu keçmədiyini təsdiqləyin. Nginx giriş modulu allow və deny direktivlərini sıra ilə qiymətləndirir, ilk uyğunluq qalib gəlir və əhatə edən blokdan miras alınan qaydalar location daxilində qüvvədə qalır. Eyni yerdə dar bir allow-un geniş allow-un yanında olması adətən genişin qərar verdiyini bildirir. Bir sətrini redaktə etməzdən əvvəl həmin location üçün bütün effektiv konfiqurasiyanı oxuyun.
server {
listen 443 ssl;
server_name intranet.example.com;
set_real_ip_from 10.20.0.10;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
location /app/ {
allow 203.0.113.24; # office public exit
allow 198.51.100.77; # approved VPN egress
deny all;
proxy_pass http://app_backend;
}
}
Yük balanslaşdırıcısı və ya əks proxy arxasında bu qayda başqa cür deməsəniz proxyni görür. Zəng edənin ünvanını yalnız dəstəklənən etibarlı-proxy mexanizmi ilə, açıq proxy ünvanları siyahısı ilə bərpa edin. Təsdiqlənmiş ünvan iddia edən sorğu başlığı zəng edənin ona sahib olduğunun sübutu deyil və ictimai dinləyicidə yoxlanılmamış ötürülmüş başlıq icazə siyahısını bəzəyə çevirir.
Sonra digər ünvan ailəsini yoxlayın. Yalnız IPv4-ü əhatə edən qayda dəsti AAAA-da da cavab verən host adı üçün natamam qərardır və işlək IPv6-sı olan müştəri eyni tətbiqə heç vaxt nəzərdən keçirmədiyiniz yolla çatacaq.
Bölünmüş tunel: heç vaxt girməyən sorğu
Bölünmüş tunel yalnız siyahısındakı prefiksləri daşıyır. Daxili ofis alt şəbəkələri adətən bu siyahıya düşür; ictimai veb sayt düşmür. Brauzer adı həll edir, seçilmiş ünvanı marşrut cədvəli ilə müqayisə edir və yenə qarşısında yerli standart şlüzü tapır.
Beləliklə sorğu istifadəçinin ev bağlantısından gəlir, rədd edilir və hesabat VPN-in xarab olduğunu yazır, halbuki tunel tam olaraq konfiqurasiya edildiyi işi görür. İki düzəliş qanunidir: həmin təyinatı tuneldən keçirin və təsdiqlənmiş çıxışın onu daşımasına icazə verin, ya da sayta birbaşa çatıldığını qəbul edin və uzaq istifadəçilərə giriş şlüzü kimi başqa təsdiqlənmiş yol verin. Saytın ictimai icazə siyahısını ev ünvanı təsadüfən daxil olana qədər genişləndirmək heç biri deyil və dizaynın tətbiq etməli olduğu sərhədi aradan qaldırır. İlk ikisi cədvəli dürüst saxlayır; üçüncüsü ondan bir sətri sakitcə silir.
Rəddi sübut edin, sonra bərpanı
Cədvəlin hər sətrində duran müştəridən real qərarı işə salan sorğu ilə sınaqdan keçirin. Əlaqəsiz hansısa ünvan göstərən səhifəyə qarşı əlçatanlıq yoxlaması heç nə sübut etmir, çünki həmin təyinat tətbiqinkindən fərqli marşrut izləyə bilər.
curl -sS -o /dev/null -w 'status=%{http_code}
' https://intranet.example.com/app/login
# repeat with the tunnel up, then with it down
tail -f /var/log/nginx/access.log | grep ' /app/'
Sərhəd giriş qeydini cədvəlin proqnozlaşdırdığı ilə müqayisə edin. Sonra tuneli aşağı salın və rədd edilməli olan təzə sorğu göndərin; artıq yüklənmiş səhifə və ya artıq açıq bağlantı heç nəyi sınaqdan keçirmir. Əgər heç bir rədd görünmürsə, tətbiq nöqtəsi sizin düşündüyünüz yerdə deyil.
Şəbəkəyə buraxılışdan sonra tətbiq autentifikasiyasını saxlayın, çünki ofis çıxışı və VPN çıxışı hər biri çox adamı təmsil edir və heç biri fərdi şəxsi müəyyən etmir. İstifadəçilər üçün təlimat qısa qalır: təsdiqlənmiş tuneli qaldırın, sonra yenidən cəhd edin. Bir URL-i rahat saxlayan, mənbə qaydasının isə təxmin deyil, qərar olaraq qalmasını təmin edən budur.