İctimai SaaS səhifələri hər kəsə açıq qala bilər, halbuki onların arxasındakı idarəetmə əməliyyatları VPN-dən kənarda olan hər kəsi rədd edir. Bunu mümkün edən mexanizm gizli menyu və ya ayrı giriş səhifəsi deyil; sorğunu çatdıran şəbəkə yolunun yoxlanmasıdır. Ünvan sübutlarını səhv etsəniz, yoxlama ya real administratorları kənarda saxlayır, ya da başlıq yaza bilən hər kəsi içəri buraxır. Mənbənin həqiqətən nə aldığı ilə başlayın.

Tuneldən sonra mənbənin həqiqətən aldığı şey

Brauzer ictimai sayta internet trafikini də daşıyan VPN vasitəsilə çatdıqda, şlüz bağlantını çıxmazdan əvvəl çevirir. SaaS şlüzün ictimai çıxış ünvanını görür — adətən bir ünvan və ya kiçik bir diapazon — və noutbukun tunel ünvanını heç vaxt görmür. Buna görə 10.90.0.42 ünvanını icazə siyahısına salmaq alınmır, bütün RFC 1918-i icazə siyahısına salmaq isə daha ucadan alınmır: ikincisi sizə çata bilən hər şəxsi şəbəkəni qəbul edir. Şərt qoymağa dəyər yeganə ünvan təşkilatınızın çıxışda həqiqətən sahib olduğu ünvandır.

curl -s https://ifconfig.me
dig +short admin.example.com

Bölünmüş tunelleşmə bu fərziyyəni səssizcə pozur. VPN yalnız daxili ofis marşrutlarını daşıyırsa, ictimai idarəetmə host adına sorğu yerli ISP vasitəsilə çıxır və mənbə yaşayış ünvanı görür. Qoşulmuş VPN ikonası bu konkret təyinat haqqında heç nə sübut etmir, ona görə tuneli deyil, təyinatı sınaqdan keçirin.

Çıxış ünvanı istifadəçidən istifadəçiyə dəyişirsə, hər hansı siyasət yazmazdan əvvəl dayanın və marşrutlaşdırmanı düzəldin. Yalnız bəzi administratorlara uyğun gələn şərt heç bir şərt olmamasından pisdir, çünki problem hadisəyə qədər gizlədir.

Yalnız ünvanı yenidən yazan proksiyə etibar edin

İctimai saytların çoxu CDN və ya tərs proksi arxasındadır, buna görə mənbənin soket ünvanı ziyarətçiyə deyil, həmin ön tərəfə aiddir. Ön tərəf adətən orijinal ünvanı başlıqda ötürür və bu başlıq, mənbə onu yalnız tanınmış proksilərdən qəbul etmədikcə, hücumçunun nəzarətindədir. Etibarlı mənbə siyahısını açıq şəkildə konfiqurasiya edin və mənbəni başqa heç bir yerdən əlçatmaz edin. Bu ikinci yarısı olmadan hücumçu proksidən yan keçir və başlığı birbaşa göndərir.

set_real_ip_from 192.0.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
curl -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin

Eyni məntiq PROXY protokoluna da aiddir: o, yalnız dinləyici proksinin çata bildiyi və başqa heç nəyin çata bilmədiyi interfeysə bağlandıqda etibarlıdır. Çatışmayan ünvan konteksti standart icazəyə keçmək əvəzinə qorunan yoxlamanı uğursuz etməlidir. Olmayan başlıq etibarlı yolun sübutu deyil.

Şərti hər qorunan əməliyyata bağlayın

Yoxlamanı menyunu göstərən səhifəyə deyil, hər qorunan əməliyyatın keçdiyi avtorizasiya sərhədinə qoyun. Marşrut qrupları, ara proqram təminatı və ya siyasət qatı hamısı işləyir; hər emalçı üçün surəti işləmir, çünki gələn rübdə əlavə edilən emalçı onu daşımayacaq.

user = requireAuthenticatedSession()
requirePermission(user, "admin")
requireVpnEgress(verifiedClientAddress(request))
performProtectedOperation(user, request)

Eyni sərhəd JSON API-ni, eksportları, imzalanmış yükləmə URL-lərini və WebSocket əl sıxışmasını da əhatə etməlidir, çünki onların heç biri HTML səhifəsinin əvvəlcə istənilməsini tələb etmir. VPN işləyərkən yaradılmış yükləmə linki, yükləmə son nöqtəsi yenidən yoxlamadıqca sonra da etibarlı qalır. Uzun ömürlü sessiyalar da yenidən qiymətləndirmə qaydasına ehtiyac duyur, əks halda bir autentifikasiya edilmiş sorğu daimi istisnaya çevrilir. Standart rədd işçi dəyişikliyindən sağ çıxan yeganə parametrdir.

Paylaşılan keşlər yoxlamanın ətrafındakı digər yoldur. Artıq qorunan cavabı saxlayan keş onu mənbəyə müraciət etmədən təqdim edə bilər, buna görə idarəetmə cavablarını şəxsi kimi işarələyin və paylaşılan yaddaşdan kənarda saxlayın. Keş onları təqdim etməlidirsə, giriş yoxlaması təqdimatdan əvvəl işləməlidir, bu da adətən onun heç paylaşılan keş ola bilməyəcəyi deməkdir.

Yenicə bağladığınız yan keçmələri sınaqdan keçirin

Xoşbəxt yolun deyil, matrisin məşqini edin: VPN vasitəsilə administrator, eyni administrator onsuz, qeyri-administrator onunla və saxta ünvan başlığı. Birbaşa mənbəyə sorğu və keşlənmiş cavab sorğusu əlavə edin, çünki ön tərəfdən tamamilə yan keçən iki sorğu məhz bunlardır.

curl -sI https://admin.example.com/export.csv
curl -s -H 'X-Forwarded-For: 198.51.100.27' https://origin.example.com/admin
curl -s https://admin.example.com/api/me -o /dev/null -w '%{http_code}\n'

Hər sorğu siyasətin vəd etdiyi statusu qaytarmalı, jurnal isə hansı ünvan sübutundan istifadə edildiyini qeyd etməlidir. IPv6-nı ayrıca əhatə edin, çünki ikili stekli mənbə sınaqdan keçirdiyinizdən fərqli mənbə ailəsi görə bilər. Adi müştəri əməliyyatlarını VPN-dən kənarda işlək saxlayın, əks halda dəyişiklik müştəri şikayət etdiyi ilk anda geri qaytarılacaq. Hər sətrin gözlənilən nəticəsini işə salmazdan əvvəl yazın ki, gözlənilməz keçid görünsün.

Çıxış ünvanı icazə verilmiş şəbəkə yolunu sübut edir, nə şəxsi, nə də idarə olunan cihazı. Onu autentifikasiya və icazənin yanında bir şərt kimi saxlayın, və idarəetmə sahəsi bütün məhsulu yalnız VPN xidmətinə çevirmədən dar qalır. Bu ayrılıq dizayndır, onun məhdudiyyəti deyil.

Əlaqəli məqalələr