Immen freget wêrom't in VPN-brûker yn it loch fan 'e applikaasje ferskynt mei in adres dat by de poarte heart, of mei in adres dat nei de middei feroare is. It antwurd begjint by wat dy wearde is: in ynskriuwing dy't de webserver yn 'e omjouwing fan it fersyk set hat. It is gjin fraach yn 'e tunnel, gjin sertifikaatidentiteit, en gjin tasizzing dat it nûmer by ien persoan heart. Om it as ien fan dy trije te lêzen jout selsbewuste antwurden dy't op ferskate manieren ferkeard binne.

De wearde komt fan 'e server, net út 'e tunnel

PHP krijt de omjouwing fan it fersyk fan wat it skript útfierd hat. De PHP-ferwizing nei serverfariabelen beskriuwt dizze ynskriuwingen as troch de webserver makke, mei in beskikberens dy't ôfhinget fan hoe't it fersyk oankaam.

In skript dat as opdrachtregelheak fan 'e VPN rint, is in hiel oare útfieringskontekst. It hat gjin webfersyk, gjin kliïntsocket en gjin REMOTE_ADDR, en dêrom jout webkoade dy't yn in heak kopiearre is lege wearden yn stee fan ferkearde. De heak hat syn eigen omjouwing, fol troch de daemon, en dat is apart dokumintearre. Dêr nei REMOTE_ADDR ta gripe is nei in fariabele gripe dy't nea set is.

Hâld dat ûnderskied yn 't sin foardatst twa lochs fergelykje. Miskien fergelykje jo in sidefersyk mei in heak, en dat is hielendal gjin fergeliking. Kontrolearje earst de útfieringskontekst en dêrnei it adres.

Folgje it paad fan it fersyk foardatst it nûmer fertroust

It rapportearre adres is de peer fan 'e ferbining dy't de webserver seach. Set wat dan ek tusken de kliïnt en dy server en de peer feroaret. Oersetting, beëiniging en lêstbalâns ferpleatse elk de waarnimming ien sprong fierder fan 'e brûker ôf.

Fjouwer gewoane paden jouwe fjouwer ferskillende waarnimmings.

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

Skriuw it paad op mei de namme fan 'e bestimming, de adresfamylje en elk oersettingspunt. Sûnder dy kaart lykje in goede en in ferkearde wearde identyk yn in lochrigel. Twa rigels diagram sparje in middei diskusje.

Ferfanging bart allinnich dêr't it ynsteld is

In server of ramt kin it adres fan 'e kliïnt bewust ferfange. De remote-IP-module fan Apache en de real-IP-module fan NGINX dogge dat beide, en de wearde dy't PHP krijt hinget ôf fan dy ynstelling plus de parameters dy't oan 'e skripthandler jûn wurde.

REMOTE_ADDR is dus net altyd de ûnoantaaste TCP-peer. It is de peer sa't de server keas om it te rapportearjen nei't er syn eigen belied tapast hie. Dat ûnderskied beslút oft de wearde bewiis of fersiering is.

Freegje de eigner fan 'e server hokker fjild yn dizze ymplemintaasje gesachhawwend is en hoe't de oarspronklike peer bewarre wurdt as ferfanging bart. As nimmen antwurdzje kin, bewiist it loch noch neat.

Lês trochstjoerkoppen net op fertrouwen

In oanropper kin sels trochstjoerkoppen stjoere. De earste kommaskieden ynskriuwing as ferifiearre brûkersadres behannelje is beslute om elkenien te leauwen dy't ferbynt, it tsjinoerstelde fan wêr't de kop foar tsjinnet. De kop beskriuwt in keatling, en allinnich in fertroude laach kin foar dy keatling ynstean.

Brûk de stipe fan 'e server of it ramt foar fertroude proxy's mei de wiere proxykeatling ynsteld, en lit it wearden fan boarnen bûten dy keatling fuortsmite. Mei de hân skreaune analyze is it plak dêr't de measte nijsgjirrige flaters wenje.

In adres dat troch in proxy rapportearre wurdt feroaret ek de pakketboarne net dy't in fjoermuorre fierderop sjocht. Hâld HTTP-metadata en netwurkfiltering as aparte waarnimmings, want se beantwurdzje ferskillende fragen.

Brûk de identiteit fan 'e applikaasje foar besluten

Foar tagong ta de records fan in brûker, fertrou op 'e autentisearre prinsipaal en de autorisaasjeregels fan 'e applikaasje. In yntern adres kin opnij tawiisd wurde, en ien oerset adres kin hûnderten tagelyk brûkers fertsjintwurdigje. Gjin fan dy eigenskippen kin in adreskontrôle reparearje.

As de operaasje in fersyk oan in VPN-sesje keppelje moat, keppelje dan it waarnommen adres en de tiidstimpel oan gesachhawwende sesjerekords neffens it oersettingsmodel dat jo dokumintearre hawwe. Dat jout in assosjaasje dy't jo ferdigenje kinne; in adres allinnich net.

Foar diagnoaze, loch de pear fjilden dy't jo nedich hawwe yn stee fan 'e hiele serverarray, dy't koppen en autentikaasjemateriaal drage kin. De nuttige konklúzje seit wat dizze wearde yn dizze ymplemintaasje betsjut, net hokker wearde it meast op in kliïnt liket.

Relatearre artikelen