Спытайце ў настольнага VPN-кліента, якімі серверамі вы карысталіся, і сумленны адказ звычайна будзе назвай лакацыі. Гэтая назва — пункт уваходу, які вы выбралі, а адрас, з якога пайшоў ваш трафік, можа быць зусім іншай машынай. Нішто ў праграме не разлічана на захаванне другога ліку, таму запіс даводзіцца ствараць у момант выкарыстання. Ёсць два падыходы, і толькі адзін з іх вытрымлівае праверку зваротам у падтрымку.

Два запісы, і існуе толькі адзін з іх

Уласны выгляд кліента — у найлепшым выпадку спіс выбраных лакацый з адзнакамі часу. Гэта рашэнне праектавальнікаў, а не недагляд: адрасы належаць да эксплуатацыйных дэталяў, яны змяняюцца паміж прызначэннямі, а раскрыццё адпаведнасці ўскладняе і падтрымку, і працу са злоўжываннямі. Правайдэры ставяць хмарныя інстансы перад сваімі сеткамі менавіта для таго, каб канчатковы пункт мог пераехаць, нікому пра гэта не паведамляючы. Праграма паказвае вам зроблены выбар, а не маршрут, якім пайшоў трафік.

Запіс, які можна пабудаваць самастойна, — гэта лакальны файл з публічным адрасам і адзнакай часу UTC у кожным радку. Ён меншы, непрыгожы і значна карыснейшы, бо апісвае менавіта тое, што можа ўбачыць і старонні назіральнік.

Варыянт A: зафіксуйце выхадны адрас самі

Служба рэха вяртае зыходны адрас, з якога прыйшоў запыт, а гэта па вызначэнні і ёсць выхадны адрас. Запускайце фіксацыю пасля таго, як тунель паведаміць пра падключэнне, бо кліент, які кажа «падключана» да таго, як усталяваліся маршруты і DNS, запіша адрас да тунеля і атруціць журнал ужо з першага радка.

#!/bin/sh
umask 077
log="$HOME/vpn-exit.log"
printf '%s %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$(curl -fsS https://api.ipify.org)" >> "$log"

Дзве дэталі робяць гэты фрагмент працоўным, а не дэкаратыўным. Адзнака часу і адрас стаяць у адным радку, таму пазнейшаму разбору не трэба супастаўляць запісы, а umask 077 трымае файл закрытым з моманту стварэння. Запускайце яго раз на злучэнне, а не раз пры загрузцы, і трымайце па адным файле на прыладу.

Журнал адзначае, калі вы карысталіся тунелем і з якой сеткі з’явіліся, што бліжэй да гісторыі праглядаў, чым да лічыльніка. Выберыце тэрмін захавання, які зможаце абгрунтаваць, трымайце файл па-за агульнымі тэчкамі сінхранізацыі і выдаляйце яго ўсвядомлена.

Варыянт B: папрасіце гісторыю ў правайдэра

Некаторыя правайдэры вядуць журналы злучэнняў і адкажуць на пытанне падтрымкі адзнакай часу і назвай сервера. Такі запіс апісвае іх інфраструктуру, а не ваш трафік, і каштуе роўна столькі, колькі каштуюць іх акно захавання і іх жаданне паглядзець. Ён таксама апісвае сеанс, а не запыт. Акно звычайна кароткае, і яго адлічваюць з боку правайдэра тунеля.

Правайдэры, якія заяўляюць пра адсутнасць журналаў, не могуць прадаставіць гэта па запыце, а спіс нядаўніх лакацый на баку кліента — не тое самае. Просьба да правайдэра без журналаў назваць выхадны адрас звычайна сканчаецца тлумачэннем, чаму гэтых даных не існуе.

Што можа даказаць кожны запіс у звароце ў падтрымку

Два запісы адказваюць на розныя пытанні, і менавіта ў табліцы параўнанне перастае быць акадэмічным.

QuestionYour local logProvider record
Which address did the traffic leave from?Yes, for the moment it was capturedUsually not disclosed
Was the tunnel in use at 14:20?Yes, if the capture ranYes, within the retention window
Why did a location get slower?Yes, by comparing addresses over timeSometimes, as an infrastructure note
Who sent this specific request?NoNo

Пад вашым кантролем толькі першы слупок. Запіс правайдэра можа пацвердзіць, што ўліковы запіс быў падключаны ў пэўны час, але не можа пацвердзіць, якія запыты выкарыстоўвалі тунель, і не назаве адрас, які правайдэр лічыць эксплуатацыйнай дэталлю. Ніводзін з запісаў не ідэнтыфікуе чалавека, бо агульны выхадны адрас можа несці шмат кліентаў адной хвіліны.

Параўнайце абодва з эталонам, перш чым давяраць хоць аднаму

Адрас сам па сабе нічога не даказвае. Зафіксуйце прамы адрас да падключэння, тунельны пасля і параўнайце іх. Аднолькавыя значэнні азначаюць, што тунель не нясе гэты запыт — праз падзелены тунель, вышэйшы проксі або кліент, які адкаціўся на прамы шлях.

curl -fsS https://api.ipify.org; echo
curl -fsS https://api64.ipify.org; echo
dig +short TXT o-o.myaddr.l.google.com @1.1.1.1

Паўтарыце параўнанне для DNS і для IPv6, бо рэха адраса даказвае шлях аднаго HTTP-запыту і нічога не кажа пра тое, які рэзалвер адказаў. Прылада, якая цячэ на адным з іх, можа выглядаць цалкам здаровай на другім.

Падобныя артыкулы