Ротирање прокси IP адреса без VPN-а: шта излаз види
Ротирајте прокси излазе без VPN-а: шта HTTP прокси може да прочита, како лепљиве сесије спречавају поломљено стање и који излаз можете да браните у политици.
Ротирање проксија и 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 type | What the target sees | Main cost |
|---|---|---|
| Datacenter proxy | Hosting ASN, cheap, often pre-blocked | Low reputation, easy to detect |
| Residential network | A consumer ISP address belonging to someone else | Consent and terms-of-service exposure |
| Mobile carrier | A carrier NAT address shared by many subscribers | Price, plus shared blame for abuse |
| Your own cloud egress | An address you are accountable for | Recognisable, but defensible |
Дељени излаз није неутралан. Све остало што ради са те адресе пада у исту корпу репутације, а адреса коју су други закупци већ изгорели не успева пре него што се прочита ваш први захтев.
Изаберите излаз који можете да опишете у политици
Корисно питање није како сакрити адресу, већ ко је одговоран за саобраћај који из ње излази. Сопствени облачни излаз по задатку, уговорени провајдер са споразумом о обради података и објављеним чувањем, и самостално хостован VPN са једним идентитетом по задатку — све то се описује једном реченицом. Бесплатна листа не, јер њен оператер нема никакву обавезу према вама и има сваки подстицај да бележи.
Држите сопствена ограничења брзине испод онога што циљ толерише, и прикупљајте само поља која су задатку потребна, да грешка остане мала. Брже ротирање да бисте побегли од блока обично повећава стопу захтева која га је изазвала.
Запишите изабрани излаз, његов прозор ротирања и његовог власника у конфигурацију задатка пре првог покретања. Када дође блок, управо та белешка вам каже да ли да промените излаз или понашање.