Як фіксаваць і правяраць выкарыстаны выхадны адрас VPN
Кліенцкія праграмы паказваюць назву лакацыі, а не адрас, з якога пайшоў ваш трафік. Зафіксуйце выхадны IP пры падключэнні і параўнайце яго з прамым эталонам.
Спытайце ў настольнага 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: папрасіце гісторыю ў правайдэра
Некаторыя правайдэры вядуць журналы злучэнняў і адкажуць на пытанне падтрымкі адзнакай часу і назвай сервера. Такі запіс апісвае іх інфраструктуру, а не ваш трафік, і каштуе роўна столькі, колькі каштуюць іх акно захавання і іх жаданне паглядзець. Ён таксама апісвае сеанс, а не запыт. Акно звычайна кароткае, і яго адлічваюць з боку правайдэра тунеля.
Правайдэры, якія заяўляюць пра адсутнасць журналаў, не могуць прадаставіць гэта па запыце, а спіс нядаўніх лакацый на баку кліента — не тое самае. Просьба да правайдэра без журналаў назваць выхадны адрас звычайна сканчаецца тлумачэннем, чаму гэтых даных не існуе.
Што можа даказаць кожны запіс у звароце ў падтрымку
Два запісы адказваюць на розныя пытанні, і менавіта ў табліцы параўнанне перастае быць акадэмічным.
| Question | Your local log | Provider record |
|---|---|---|
| Which address did the traffic leave from? | Yes, for the moment it was captured | Usually not disclosed |
| Was the tunnel in use at 14:20? | Yes, if the capture ran | Yes, within the retention window |
| Why did a location get slower? | Yes, by comparing addresses over time | Sometimes, as an infrastructure note |
| Who sent this specific request? | No | No |
Пад вашым кантролем толькі першы слупок. Запіс правайдэра можа пацвердзіць, што ўліковы запіс быў падключаны ў пэўны час, але не можа пацвердзіць, якія запыты выкарыстоўвалі тунель, і не назаве адрас, які правайдэр лічыць эксплуатацыйнай дэталлю. Ніводзін з запісаў не ідэнтыфікуе чалавека, бо агульны выхадны адрас можа несці шмат кліентаў адной хвіліны.
Параўнайце абодва з эталонам, перш чым давяраць хоць аднаму
Адрас сам па сабе нічога не даказвае. Зафіксуйце прамы адрас да падключэння, тунельны пасля і параўнайце іх. Аднолькавыя значэнні азначаюць, што тунель не нясе гэты запыт — праз падзелены тунель, вышэйшы проксі або кліент, які адкаціўся на прамы шлях.
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-запыту і нічога не кажа пра тое, які рэзалвер адказаў. Прылада, якая цячэ на адным з іх, можа выглядаць цалкам здаровай на другім.