
âMa pĂ€risin selle segaduse,
alustades hÀbematud Zello; LinkedIn
ja lÔpetades "kÔikide teistega" Telegrami platvormil
minu maailmas.Ja siis, ĂŒhe Ă”hkjĂ€tmisega,
ametnik lisas kiirustades ja valjusti:
aga ma panen (siin IT-s) kordaâ
(âŠ).
Durov arvab Ă”igesti, et autoritaarsed riigid peaksid kartma teda, krĂŒptopanka, ja Roskomnadzorid koos oma kuldsete kilpidega oma DPI-filtritega ei muretse tema pĂ€rast eriti"
(Poliitiline tehnika)
Minu tehniline poliitika â lihtsam, ma vĂ”iksin siin kirjeldada oma mĂ”tteid hoolimatute blokeeringute kohta Runetis, aga arvan, et progresiivsed kodanikud Modern Venemaalt ja Habr'i kasutajad on oma nahal tundnud praeguse vĂ”imu ebaprofessionaalsust, seega piirdun ainulaadse fraasiga: meie tehniline poliitika â "Digitaalne Vastupanu". "lĂ€himatele ja kallitele usaldusvÀÀrse suhtluskanali tagamine".
MTProto proxy Telegrami seadistamine
- Tehnilise keerukuse tase â "lihtne", kui nĂ€iteks jĂ€rgida antud skripti.
- UsaldusvÀÀrsuse tase â "ĂŒle keskmise": docker-pilt töötab stabiilselt, seda ei pea iga pĂ€ev uuesti kĂ€ivitama, nagu arendajad on oma ametlikus dokumentatsioonis Telegramis kirjutanud, kuid mingid haavatavused konteiner sisaldab kindlasti.
- Vastupanu/turvatunne â 10 igiliikuri tunnistajat sepitsevad oma vandeid "pereliikmed kasutavad", RKN ei ole kunagi blokaadi kĂ€skinud (kevade algusest).
- UsaldusvÀÀrsuse tase â "avalik beebi usaldamatus", probleem on klientide poolel (mĂ”ned sĂ”brad suhtuvad minu MtprotoProxy'sse kahtlusega).
- Testosterooni tase â "rohkem ei tĂ”usnud".
- Finantskulud â "0âœ".
- Finantsiline tasu â "ei sĂ”ltu kodanik Durovist". Auhind â reklaami sundimise vĂ”imalus.
KĂ€ivitame meie TelegramProxy âtasuta/isiklikeâ Amazon-ec2 ressursside peal: t2.micro. Kasutasin seda masinat.
Okei, seadistame oma tasuta server, liigume ametlikule veebilehele dockerhub ja laadime alla docker-konteineri.
Ei pea otsima mingeid pilte, faile vĂ”i imelist nuppu â âneid ei oleâ, kogu maagia toimub CLI-s:
$ docker pull telegrammessenger/proxy #pilt alla laaditud.Aga enne "seda" paigaldage docker CLI jaoks:
sudo apt-get install docker.io dockerEdasi, ametlikus dokumentatsioonis MtprotoProxyTelegram pakuvad nad teha umbes jÀrgmist, teeme:
$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #kÀivitame meie konteineri "mtproto-proxy".
PÀrast seda kÀsku kuvatakse terminali vÀljundis HEX-string, kuid see meid ei huvita.
Kirjuta CLI-s:
$ docker logs mtproto-proxyJa saame vajalikud andmed:

Selle logi vÀljundis nÀidatakse meile (kattisin):
A) meie serveri IP (serveri vÀline IP);
B) ja juhuslik saladus â juhuslik HEX-string.
Enne kui registreerime oma MtproProxy, tuleb seadistada peamine tulemĂŒĂŒr iptables'i kohal (ĂŒkskĂ”ik kuidas te liiklust sellel VPC-l suunate, see ei kuula, kuna peamine tulemĂŒĂŒr Amazon-EC2-s asub web-liideses ja omab kĂ”rgemat prioriteeti iptables'i ĂŒle).
Siseneme âkonsoli Amazon-EC2â turvagrupi ja avame sissetuleva 443 porta (loogiline maskeerimine liiklus esialgu).

VĂ”tame logist meie andmed âip ja saladusâ ja lĂ€heme messengeri Telegram, leiame ametliku MTProxy Admin Boti (@MTProxybot) ja registreerime oma MtproProxy: kĂ€ivitame kĂ€su [\/newproxy] ja sisestame [meie_ip:443], seejĂ€rel ka meie [saladuse\/HEX].
Kui teete andmete sisestamisel vea, siis bott vihastab ja saadab teidâŠ
Kui tÀidate kaks rida ilma vigadeta, saate heakskiidu ja tööloa lingi oma tegevusele MtprotoProxy Telegramis, mida vÔite jagada kellegagi.

Samuti saab selle boti kaudu lisada teie sponsorkanalit (kuid mitte chatti), kus vĂ”ite oma vaateid edastada kasutajatele, kes on teie serveri, vĂ”i siis mitte âspĂ€mmidaâ ning mitte hĂ€irida oma potentsiaalseid kliente, nĂ€itamata kanalit kinnitatud nimekirjas messengeri.
Veel paar sĂ”na botist, seal saab kĂŒsida statistikat, kuid âka see on mĂ”ttetuâ. Tundub, et âstatistikaâ on saadaval, kui teie eest on Makhachkala âparasiitide hulkâ.
JĂ€lgimine
Kui palju kasutajaid saame oma serverisse ĂŒhendada? Ja ĂŒleĂŒldse, kes\/mis seal on? Mida? Ja kui palju?
Vaadake, mis seal ametlikus dokumentatsioonis on⊠Aha, siin on, tehke nii:
$ curl http:\/\/localhost:2398\/stats vĂ”i nii $ docker exec mtproto-proxy curl http:\/\/localhost:2398\/stats # ja me saame statistika otse CLI-s.âHoidke taskut laiemanaâ Pakutud kĂ€skudega saame alati sarnase vea:
«curl: (7) Failed to connect to localhost port 2398: Ăhenduse loomine keelatud»
Meie proxy töötab. Aga! Saame mÔttetu statistika, mitte seda.
Saame tegeleda asjadega punaste silmade jaoks: kontrollida
$ netstat -an | grep 2398 ja...Esmalt arvasin, et see on jÀrjekordne viga Telegrami arendajate poolt (ja ma arvan seda siiani), seejÀrel leidsin ajutise, kuid hea lahenduse: lihvida Docker-konteinerit failiimejaga.
Hiljem leidsin teavet:
Venemaa Riikliku Teabeameti ĂŒmber toimuvate "statistika" ringtantsude kohta.
âOleme blokeerinud oma serverites osa avalikest proksidest, kasutades firehol projekti andmebaase. See projekt jĂ€lgib avalike prokside loendeid ja koostab nendest andmebaasid.
Alates sellest hetkest (ehk juba pea kaks pĂ€eva) ei ole ĂŒhtegi meie Venemaa proksi IP-aadressi blokeeritud.
3. RÀÀgime, kuidas teha peaaegu Roskomnadzori suhtes haavatamatu proksi ja jagame avalike prokside blokeerimise skripti.
â Uuendage docker-konteinerit (vĂ”i MTProto proksi deemonit) viimasele versioonile: RKN mÀÀrab vanad versioonid statistika porti pĂ”hjal, mis seondus 0.0.0.0 ja tuvastas end kogu Internetis. Veelgi parem â avage vajalikud pordid iptables abil, sulgege kĂ”ik ĂŒlejÀÀnud (pidage meeles, et docker-konteineri puhul tuleks kasutada FORWARD reeglit).
â Roskomnadzor on ammu Ă”ppinud liiklust kaevandama: nad nĂ€evad pöördumisi nii HTTP- kui SOCKS5-prokside sees, samuti nĂ€evad nad MTProto proksi vana versiooni obfuskeerimist.
Kui teatud teenusepakkujate kliendid, kellel on sellised kaevandajad, pöördavad Telegrami poole selliste prokside kaudu, siis RKN nÀeb neid pöördumisi ja blokeerib kohe need proksid. Sama kehtib MTProto proksi kohta, kus on vana obfuskeerimine.
Lahendus: andke proksi juurde ĂŒhenduvatele klientidele salajane vĂ”tme alguses dd (tĂ€iendavaid tĂ€hted dd ei pea mtproto proksi seadistustes mÀÀrama). See aktiveerib obfuskeerimise versiooni, mida kaevandajad ei suuda tuvastada.
Ja mitte mingit HTTP- ja SOCKS5-prokside kasutamist.
â Manööverdus, millega iga Telegrami proksi omanik, keda RKN pidevalt blokeerib, saab tĂ€ielikult (vĂ”i peaaegu tĂ€ielikult) blokeeringud lĂ”petada (ja samas veenduda, et RKN valetab).
Skript, mis blokeerib avalikud proksid ja vÀike juhend sellele.»
â Allikas
Meie proksi on lÀÀne suunitlusega, suvise jaheda ilma jooksul ei ole ma mingeid probleeme/ blokeeringuid kogenud, loov ĂŒlesanne ei koormanud ka, seega ma ei viibinud tempot ja dd* prefiksi vĂ”tmele ei lisanud.
Juhend "statistika saamine/monitooring" ametliku MtprotoProxyTelegrami talitluse kohaselt ei tööta/ on vananenud, tuleb docker-pilti parandada.
Parandame.
Konteiner on meil endiselt kÀivitunud:
$ docker stop mtproto-proxy #peatame oma jooksva docker-konteineri ja kÀivitame uue pildi koos puuduva statistika lipuga
$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:\/data -e SECRET=teie_eelmine_salajane_hex telegrammessenger\/proxy:latest
Kontrollime statistikat:
$ curl http:\/\/localhost:2398\/statscurl: (7) Ăhendamine aadressiga 0.0.0.0 port 2398 ebaĂ”nnestus: Ăhendus keelatud
Statistika on endiselt puuduv .!..
Selgitame vÀlja docker-konteineri identifikaatori:
$ docker psKONTEINERI ID PILT KĂSK LOODETUD OLEK PORTID NIMED
f423c209cfdc telegrammessenger\/proxy:latest «\/bin\/sh -c â\/bin\/baâŠÂ» Umbes tund tagasi Jookseb Umbes minut 0.0.0.0:443->443\/tcp mtproto-proxy2
LÀheme oma mÀÀrustega docker-konteinerisse:
$ sudo docker exec -it f423c209cfdc \/bin\/bash
$ apt-get update
$ apt-get install nano
$ nano -$ run.sh
Ja skripti ârun.shâ viimases reas lisame puuduva lipu:
«âhttp-stats»
«exec \/usr\/local\/bin\/mtproto-proxy -p 2398 -H 443 -M «$WORKERS» -C 60000 âaes-pwd \/etc\/telegram\/hello-explorers-how-are-you-doing -u root $CONFIG âallow-skip-d h ânat-info «$INTERNAL_IP:$IP» $SECRET_CMD $TAG_CMD»
Lisage «âhttp-stats», midagi sellist peaks vĂ€lja tulema:
«exec \/usr\/local\/bin\/mtproto-proxy -p 2398 --http-stats -H 443 -M "$WORKERS" -C 60000 --aes-pwd \/etc\/telegram\/hello-explorers-how-are-you-doing -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD»
Ctrl+o/Ctrl+x/Ctrl+d (salvesta/vÀlja nano/st jÔudmine konteinerist).
KĂ€ivitame meie docker-konteineri uuesti:
$ docker restart mtproto-proxy2NĂŒĂŒd, kĂ€su korral:
$ curl http:\/\/localhost:2398\/stats #saame mahuka statistika
Statistikast leidub palju âprĂŒgiâ (kuva 1/3 sellest osast), loome alias:
$ echo "alias telega='curl localhost:2398\/stats | grep -e total_special -e load_average_total'" >> .bashrc && bashSaame seda, mille jaoks polime docker-konteinerit: ĂŒhenduste arv ja koormus:
$ telega
Docker-konteiner töötab, statistika liigub.
Kasutatud ressursid
Isegi kui sa oled Àge Stuart Redman, jÀtad sa oma Ônnetusest jÀlje oma aluspesule. Töötav Docker-pilt jÀtab mÀrkimisvÀÀrse jÀlje.
Docker-piltide eeliste ja puuduste kirjeldamine pole mĂ”tet, docker-konteiner on mini-virtuaalmasin, mis tarbib vĂ€hem ressursse kui âreaalneâ virtuaalmasin, nĂ€iteks VirtualBox, kuid tarbib siiski.
1) Kas see on kĂ€ivitatud statistika docker-pildiga vĂ”i ilman, kaks klienti möllavad vĂ”i kĂŒmme â ressursid utiliseeritakse ~ĂŒhtemoodi: 75% kogu CPU t2.micro jĂ”udlusest.
2) Vaadake VPC-serveri jÀlgimist:

VPC ressursside kasutamise graafikust nÀeme, et docker-konteiner tarbib pidevalt ~7,5% kogu maksimaalsest CPU jÔudlusest ja 28. mail peatati see minu poolt tahtlikult/ajutiselt. (MÀrkus - serveris töötavad ka OpenVPN & pptp).
Miks 10% pidev CPU koormus on selle serveri piir?
Sest Amazon EC2lt on piirangud ja need arvutatakse krediitide pÔhjal:

1 krediit CPU = 1 CPU, mis töötab 100% koormusega ĂŒhe minuti jooksul, ja meil on 6 krediiti (st tipptundadel on 100% CPU kasutus vĂ”imalik 6 minuti jooksul, pĂ€rast seda vĂ€heneb CPU vĂ”imsus). Teised kombinatsioonid: nĂ€iteks 1 krediit CPU = 1 CPU, mis töötab 50% koormusel kahe minuti jooksul (st saame kasutada CPU-d 50% koormusel 12 minuti jooksul) vĂ”i pidev 10% koormus CPU-l kogu aeg jne.
JĂ€reldused
- Me oleme osa âDigitaalsest Vastupanustâ. Oleme taganud oma âemadele ja isadeleâ usaldusvÀÀrse kommunikatsioonikanali.
- Kui serveris on seadistatud MtprotoProxyTelegram ja OpenVPN, kuid mitte rohkem, siis viivitusi/pingeid/ebaĂ”nnestumisi ei esine, kuid kui katsetate pidevalt oma t2/micro-ga, siis oodake ĂŒhenduse aeglustumist.
- Minu ĂŒlemereline ping on ~100-250ms, helikĂ”nes pole viivitusi tunda.
- Finantskulud kogu âselleâ (sealhulgas VPC ressursid) = 0 âœ.
Oma artikli ĂŒmberkirjutamine.
UPD: TÀname mÔningaid Habr-kasutajaid kasulike kommentaaride eest, tÔepoolest, on vÔimalik (statistika toetab?), et on paremad analoogid ametlikust docker-pildist Mtproto proxy Telegrami jaoks.
Allikas: habr.com
