Bii Spotify ṣe le ṣe iranlọwọ fun ọ lati ka awọn daemons, RFCs, awọn nẹtiwọọki ati igbega orisun ṣiṣi. Tabi ohun ti o ṣẹlẹ ti o ko ba le sanwo, ṣugbọn o fẹ gaan diẹ ninu awọn ẹbun Ere.
Начало
Ni ọjọ kẹta, o ṣe akiyesi pe Spotify n ṣe afihan awọn ipolowo ti o da lori orilẹ-ede ti adiresi IP naa. Wọ́n tún ṣàkíyèsí pé láwọn orílẹ̀-èdè kan, a kì í kó ìpolówó ọjà wọlé rárá. Fun apẹẹrẹ, ni Republic of Belarus. Ati lẹhinna ero “o wuyi” ti wa ni gige lati mu ipolowo kuro ni akọọlẹ ti kii ṣe Ere.
Diẹ diẹ nipa Spotify
Ni gbogbogbo, Spotify ni eto imulo ajeji. Arakunrin wa ni lati ni ayidayida lẹwa lati ra Ere: yi ipo pada ni profaili rẹ si okeokun, wa kaadi ẹbun ti o dara ti o le san nikan fun PayPal, eyiti o n ṣe iyalẹnu laipẹ ati pe o fẹ ọpọlọpọ awọn iwe aṣẹ. Ni gbogbogbo, o tun jẹ ìrìn, ṣugbọn ti aṣẹ ti o yatọ. Botilẹjẹpe ọpọlọpọ eniyan ṣe eyi nitori ẹya alagbeka, Emi ko nifẹ ninu rẹ. Nitorinaa, ohun gbogbo ti o wa ni isalẹ yoo ṣe iranlọwọ nikan ni ọran ti ẹya tabili tabili. Jubẹlọ, nibẹ ni yio je ko si imugboroosi ti awọn iṣẹ. O kan gige diẹ ninu awọn afikun.
Kilode ti o jẹ idiju?
Ati pe Mo ro bẹ nigbati o forukọsilẹ awọn ibọsẹ-aṣoju data ninu atunto Spotify. Iṣoro naa ti jade lati jẹ pe ijẹrisi ni awọn ibọsẹ nipa lilo iwọle ati ọrọ igbaniwọle ko ṣiṣẹ. Pẹlupẹlu, awọn olupilẹṣẹ nigbagbogbo n ṣe nkan ni ayika aṣoju: boya gbigba laaye, lẹhinna ni idinamọ, tabi fifọ, eyiti o fun ni dide si gbogbo awọn panẹli ti awọn ijiroro lori aaye ita.
O ti pinnu lati ma gbẹkẹle awọn iṣẹ riru ati lati wa nkan diẹ ti o gbẹkẹle ati ti o nifẹ.
Ibikan nibi oluka gbọdọ beere: kilode ti o ko gba ssh
pẹlu bọtini kan -D
ati pe iyẹn ni ipari rẹ? Ati, ni gbogbogbo, oun yoo jẹ ẹtọ. Ṣugbọn, ni akọkọ, eyi tun nilo lati jẹ ẹmi-eṣu ati ṣe awọn ọrẹ pẹlu autossh, ki o má ba ronu nipa awọn asopọ ti o ya. Ati keji: o rọrun pupọ ati alaidun.
Ni eto
Gẹgẹbi igbagbogbo, jẹ ki a lọ lati osi si otun, oke si isalẹ ki a ṣe apejuwe ohun gbogbo ti a nilo lati ṣe imuse ero “rọrun” wa.
Ni akọkọ o nilo aṣoju kan
Ati pe ọpọlọpọ awọn ọna yiyan wa ni ẹẹkan:
- o le kan lọ mu lati awọn atokọ aṣoju ṣiṣi. Olowo poku (tabi dipo fun ohunkohun), ṣugbọn ko ni igbẹkẹle rara ati igbesi aye iru awọn aṣoju bẹẹ duro si odo. Nitorinaa, yoo jẹ pataki lati wa / kọ parser fun awọn atokọ aṣoju, ṣe àlẹmọ wọn nipasẹ iru ti o fẹ ati orilẹ-ede, ati ibeere ti aropo aṣoju ti o rii ni Spotify wa ni sisi (daradara, boya nipasẹ
HTTP_PROXY
gbe ati ṣẹda apẹrẹ aṣa fun alakomeji ki gbogbo awọn ijabọ miiran ko firanṣẹ sibẹ). - O le ra aṣoju ti o jọra ati fi ara rẹ pamọ lati ọpọlọpọ awọn iṣoro ti a ṣalaye loke. Ṣugbọn ni idiyele aṣoju kan, o le ra Ere lẹsẹkẹsẹ lori Spotify, ati pe eyi ko wulo fun iṣẹ-ṣiṣe atilẹba.
- Gbe tirẹ ga. Bi o ṣe le sọ, eyi ni yiyan wa.
Nitootọ nipasẹ aye o le tan pe o ni ọrẹ kan pẹlu olupin ni Orilẹ-ede Belarus tabi orilẹ-ede kekere miiran. O nilo lati lo eyi ki o yi aṣoju ti o fẹ jade lori rẹ. Awọn olutọpa pataki le ni akoonu pẹlu ọrẹ kan pẹlu olulana lori
Nitorinaa, awọn aṣayan wa: Squid - kii ṣe iwunilori, ati pe Emi ko fẹ aṣoju HTTP, ọpọlọpọ ti ilana yii ti wa ni ayika. Ati ni agbegbe awọn SOCKS ko si ohun ti o ni oye ayafi
Maṣe duro fun itọnisọna Dante lori fifi sori ẹrọ ati tunto. Oun client pass
, socks pass
, forukọsilẹ awọn atọkun tọ ati maṣe gbagbe lati ṣafikun socksmethod: username
. Ni fọọmu yii, fun ijẹrisi, aami-iwọle yoo gba lati ọdọ awọn olumulo eto. Ati apakan nipa aabo: idinamọ iwọle si localhost, diwọn awọn olumulo, ati bẹbẹ lọ - eyi jẹ ẹni kọọkan, da lori paranoia ti ara ẹni.
Ranṣẹ aṣoju ti nkọju si nẹtiwọki
Ere naa wa ni awọn iṣe meji.
Ṣiṣe ọkan
A ti ṣeto aṣoju naa, ni bayi a nilo lati wọle si lati oju opo wẹẹbu agbaye. Ti o ba ni ẹrọ pẹlu IP funfun ni orilẹ-ede ti o fẹ, lẹhinna o le foju aaye yii lailewu. A ko ni ọkan (a, bi a ti sọ loke, ti gbalejo ni awọn ile awọn ọrẹ) ati IP funfun ti o sunmọ wa ni ibikan ni Germany, nitorina a yoo ṣe iwadi awọn nẹtiwọki.
Nitorinaa bẹẹni, oluka akiyesi yoo tun beere: kilode ti o ko gba iṣẹ ti o wa tẹlẹ bii
Iṣẹ-ṣiṣe: aṣoju wa ni ibikan ti o jinna lẹhin NAT, o nilo lati gbele lori ọkan ninu awọn ebute oko oju omi ti VPS ti o ni IP funfun kan ati pe o wa ni eti agbaye.
O jẹ ohun ọgbọn lati ro pe eyi le ṣee yanju boya nipasẹ gbigbe ibudo (eyiti o jẹ imuse nipasẹ eyiti a mẹnuba loke ssh
), tabi nipa apapọ hardware sinu nẹtiwọki foju nipasẹ VPN. PẸLU ssh
a mọ bi a ṣe le ṣiṣẹ, autossh
O jẹ alaidun lati mu, nitorinaa jẹ ki a mu OpenVPN.
DigitalOcean ni systemd
. Kan fi sii (konfigi) sinu /etc/openvpn/client/
maṣe gbagbe lati yi itẹsiwaju pada si .conf
. Lẹhin iyẹn, fa iṣẹ naa [email protected]
maṣe gbagbe lati ṣe fun u enable
si yọ pe ohun gbogbo fò lọ.
Nitoribẹẹ, a nilo lati mu eyikeyi atunṣe ti ijabọ si VPN tuntun ti a ṣẹda, nitori a ko fẹ lati dinku iyara lori ẹrọ alabara nipasẹ gbigbe ijabọ nipasẹ idaji rogodo kan.
Ati bẹẹni, a nilo lati forukọsilẹ adiresi IP aimi kan lori olupin VPN fun alabara wa. Eyi yoo nilo diẹ diẹ ninu itan naa. Lati ṣe eyi o nilo lati mu ṣiṣẹ ifconfig-pool-persist
, satunkọ ipp.txt
, to wa pẹlu OpenVPN ki o si mu client-konfigi-dir ṣiṣẹ, pẹlu satunkọ atunto ti alabara ti o fẹ nipa fifi kun ifconfig-push
pẹlu iboju to tọ ati adiresi IP ti o fẹ.
Ṣiṣe meji
Bayi a ni ẹrọ kan lori “nẹtiwọọki” ti o dojukọ Intanẹẹti ati pe a le lo fun awọn idi amotaraeninikan. Eyun, àtúnjúwe apa ti awọn ijabọ nipasẹ o.
Nitorinaa, iṣẹ-ṣiṣe tuntun: o nilo lati pa ijabọ ti o de ni ọkan ninu awọn ebute oko oju omi VPS pẹlu IP funfun kan ki ijabọ yii lọ si nẹtiwọọki foju tuntun ti a ti sopọ ati idahun le pada lati ibẹ.
Solusan: dajudaju iptables
! Nigba miiran iwọ yoo ni iru anfaani agbayanu bẹẹ lati ṣe adaṣe pẹlu rẹ?
Iṣeto ti a beere ni a le rii ni kiakia, ni awọn wakati mẹta, ọgọrun awọn ọrọ bura ati ọwọ diẹ ti awọn ara ti o padanu, nitori awọn nẹtiwọki n ṣatunṣe aṣiṣe jẹ ilana pataki kan.
Ni akọkọ, o nilo lati mu atunṣe ijabọ ṣiṣẹ ni ekuro. Nkan yi ni a npe ni ipv4.ip_forward
ati pe o ṣiṣẹ ni iyatọ diẹ ti o da lori OS ati oluṣakoso nẹtiwọki.
Ni ẹẹkeji, o nilo lati yan ibudo kan lori VPS ki o fi ipari si gbogbo ijabọ ti n lọ si inu subnet foju kan. Eyi le ṣee ṣe, fun apẹẹrẹ, bii eyi:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 10.8.0.2:8080
Nibi a ṣe atunṣe gbogbo ijabọ TCP ti nbọ si ibudo 8080 ti wiwo ita si ẹrọ pẹlu IP 10.8.0.2 ati ibudo 8080 kanna.
Fun awọn ti o fẹ awọn alaye idọti ti iṣẹ naa netfilter
, iptables
ati afisona ni apapọ, o jẹ Egba pataki lati ronú
Nitorinaa, ni bayi awọn apo-iwe wa fo si subnet foju ati… wọn duro sibẹ. Ni deede diẹ sii, idahun lati awọn aṣoju ibọsẹ n fo pada nipasẹ ẹnu-ọna aiyipada lori ẹrọ pẹlu Dante ati olugba silẹ, nitori ninu awọn nẹtiwọọki kii ṣe aṣa lati firanṣẹ ibeere kan si IP kan ati gba esi lati ọdọ miiran. Nitoribẹẹ, a nilo lati tẹsiwaju lati ṣagbe.
Nitorinaa, ni bayi o nilo lati darí gbogbo awọn apo-iwe lati aṣoju pada si subnet foju si VPS pẹlu IP funfun kan. Nibi ipo naa buru diẹ, nitori pe o kan iptables
a ko ni ni to, nitori ti a ba ṣe atunṣe adirẹsi ibi-ajo ṣaaju lilọ kiri (PREROUTING
), lẹhinna package wa kii yoo fo si Intanẹẹti, ati pe ti a ko ba ṣatunṣe rẹ, package yoo lọ si default gateway
. Nitorina, o nilo lati ṣe awọn atẹle: ranti pq mangle
, ni ibere lati samisi awọn apo-iwe nipasẹ iptables
ki o si fi ipari si wọn ni tabili ipa ọna aṣa ti yoo firanṣẹ wọn si ibiti wọn yoo lọ.
Ki a to Wi ki a to so:
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
A gba ijabọ ti njade, samisi ohun gbogbo ti o fo lati ibudo lori eyiti aṣoju joko (8080 ninu ọran wa), ṣe atunṣe gbogbo awọn ijabọ ti o samisi si tabili itọnisọna pẹlu nọmba 80 (ni gbogbogbo, nọmba naa ko dale lori ohunkohun, a kan fẹ to) and add a single law , ni ibamu si eyiti gbogbo awọn apo-iwe ti o wa ninu tabili yii fo si subnet VPN.
Nla! Bayi awọn apo-iwe fò pada si ọna VPS… ki o ku sibẹ. Nitori VPS ko mọ kini lati ṣe pẹlu wọn. Nitorinaa, ti o ko ba yọ ara rẹ lẹnu, o le nirọrun darí gbogbo awọn ijabọ ti o de lati inu subnet foju pada si Intanẹẹti:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 172.42.1.10
Nibi, ohun gbogbo ti o de lati 10.8.0.0 subnet pẹlu iboju-boju ti 255.255.255.000 ti wa ni ti a we ni orisun-NAT o si fo si awọn aiyipada ni wiwo, eyi ti o ti wa ni tan-si awọn ayelujara. O ṣe pataki lati ṣe akiyesi pe nkan yii yoo ṣiṣẹ nikan ti a ba firanṣẹ siwaju ibudo ni gbangba, iyẹn ni, ibudo ti nwọle lori VPS baamu ibudo ti aṣoju wa. Bibẹẹkọ iwọ yoo ni lati jiya diẹ diẹ sii.
Ibikan ni bayi ohun gbogbo yẹ ki o bẹrẹ ṣiṣẹ. Ati pe o ku diẹ: maṣe gbagbe lati rii daju pe gbogbo awọn atunto iptables
и route
ko tẹsiwaju lẹhin atunbere. Fun iptables
awọn faili pataki wa bi /etc/iptables/rules.v4
(ninu ọran ti Ubuntu), ṣugbọn fun awọn ipa ọna ohun gbogbo jẹ diẹ idiju diẹ sii. Mo tì wọn sinu up/down
Ṣii awọn iwe afọwọkọ VPN, botilẹjẹpe Mo ro pe wọn le ti ṣe diẹ sii daradara.
Fi ipari si ijabọ lati ohun elo ni aṣoju
Nitorinaa, a ni aṣoju pẹlu ijẹrisi ni orilẹ-ede ti o fẹ, wiwọle nipasẹ adiresi IP funfun aimi kan. Gbogbo awọn ti o ku ni lati lo o ati ki o àtúnjúwe ijabọ lati Spotify nibẹ. Ṣugbọn nuance kan wa, bi a ti sọ loke, ọrọ igbaniwọle-iwọle fun aṣoju ni Spotify ko ṣiṣẹ, nitorinaa a yoo wa bii o ṣe le wa ni ayika rẹ.
Lati bẹrẹ pẹlu, jẹ ki a ranti nipa
Ṣugbọn ayọ naa yoo jẹ igba diẹ, nitori pe o nilo lati mu ipo yokokoro ṣiṣẹ ati awọn amugbooro ekuro aṣa ni MacOS, faili atunto kan ki o loye pe ọpa yii ni iṣoro kanna bi Spotify: ko le ṣe ijẹrisi nipa lilo wiwọle-ọrọigbaniwọle lori ibọsẹ-aṣoju.
Ibikan ni ayika nibi o to akoko lati ja ati ra Ere kan ... ṣugbọn rara! Jẹ ká gbiyanju lati beere fun o lati wa ni titunse, o ni ìmọ orisun! Jẹ ká ṣe
A yoo tun binu lẹẹkansi. Ṣugbọn lẹhinna a yoo ranti ọdọ wa ati C, tan-an ipo yokokoro ni Dante, ma wà nipasẹ awọn ọgọọgọrun kilobytes ti awọn igi, lọ si
Ṣe adaṣe rẹ
Ni kete ti Proximac ṣiṣẹ, o nilo lati jẹ ẹmi-eṣu ati gbagbe nipa. Odidi eto ipilẹṣẹ kan wa ti o dara fun eyi, eyiti o rii ni MacOS, eyun
A ri ni kiakia systemd
ati ki o nibi o jẹ fere ofofo ati xml
. Ko si awọn atunto ti o wuyi fun ọ, ko si awọn aṣẹ bii status
, restart
, daemon-reload
. Nikan ogbontarigi irú start-stop
, list-grep
, unload-load
ati ọpọlọpọ awọn siwaju sii oddities. Bibori gbogbo eyi a kọ plist
, ikojọpọ. Ko ṣiṣẹ. A ṣe iwadi ọna ti n ṣatunṣe aṣiṣe ẹmi èṣu, ṣatunṣe rẹ, loye ohun ti o wa ENV
даже PATH
a ko gba eyi ti o ṣe deede, a jiyan, a mu wa wọle (afikun /sbin
и /usr/local/bin
) ati nikẹhin a ni inudidun pẹlu autostart ati iṣẹ iduroṣinṣin.
Mu jade
Kini abajade? Ọsẹ kan ti ìrìn, zoo kan kunlẹ lati awọn iṣẹ ti o jẹ ọwọn si ọkan ati ṣe ohun ti o nilo rẹ. Imọ diẹ ni awọn agbegbe imọ-ẹrọ ṣiyemeji, orisun ṣiṣi ati ẹrin lori oju rẹ lati inu ero “Mo ṣe!”
PS: eyi kii ṣe ipe fun boycott ti awọn kapitalisimu, fun fifipamọ lori awọn ere-kere tabi fun ẹtan lapapọ, ṣugbọn o kan itọkasi awọn iṣeeṣe ti iwadii ati idagbasoke nibiti, ni gbogbogbo, iwọ ko nireti wọn.
orisun: www.habr.com