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

Адкуль насамрэч бярэцца публічны адрас

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

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

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

Што можа прачытаць HTTP-проксі, а што не

Для звычайнага HTTP проксі бачыць абсалютны URI ў радку запыту, кожны загаловак і цела. Ён можа запісваць усё гэта і перапісваць любую частку, таму бясплатны проксі, які ўстаўляе скрыпт у адказы, робіць менавіта тое, што дазваляе пратакол. Аўтэнтыфікацыя выкарыстоўвае Proxy-Authorization, а адсутныя або няправільныя ўліковыя даныя выдаюць 407 Proxy Authentication Required а не памылку злучэння.

Для HTTPS кліент адпраўляе CONNECT host:port і проксі адкрывае сыры тунель, пасля чаго бачыць зашыфраваныя байты. Ён усё яшчэ даведваецца імя хоста з радка CONNECT і звычайна з поля SNI ў рукапацісканні TLS, таму журнал на ўзроўні імя хоста застаецца, нават калі карысная нагрузка — не. Каб прачытаць нагрузку, трэба завяршыць TLS сертыфікатам, якому давярае кліент, а гэта іншы прадукт з іншай рызыкай. Спецыфікацыя семантыкі HTTP вызначае CONNECT як запыт тунеля, і гэта правільная разумовая мадэль таго, што выхад можа і не можа бачыць.

curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'

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

Дэталёвасць ротацыі вызначае, што зламаецца

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

Выбірайце дэталёвасць па задачы, а не па стандартных наладах правайдэра. Сканер, які загружае незалежныя старонкі, можа ратаваць на кожны запыт, а працэс аплаты або аўтэнтыфікаваны API павінны ўтрымліваць адзін выхад на ўвесь працэс. Два выклікі ніжэй паказваюць ліпкае імя карыстальніка і звычайную ротацыйную канчатковую кропку, а socks5h схема развязвае імёны на проксі, а не лакальна.

curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me

Лакальны DNS — гэта ціхая ўцечка. Калі кліент развязвае імя перад злучэннем, рэзалвер усё роўна даведваецца пра кожны хост, які вы наведваеце, нават калі запыт HTTP выходзіць дзесьці іншым. Форма socks5h і развязанне на баку проксі пазбягаюць гэтага, і іх выкарыстанне нічога не каштуе.

Што мэта класіфікуе акрамя адраса

Рэпутацыя адраса — адна з некалькіх уваходных даных. Мэты спалучаюць ASN і яго пазнаку цэнтр даных або жылы, адбітак TLS кліента, налады HTTP/2, парадак загалоўкаў, частату запытаў і форму навігацыі. Жылы выхад пад кіраваннем браўзера без інтэрфейсу можа праваліцца там, дзе выхад з цэнтра даных пад кіраваннем сапраўднай сесіі праходзіць.

Тып выхаду вызначае, што вы можаце сумленна сцвярджаць пра трафік, і кожны нясе розны кошт.

Exit typeWhat the target seesMain cost
Datacenter proxyHosting ASN, cheap, often pre-blockedLow reputation, easy to detect
Residential networkA consumer ISP address belonging to someone elseConsent and terms-of-service exposure
Mobile carrierA carrier NAT address shared by many subscribersPrice, plus shared blame for abuse
Your own cloud egressAn address you are accountable forRecognisable, but defensible

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

Выберыце выхад, які можна апісаць у палітыцы

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

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

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

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