Біреу VPN пайдаланушысының қосымша журналында шлюзге тиесілі мекенжаймен немесе түскі астан кейін өзгерген мекенжаймен неге пайда болатынын сұрайды. Жауап бұл қандай мән екенінен басталады: веб-сервер сұрау ортасына қойған жазба. Бұл туннельге жасалған сұрау да емес, сертификат сәйкестігі де емес және нөмір бір адамға тиесілі деген уәде де емес. Оны осы үшеуінің кез келгені ретінде оқу әртүрлі жолдармен қате сенімді жауаптар береді.

Мән серверден келеді, туннельден емес

PHP сұрау ортасын скриптті орындаған нәрседен алады. PHP серверлік айнымалылар анықтамасы бұл жазбаларды веб-сервер жасайтын деп сипаттайды, ал олардың қолжетімділігі сұраудың қалай келгеніне байланысты.

VPN пәрмен жолының hook ретінде іске қосылған скрипт мүлде басқа орындалу контексті. Оның веб-сұрауы, клиенттік сокеті және REMOTE_ADDR жоқ, сондықтан hook ішіне көшірілген веб-код қате мәндердің орнына бос мәндер береді. Hook-тың демон толтыратын өз ортасы бар және ол бөлек құжатталған. Онда REMOTE_ADDR-ге ұмтылу — ешқашан орнатылмаған айнымалыға ұмтылу.

Екі журналды салыстырмас бұрын осы айырмашылықты есте ұстаңыз. Бәлкім, сіз бет сұрауын hook-пен салыстырып жатқан шығарсыз, ал бұл мүлде салыстыру емес. Алдымен орындалу контекстін, содан кейін мекенжайды тексеріңіз.

Нөмірге сенбес бұрын сұрау жолын қарап шығыңыз

Хабарланған мекенжай — веб-сервер көрген қосылыстың peer-і. Клиент пен сол сервердің арасына кез келген нәрсені қойыңыз, peer өзгереді. Трансляция, терминация және жүктемені теңгеру әрқайсысы бақылауды пайдаланушыдан бір қадам алыстатады.

Төрт әдеттегі жол төрт түрлі бақылау береді.

Path to the listenerWhat can be reported
Client routed straight to the private listener, no translationThe client's tunnel address
Gateway translates the source before forwardingThe gateway's translated address
Reverse proxy terminates the client and opens its own backend connectionThe proxy's backend address
Load balancer in front of two proxiesWhichever hop the server treats as its peer

Жолды мақсат атауымен, мекенжайлар отбасымен және әрбір трансляция нүктесімен жазыңыз. Осы картасыз дұрыс және қате мән журнал жолында бірдей көрінеді. Екі жол сызба талқылаудың жарты күнін үнемдейді.

Ауыстыру тек конфигурацияланған жерде болады

Сервер немесе фреймворк клиент мекенжайын әдейі ауыстыра алады. Apache-тың remote-IP модулі мен NGINX-тің real-IP модулі дәл осылай істейді, ал PHP алатын мән осы конфигурацияға және скрипт өңдеушісіне берілген параметрлерге байланысты.

Сондықтан REMOTE_ADDR әмбебап түрде тиілмеген TCP-peer емес. Бұл сервердің өз саясатын қолданғаннан кейін хабарлауды таңдаған peer-і. Бұл айырмашылық мәннің дәлел ме, әлде әшекей ме екенін шешеді.

Сервер иесінен бұл орналастыруда қай өрістің авторитетті екенін және ауыстыру кезінде бастапқы peer қалай сақталатынын сұраңыз. Ешкім жауап бере алмаса, журнал әзірге ештеңені дәлелдемейді.

Жіберу тақырыптарын сеніммен оқымаңыз

Шақырушы жіберу тақырыптарын өзі жібере алады. Үтірмен бөлінген бірінші жазбаны тексерілген пайдаланушы мекенжайы деп санау — қосылған кез келгенге сену шешімі, яғни тақырыптың мақсатына керісінше. Тақырып тізбекті сипаттайды, ал бұл тізбекке тек сенімді қабат кепілдік бере алады.

Сервердің немесе фреймворктің сенімді прокси қолдауын нақты прокси тізбегімен конфигурациялап пайдаланыңыз және оған осы тізбектен тыс көздерден келген мәндерді тастауға рұқсат етіңіз. Қолмен жазылған талдау — қызықты ақаулардың көбі тұратын жер.

Прокси хабарлаған мекенжай жоғары тұрған брандмауэр көретін пакет көзін де өзгертпейді. HTTP метадеректері мен желілік сүзгілеуді бөлек бақылау ретінде ұстаңыз, өйткені олар әртүрлі сұрақтарға жауап береді.

Шешімдер үшін қосымша сәйкестігін пайдаланыңыз

Пайдаланушы жазбаларына қатынас үшін аутентификацияланған субъектіге және қосымшаның авторизация ережелеріне сүйеніңіз. Ішкі мекенжай қайта тағайындалуы мүмкін, ал бір трансляцияланған мекенжай жүздеген бір мезгілдегі пайдаланушыны білдіруі мүмкін. Бұл қасиеттердің ешқайсысын мекенжайды тексеру түзете алмайды.

Егер операциялар сұрауды VPN сессиясымен байланыстыруы қажет болса, бақыланған мекенжай мен уақыт белгісін құжатталған трансляция моделі бойынша авторитетті сессия жазбаларымен қосыңыз. Бұл қорғауға болатын байланыс береді; жалғыз мекенжай олай бермейді.

Диагностика үшін бүкіл сервер массивінің орнына қажетті бірнеше өрісті журналға жазыңыз, өйткені массив тақырыптар мен аутентификация материалын алып жүруі мүмкін. Пайдалы қорытынды бұл мәннің осы орналастыруда нені білдіретінін айтады, қай мән клиентке көбірек ұқсайтынын емес.

Қатысты мақалалар