Ævintýri út í bláinn

Ævintýri út í bláinn

Hvernig Spotify getur hjálpað þér að rannsaka púka, RFC, netkerfi og kynna opinn uppspretta. Eða hvað gerist ef þú getur ekki borgað, en þú vilt virkilega fá úrvalsdót.

Byrja

Á þriðjudaginn var tekið eftir því að Spotify birti auglýsingar byggðar á landi IP tölunnar. Einnig kom fram að í sumum löndum voru auglýsingar alls ekki fluttar inn. Til dæmis, í lýðveldinu Hvíta-Rússlandi. Og svo var búið til „snjöllu“ áætlun til að slökkva á auglýsingum á reikningi sem ekki er hágæða.

Smá um Spotify

Almennt séð er Spotify með undarlega stefnu. Bróðir okkar þarf að verða ansi snúinn til að geta keypt úrvals: breyta staðsetningu í prófílnum sínum í útland, leita að hentugu gjafakorti sem aðeins er hægt að greiða fyrir með PayPal, sem hefur verið skrítið undanfarið og vill hafa fullt af skjölum. Almennt séð er þetta líka ævintýri, en af ​​annarri röð. Þó að flestir geri þetta vegna farsímaútgáfunnar, þá hef ég ekki áhuga á því. Þess vegna mun allt hér að neðan aðeins hjálpa ef um er að ræða skrifborðsútgáfuna. Þar að auki verður engin stækkun á aðgerðum. Bara að klippa af þeim aukahlutum.

Af hverju er þetta svona flókið?

Og ég hélt það þegar ég skráði socks-proxy gögnin í Spotify config. Vandamálið reyndist vera að auðkenning í sokkum með því að nota innskráningu og lykilorð virkar ekki. Auk þess gera verktaki reglulega eitthvað í kringum umboðið: annaðhvort leyfa það, banna það síðan eða brjóta það, sem gefur tilefni til heilra umræðuhópa á staðnum.

Ákveðið var að treysta ekki á óstöðugar aðgerðir og finna eitthvað áreiðanlegra og áhugaverðara.

Einhvers staðar hér hlýtur lesandinn að spyrja: af hverju ekki að taka ssh með lykli -D og þar með er þetta búið? Og almennt mun hann hafa rétt fyrir sér. En í fyrsta lagi þarf samt að djöflast í þessu og eignast autossh vini til að hugsa ekki um rifin tengsl. Og í öðru lagi: það er of einfalt og leiðinlegt.

Í pöntun

Eins og venjulega, förum frá vinstri til hægri, ofan til botns og lýsum öllu sem við þurfum til að hrinda „einföldu“ hugmyndinni okkar í framkvæmd.

Fyrst þarftu umboð

Og það eru margir kostir í einu:

  • þú getur bara farið og tekið af opnum proxy listum. Ódýrt (eða öllu heldur fyrir ekki neitt), en algjörlega óáreiðanlegt og líftími slíkra umboða hefur tilhneigingu til að vera núll. Þess vegna væri nauðsynlegt að finna/skrifa þáttara fyrir umboðslista, sía þá eftir viðkomandi tegund og landi, og spurningin um að skipta út umboðinu sem fannst í Spotify er enn opið (tja, kannski í gegnum HTTP_PROXY flytja og búa til sérsniðna umbúðir fyrir binary þannig að öll önnur umferð sé ekki send þangað).
  • Þú getur keypt svipað umboð og bjargað þér frá flestum vandamálunum sem lýst er hér að ofan. En á verði umboðs geturðu strax keypt aukagjald á Spotify og það er ekki hagkvæmt fyrir upphaflega verkefnið.
  • Hækkið þitt. Eins og þú hefur sennilega giskað á er þetta val okkar.

Fyrir tilviljun getur komið í ljós að þú átt vin með netþjóni í lýðveldinu Hvíta-Rússlandi eða öðru litlu landi. Þú þarft að nota þetta og rúlla út viðeigandi proxy á það. Sérstakir kunnáttumenn geta verið sáttir við vin með beini á DD-WRT eða svipaðan hugbúnað. En þarna hans dásamlegur heimur og þessi heimur passar greinilega ekki inn í ramma þessarar sögu.

Svo, valkostir okkar: Smokkfiskur - ekki hvetjandi, og ég vil ekki HTTP umboð, það eru nú þegar of margir af þessari samskiptareglu í kring. Og á SOCKS-svæðinu er ekkert skynsamlegt nema Dante hafa ekki afhent enn. Þess vegna skulum við taka það.

Ekki bíða eftir handbók Dante um uppsetningu og uppsetningu. Hann bara að googla og hefur ekki sérstakan áhuga. Í lágmarksstillingu þarftu að henda inn alls kyns client pass, socks pass, skráðu viðmótin rétt og ekki gleyma að bæta við socksmethod: username. Í þessu formi, til auðkenningar, verður lógópassinn tekinn frá kerfisnotendum. Og hluti um öryggi: að banna aðgang að localhost, takmarka notendur osfrv. - þetta er eingöngu einstaklingsbundið, fer eftir persónulegri ofsóknarbrjálæði.

Settu upp proxy sem snýr að netinu

Leikritið er í tveimur þáttum.

Athöfn eitt

Við höfum flokkað umboðið, nú þurfum við að fá aðgang að því af alheimsvefnum. Ef þú ert með vél með hvítum IP í viðkomandi landi, þá geturðu örugglega sleppt þessum punkti. Við erum ekki með það (við, eins og áður segir, erum hýst heima hjá vinum) og næsta hvíta IP er einhvers staðar í Þýskalandi, svo við munum rannsaka netkerfi.

Svo já, gaumgæfi lesandinn mun aftur spyrja: af hverju tekurðu ekki við núverandi þjónustu eins og ngrok eða svipað? Og hann mun hafa rétt fyrir sér aftur. En þetta er þjónusta, það þarf aftur að djöflast, það getur líka kostað peninga og almennt er þetta ekki sportlegt. Þess vegna munum við búa til reiðhjól úr ruslefni.

Verkefni: það er proxy einhvers staðar langt fyrir aftan NAT, þú þarft að hengja hann á eina af höfnum VPS sem er með hvíta IP og er staðsett á jaðri heimsins.

Það er rökrétt að gera ráð fyrir að þetta sé hægt að leysa annað hvort með höfn áfram (sem er útfært í gegnum ofangreinda ssh), eða með því að sameina vélbúnað í sýndarnet í gegnum VPN. MEÐ ssh við kunnum að vinna, autossh Það er leiðinlegt að taka, svo við skulum taka OpenVPN.

DigitalOcean hefur dásamlegur maður um þetta mál. Ég hef engu við það að bæta. Og stillingarnar sem myndast geta verið auðveldlega tengdar við OpenVPN viðskiptavininn og systemd. Settu það bara (config) inn /etc/openvpn/client/ og ekki gleyma að breyta framlengingunni í .conf. Eftir það skaltu draga þjónustuna [email protected]ekki gleyma að gera það fyrir hana enable og fagna því að allt flaug í burtu.

Auðvitað þurfum við að slökkva á allri tilvísun umferðar til nýstofnaðs VPN, vegna þess að við viljum ekki draga úr hraðanum á biðlaravélinni með því að fara í gegnum hálfan bolta.

Og já, við þurfum að skrá fasta IP tölu á VPN netþjóninum fyrir viðskiptavini okkar. Þess verður þörf aðeins síðar í sögunni. Til að gera þetta þarftu að virkja ifconfig-pool-persist, breyta ipp.txt, innifalinn með OpenVPN og virkjaðu client-config-dir, auk þess að breyta stillingum viðkomandi biðlara með því að bæta við ifconfig-push með rétta grímu og æskilega IP tölu.

Lög tvö

Nú erum við með vél á „netinu“ sem snýr að internetinu og er hægt að nota í eigingirni. Beina nefnilega hluta umferðarinnar í gegnum hana.

Svo, nýtt verkefni: þú þarft að slökkva á umferð sem kemur á eina af VPS höfnunum með hvítum IP svo þessi umferð fari á nýtengda sýndarnetið og svarið geti skilað sér þaðan.

Lausn: auðvitað iptables! Hvenær færðu annars svona dásamlegt tækifæri til að æfa með honum?

Hægt er að finna nauðsynlega uppsetningu nokkuð fljótt, á þremur tímum, hundrað blótsorð og handfylli af sóa taugum, vegna þess að kembiforrit er mjög ákveðin aðferð.

Fyrst þarftu að virkja umferðartilvísun í kjarnanum. Þessi hlutur heitir ipv4.ip_forward og er virkjað aðeins öðruvísi eftir stýrikerfi og netstjóra.

Í öðru lagi þarftu að velja tengi á VPS og vefja allri umferð sem fer þangað inn í sýndarundirnet. Þetta er til dæmis hægt að gera svona:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 10.8.0.2:8080

Hér beinum við allri TCP umferð sem kemur að tengi 8080 á ytra viðmóti yfir á vél með IP 10.8.0.2 og sömu tengi 8080.

Fyrir þá sem vilja óhreinu smáatriðin í starfinu netfilter, iptables og leiðarlýsingu almennt, það er algjörlega nauðsynlegt að íhuga это eða это.

Svo, núna fljúga pakkarnir okkar til sýndarundirnetsins og... vera þar. Nánar tiltekið, svarið frá sokka proxy flýgur til baka í gegnum sjálfgefna gáttina á vélinni með Dante og viðtakandinn sleppir því, vegna þess að í netkerfum er ekki venjan að senda beiðni á eina IP og fá svar frá öðrum. Þess vegna þurfum við að halda áfram að galdra.

Svo, nú þarftu að beina öllum pökkum frá umboðinu aftur í sýndarundirnetið í átt að VPS með hvítum IP. Hér er ástandið aðeins verra, því það er bara iptables við munum ekki hafa nóg, því ef við leiðréttum áfangastaðsfangið fyrir leið (PREROUTING), þá mun pakkinn okkar ekki fljúga á internetið og ef við lagum það ekki mun pakkinn fara til default gateway. Svo þú þarft að gera eftirfarandi: mundu eftir keðjunni mangle, til þess að merkja pakka í gegn iptables og pakka þeim inn í sérsniðna leiðartöflu sem sendir þá hvert þeir ættu að fara.

Ekki fyrr sagt en gert:

iptables -t mangle -A OUTPUT -p tcp --sport 8080 -j MARK --set-mark 0x80
ip rule add fwmark 0x80 table 80
ip route add default via 10.8.0.1 dev tun0 table 80

Við tökum út umferð, merkjum allt sem flýgur frá höfninni sem umboðið situr á (8080 í okkar tilfelli), beinum allri merktri umferð á leiðartöfluna með númerinu 80 (almennt er talan ekki háð neinu, við vildum bara það þannig) og bættu við einni reglu , samkvæmt henni fljúga allir pakkar sem eru í þessari töflu til VPN undirnetsins.

Frábært! Nú fljúga pakkarnir aftur í átt að VPS... og deyja þar. Vegna þess að VPS veit ekki hvað ég á að gera við þá. Þess vegna, ef þú nennir því ekki, geturðu einfaldlega beint allri umferð sem kemur frá sýndarundirnetinu aftur á internetið:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 172.42.1.10

Hér er allt sem kemur frá 10.8.0.0 undirnetinu með grímunni 255.255.255.000 vafið inn í source-NAT og flýgur yfir í sjálfgefið viðmót, sem er snúið yfir á internetið. Það er mikilvægt að hafa í huga að þessi hlutur mun aðeins virka ef við sendum höfnina á gagnsæjan hátt, það er að komandi höfnin á VPS passar við höfn umboðsins okkar. Annars þarftu að þjást aðeins meira.

Einhvers staðar ætti nú allt að fara að virka. Og bara smá eftir: ekki gleyma að ganga úr skugga um að allar stillingar iptables и route hélt ekki áfram eftir endurræsingu. Fyrir iptables það eru sérstakar skrár eins og /etc/iptables/rules.v4(í tilfelli Ubuntu), en fyrir leiðir er allt aðeins flóknara. Ég ýtti þeim inn up/down OpenVPN forskriftir, þó að ég telji að það hefði mátt gera þau betur.

Settu umferð frá forritinu í proxy

Þannig að við erum með umboð með auðkenningu í viðkomandi landi, aðgengilegur í gegnum kyrrstæða hvíta IP tölu. Það eina sem er eftir er að nota það og beina umferð frá Spotify þangað. En það er blæbrigði, eins og nefnt er hér að ofan, innskráningarlykilorðið fyrir umboðið í Spotify virkar ekki, svo við munum leita að því hvernig á að komast í kringum það.

Til að byrja með skulum við muna um umboð. Frábært efni, en það kostar álíka mikið og geimskip ($40). Með þessum peningum getum við aftur keypt aukagjald og verið búin með það. Þess vegna munum við leita að fleiri ókeypis og opnum hliðstæðum á Mac (já, við viljum hlusta á tónlist á Mac). Við skulum uppgötva eitt heilt tól: proximac. Og við förum glaður að pota í hann.

En gleðin verður skammvinn, því það kemur í ljós að þú þarft að virkja villuleitarstillingu og sérsniðnar kjarnaviðbætur í MacOS, skrá einfalda stillingu og skilja að þetta tól hefur nákvæmlega sama vandamál og Spotify: það getur ekki staðist auðkenningu með því að nota innskráningarlykilorð á socks-proxy.

Einhvers staðar hér í kring er kominn tími til að fríka út og kaupa aukagjald... en nei! Reynum að biðja um að það verði lagað, þetta er opinn uppspretta! Gerum það miða. Og sem svar fáum við hjartnæma sögu um hvernig eini viðhaldsaðilinn er ekki lengur með MacBook og til fjandans með það, ekki lagfæringu.

Við verðum aftur í uppnámi. En þá munum við eftir æsku okkar og C, kveikja á villuleitarstillingunni í Dante, grafa í gegnum hundruð kílóbæta af annálum, fara á RFC1927 til að fá upplýsingar um SOCKS5 samskiptareglur skulum við skoða Xcode og finna vandamálið. Það er nóg að leiðrétta einn staf í listanum yfir aðferðakóða sem viðskiptavinurinn býður upp á til auðkenningar og allt fer að virka eins og smurt. Við gleðjumst, við söfnum útgáfutvíundinni, við gerum það draga beiðni og við förum inn í sólsetrið og förum á næsta punkt.

Gerðu það sjálfvirkt

Þegar Proximac virkar þarf að djöflast og gleyma því. Það er eitt heilt frumstillingarkerfi sem hentar fyrir þetta, sem er að finna í MacOS, þ.e hleypt af stokkunum.

Við finnum það fljótt handbók og við skiljum að þetta er alls ekki systemd og hér er það næstum ausa og xml. Engar fínar stillingar fyrir þig, engar eins og skipanir status, restart, daemon-reload. Aðeins harðkjarna tegund start-stop, list-grep, unload-load og margt fleira skrítið. Að sigrast á þessu öllu sem við skrifum plist, hleðsla. Virkar ekki. Við lærum aðferðina við að kemba púkann, kemba hann, skiljum hvað er þar ENV jafnvel PATH við skiluðum ekki venjulegu, við rökræðum, við komum með það inn (bætir við /sbin и /usr/local/bin) og að lokum erum við ánægð með sjálfvirka ræsingu og stöðugan rekstur.

Andaðu frá þér

Hver er niðurstaðan? Ævintýravika, krjúpandi dýragarður frá þjónustu sem er hjartans mál og gerir það sem til hennar er krafist. Smá þekking á vafasömum tæknisviðum, smá opinn uppspretta og bros á vör af hugsuninni „ég gerði það!“

PS: þetta er ekki ákall um að sniðganga fjármagnseigendur, til að spara á eldspýtum eða um algjöra sviksemi, heldur bara vísbendingu um möguleika á rannsóknum og þróun þar sem almennt er ekki von á þeim.

Heimild: www.habr.com

Bæta við athugasemd