Proxy rotacija ir VPN keičia jūsų viešąjį adresą skirtinguose sluoksniuose, ir būtent šis skirtumas lemia, kas nuteka. VPN perkelia kiekvieną paketą į tunelį, todėl šaltinio adresas, kurį mato taikinys, yra tunelio galinis taškas. Proxy yra aukščiau tinklo sluoksnio: iš išėjimo matomi tik tie užklausimai, kuriuos siunčiate per jį, o visa kita mašinoje išlaiko tikrąjį adresą. Teisingai atskyrus šiuos dalykus, rotacija iš varnelės tampa dizaino sprendimu.

Iš kur iš tikrųjų atsiranda viešasis adresas

Adresas, kurį mato taikinys, yra tas, iš kurio jūsų srautas paskutinį kartą išėjo, o namų ryšyje tai tiekėjo adresas jūsų maršrutizatoriuje, o ne kažkas, ką turi mašina. Maršrutizatoriaus perkrovimas gali grąžinti tą pačią nuomą, o jo MAC adreso pakeitimas kartais sukuria naują, bet nė vienas neduoda jums šalies pasirinkimo. VPN pakeičia šaltinio adresą IP sluoksnyje, todėl kiekvienas paketas iš mašinos, įskaitant DNS ir foninius atnaujinimus, išeina iš tunelio galinio taško. Proxy dirba vienu sluoksniu aukščiau: jis priima užklausą, atidaro savo ryšį su taikiniu, ir tik ta užklausa matoma iš išėjimo. Visa kita mašinoje vis dar naudoja tikrąjį adresą.

Šis atskyrimas paaiškina daugumą netikėtumų. Naršyklės plėtinys, nukreiptas į proxy, keičia tik tai, ką siunčia naršyklė, ir nieko daugiau, todėl antroji programa tame pačiame hoste vis dar nutekina pradinį adresą. Sistemos lygmens VPN turi priešingą gedimo režimą: jis apima srautą, kurį norėjote palikti vietinį, ir užsidaro tik tada, jei klientas taip sukonfigūruotas. Rinktis tarp jų iš tikrųjų reiškia rinktis, kuris srautas turi judėti.

Tada rotacija taikoma tam sluoksniui, kurį pasirinkote. Su proxy rotacija reiškia, kad kita užklausa naudoja kitą išėjimą. Su VPN tai reiškia tunelio išardymą ir perstatymą, kas yra lėčiau ir pasirodo kaip matomas persijungimas.

Ką HTTP proxy gali perskaityti, o ko ne

Paprastame HTTP proxy mato absoliutų URI užklausos eilutėje, kiekvieną antraštę ir turinį. Jis gali visa tai registruoti ir perrašyti bet kurią dalį, todėl nemokamas proxy, įterpiantis scenarijų į atsakymus, daro būtent tai, ką leidžia protokolas. Autentifikacija naudoja Proxy-Authorization, o trūkstamas ar neteisingas prisijungimo duomuo sukuria 407 Proxy Authentication Required vietoj ryšio klaidos.

HTTPS atveju klientas siunčia CONNECT host:port ir proxy atidaro neapdorotą tunelį, po kurio mato šifruotus baitus. Jis vis dar sužino pagrindinio kompiuterio vardą iš CONNECT eilutės ir dažniausiai iš SNI lauko TLS rankos paspaudime, todėl registravimas pagrindinio kompiuterio vardo lygiu išlieka, net jei naudingasis krūvis neišlieka. Norint perskaityti naudingąjį krūvį, reikia užbaigti TLS sertifikatu, kuriuo klientas pasitiki, o tai kitas produktas su kita rizika. Ir HTTP semantikos specifikacija apibrėžia CONNECT kaip tunelio užklausą, ir tai yra teisingas mąstymo modelis tam, ką išėjimas gali ir ko negali matyti.

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

Išsami išvestis rodo CONNECT eilutę prieš bet kokį TLS srautą, ir būtent tuo metu proxy sužino jūsų tikslą. Proxy, kuris atsako 407, niekada neatidarė tunelio, todėl bandymas iš naujo su kitais TLS nustatymais nepadės.

Rotacijos granularumas lemia, kas sulūžta

Rotacija prie kiekvienos užklausos yra nustatymas, kuris atrodo saugiausias ir sulaužo daugiausia. Slapukai, CSRF žetonai ir serverio pusės sesijos yra susieti su tapatybe, o tapatybė, kuri pasikeičia tarp prisijungimo ir kito kvietimo, taikiniui atrodo kaip sesijos pagrobimas. Daugelis tiekėjų siūlo lipnią sesiją, užkoduodami ją proxy vartotojo varde, todėl išėjimas lieka fiksuotas pasirinktam langui.

Granulumą rinkitės pagal užduotį, o ne pagal tiekėjo numatytąją reikšmę. Vora, atsisiunčianti nepriklausomus puslapius, gali rotuoti prie kiekvienos užklausos, o mokėjimo srautas ar autentifikuotas API turi išlaikyti vieną išėjimą visam srautui. Du žemiau esantys kvietimai rodo lipnų vartotojo vardą ir paprastą rotuojantį galinį tašką, o socks5h schema sprendžia vardus proxy serveryje, o ne vietoje.

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

Vietinis DNS yra tylus nutekėjimas. Jei klientas išsprendžia vardą prieš prisijungdamas, sprendėjas vis tiek sužino kiekvieną hostą, kurį lankote, net jei HTTP užklausa išeina kitur. Ir socks5h forma ir sprendimas proxy pusėje to išvengia, ir jų naudojimas nieko nekainuoja.

Ką taikinys klasifikuoja be adreso

Adreso reputacija yra vienas iš kelių įėjimų. Taikiniai derina ASN ir jo žymą duomenų centras arba gyvenamasis, kliento TLS pirštų atspaudą, HTTP/2 nustatymus, antraščių tvarką, užklausų dažnį ir navigacijos formą. Gyvenamasis išėjimas, valdomas be galvos naršyklės, gali nepavykti ten, kur duomenų centro išėjimas, valdomas tikros sesijos, praeina.

Išėjimo tipas nustato, ką galite sąžiningai teigti apie srautą, ir kiekvienas turi skirtingą kainą.

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

Bendras išėjimas nėra neutralus. Visa kita, kas veikia iš to adreso, patenka į tą patį reputacijos kibirą, o adresas, kurį kiti nuomininkai jau sudegino, nepavyksta dar neperskaičius jūsų pirmosios užklausos.

Pasirinkite išėjimą, kurį galite aprašyti politikoje

Naudingas klausimas yra ne kaip paslėpti adresą, o kas atsakingas už srautą, išeinantį iš jo. Jūsų pačių debesies išėjimas kiekvienai užduočiai, sutartinis tiekėjas su duomenų apdorojimo susitarimu ir paskelbtu saugojimu bei savarankiškai talpinamas VPN su viena tapatybe kiekvienai užduočiai – visa tai aprašoma vienu sakiniu. Nemokamas sąrašas – ne, nes jo operatorius neturi jokios prievolės jums ir turi visą paskatą registruoti.

Laikykite savo spartos ribas žemiau to, ką taikinys toleruoja, ir rinkite tik tuos laukus, kurių reikia užduočiai, kad klaida liktų maža. Greitesnė rotacija norint išvengti blokavimo paprastai padidina užklausų dažnį, kuris ją sukėlė.

Įrašykite pasirinktą išėjimą, jo rotacijos langą ir jo savininką į užduoties konfigūraciją prieš pirmą paleidimą. Kai ateina blokavimas, būtent ta pastaba pasako, ar keisti išėjimą, ar keisti elgesį.

Susiję straipsniai