
âMa pĂ€risin selle segaduse,
alustades sĂŒdantlĂ€bi Zello; LinkedIn
ja lĂ”petades âkĂ”ikide teistegaâ Telegrami platvormil
minu maailmas.Ja siis, pÀrast köhitamist,
ametnik kiirustas ja ĂŒtles valjult:
aga ma kehtestan (siin IT-sektoris) kordaâ
(âŠ).
Durov usub Ă”igesti, et autoritaarsetel riikidel on tema, krĂŒptovandeneurite, ees karta, samas kui Roskomnadzorid ja kuldsed kilbid oma DPI-filteritega ei hĂ€iri teda eriti.
(Poliitiline tehnika)
Minu tehniline poliitika â lihtsam, ma vĂ”in siin esitada oma mĂ”tteid hoolimatute blokeeringute kohta Runetis, aga arvan, et progressiivsed elanikud Modern Russia ja Habra kasutajad on kogenud ametivĂ”imude ebaprofessionaalsust, seetĂ”ttu piirdun ainsa lausega: meie tehniline poliitika â âDigitaalne Vastupanuâ. âkohana toimetulekuks, et tagada sugulastele ja lĂ€hedastele stabiilne sideteenusâ.
MTProto proxy Telegrami kÀivitamine
- Tehnilise keerukuse tase â âlihtneâ, kui nĂ€iteks jĂ€rgida seda abivahendit.
- UsaldusvÀÀrsuse tase â "ĂŒle keskmise": docker-pilt töötab stabiilselt, seda ei ole vaja iga pĂ€ev taaskĂ€ivitada, nagu on öeldud arendajate ametlikus Telegrami dokumentatsioonis, kuid mingid haavatavused konteinerit kindlasti sisaldavad.
- Vastupidavuse/tĂ”e tase â 10 ISIL-i liiget punuvad oma vandenĂ”usid "perekond kasutab", RKN-lt pole keeldumist tulnud kunagi kogu aja jooksul (kevade algusest).
- UsaldusvÀÀrsuse tase â "avalik beebi usaldus", probleem on klientide poolel (mĂ”ned sĂ”brad kahtlustavad mu MtprotoProxy-d).
- Testosterooni tase â "ĂŒle ei ole saanud".
- Finantskulud â "0âœ".
- Finantsiline tasu â "ei sĂ”ltu kodanik Durovist". Preemia â vĂ”imalus reklaami pealesurumiseks.
Kavatseme meie TelegramProxy ĂŒles seada "tasuta/isiklikel" Amazon-ec2 ressurssidel: t2.micro. Olen kasutanud seda masinat.
Okei, kÀivitasime oma tasuta server, liigume ametlikule veebilehele dockerhub ja laadime alla docker-konteineri.
Ei ole vaja otsida mingit pilti, faili vĂ”i maagilist nuppu â "neid ei ole", kogu maagia toimub CLI-s:
$ docker pull telegrammessenger/proxy #pilt on alla laaditud.Aga enne "seda" installige docker CLI jaoks:
sudo apt-get install docker.io dockerSeejÀrel soovitatakse ametlikus dokumentatsioonis MtprotoProxyTelegram teha jÀrgmist:
$ 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 huvitagi.
Sisestame CLI:
$ docker logs mtproto-proxyJa saame vajalikud andmed:

Selle logi vÀljundis nÀidatakse meile (tumendatud):
A) meie serveri IP (vÀlispoolne serveri IP);
B) ja juhuslik saladus - juhuslik HEX-string.
Enne kui registreerime meie MtproProxy, tuleb seadistada peamine tulemĂŒĂŒr iptables'i kohal (ĂŒkskĂ”ik, kuidas te ka ei suunaks liiklust selles VPC-s, see jÀÀb sĂ”nakuulmatu, kuna kĂ”ige olulisem tulemĂŒĂŒr Amazon-EC2-s asub veebiliideses ja sellel on kĂ”rgem prioriteet kui iptables'il).
Siseneme âkonsol Amazon-EC2â Security Groupi ja avame siseneva 443 pordi (loogiline maskeerimine liikluse ajaks).

VĂ”tame logist meie andmed âIP ja saladusâ ja lĂ€heneme messengera Telegram, leiame ametlikku MTProxy Admin Boti (@MTProxybot) ja registreerime meie MtproProxy: kĂ€ivitame kĂ€su [/newproxy] ja sisestame [meie_ip:443], seejĂ€rel ka meie [saladus/HEX].
Kui teete andmete sisestamisel viga, siis bot vihastab ja saadab teidâŠ
Kui tÀidate kaks rida ilma vigadeta, saate heakskiidu ja töötava lingi oma aktiivsele MtprotoProxyTelegramile, mida saate jagada kellegagi.

Selle boti kaudu saate lisada oma sponsorluskanali (aga mitte chati), kus te saate oma vaateid kasutajatele, kes on teie kanaliga ĂŒhendatud, peale suruda. serverile, aga vĂ”ite ka mitte "spĂ€mida" ja mitte hĂ€irida oma potentsiaalseid kliente, nĂ€itamata kanali kinnitatud nimekirjas messengeri.
Veel paar sĂ”na botist, seal saab kĂŒsida statistikat, aga "ka see on tĂŒhine". Ilmselt on "statistika" saadaval, kui teid jĂ€lgib Makhatchkala "vĂ”sundite hulk".
JĂ€lgimine
Kui palju kasutajaid saame oma serverisse ĂŒhendada? Ja kes/ mis seal on? Mida? Ja kui palju?
Vaatame, mis on ametlikus dokumentatsioonis⊠Ah, siit see tuleb:
$ curl http://localhost:2398/stats vĂ”i niimoodi $ docker exec mtproto-proxy curl http://localhost:2398/stats # ja anname statistika otse CLI-s.âHoia taskud laiemadâ Pakutud kĂ€skude puhul saame alati sarnase vea:
«curl: (7) Ăhendus localhosti pordiga 2398 ebaĂ”nnestus: Ăhenduses keelduti.»
Meie proksy töötab. Aga! Bublik, mitte statistikat me saame.
VÔib tegeleda asjadega punasilmade jaoks: kontrollida
$ netstat -an | grep 2398 ja...Alguses arvasin, et see on jÀlle Telegrami arendajate viga (ja ma arvan seda endiselt), siis leidsin ajutise, kuid hea lahenduse: lihvida Docker-konteinerit nailoniga.
Hiljem jÀi silma info:
riiklike tantsude kohta Roskomnadzori ĂŒmber "statistika".
"Oleme blokeerinud oma serverites osa avalikku proksyt, kasutades projekti firehol andmeid. See projekt jÀlgib nimekirju avalikest proksidest ja koostab nende baase.
Sellest hetkest (st juba peaaegu kaks pĂ€eva) ei ole ĂŒhegi meie Venemaa proksy IP-aadressi blokeeritud.
3. RÀÀgime, kuidas teha peaaegu haavatamatut Roskomnadzori jaoks proksyt ja jagame avalike prokside blokeerimise skripti.
â Uuendage MTProto proxy docker-konteinerit (vĂ”i teenust) viimasele versioonile: RKN tuvastab vanad versioonid statistika pordi kaudu, mis oli seotud aadressiga 0.0.0.0 ja identifitseeris end kogu Internetis. Veel parem â avage vajalikud pordid iptables'i abil ja sulgege ĂŒlejÀÀnud (peate meeles pidama, et docker-konteineri puhul tuleks kasutada FORWARD reeglit).
â Roskomnadzor on ammu Ă”ppinud liiklust jĂ€lgima: nad nĂ€evad pĂ€ringuid HTTP- ja SOCKS5-prokside kaudu ning nĂ€evad ka vana versiooni MTProto proxy obfuskeeringust.
Kui mÔne proviideri kliendid, kellel on sellised jÀlgimisriistad, pöörduvad Telegrami selliste prokside kaudu, siis RKN nÀeb neid pÀringuid ja loobustab kohe need proksid. Sama kehtib ka MTProto prokside puhul, millel on vana obfuskeering.
Lahendus: andke proksiga ĂŒhenduvad kliendid, saladus, mis algab ddâga (Ă€rge lisage seadistustes tĂ€iendavaid tĂ€hti dd MTProto proksi ise). See aktiveerib obfuskeeringu versiooni, mida jĂ€lgimisriistad ei oska tuvastada.
Ja ei mingeid HTTP- ja SOCKS5-proksisid.
â Meetod, mille abil iga Telegrami-proksi omaniku, kes regulaarselt leidub RKN blokeeringutes, suudab tĂ€ielikult (vĂ”i peaaegu tĂ€ielikult) blokeeringud lĂ”petada (ja veenduda, et RKN valetab).
Skripti, mis blokeerib avalikke proksisid ja vÀike juhend sellele.
â Allikas
Meie proksi on lÀÀne suunaga, ma ei ole kevadel ega jahedatel suvepĂ€evadel mingeid probleeme/ blokeeringuid kohanud, loov ĂŒlesanne ei saanud sellest ka kantud, seega ei kaotanud ma tempot ega lisanud vĂ”ti eesliidet dd*.
Juhend âstatistika saamine/monitooringâ ametliku MtprotoProxyTelegram juhise jĂ€rgi â ei tööta/ on aegunud, tuleb parandada docker-pilt.
Parandame.
Konteiner on meil endiselt kÀimas:
$ docker stop mtproto-proxy #peatame meie kÀimasoleva docker-konteineri ja kÀivitame uue pildi statistikanÀidiku 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) Ăhendumi ebaĂ”nnestumine 0.0.0.0 port 2398: Ăhendus keeldus
Statistika on endiselt kÀttesaamatu .!..
Selgitame vÀlja docker-konteineri ID:
$ docker psKONTROLLER ID PILT KOMANDI LOO NI KESKUS STATU PORTIDE NIMED
f423c209cfdc telegrammessenger/proxy:latest «/bin/sh -c â/bin/baâŠÂ» Umbes tunni tagasi Ăles Umbes minut tagasi 0.0.0.0:443->443/tcp mtproto-proxy2
Tuleme oma reeglitega docker-konteinerisse:
$ sudo docker exec -it f423c209cfdc /bin/bash
$ apt-get update
$ apt-get install nano
$ nano -$ run.sh
Ja skripti «run.sh» kÔige viimasesse ritta 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»
Lisate «â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/vÀlja konteinerist).
TaaskÀivitame meie docker-konteineri:
$ docker restart mtproto-proxy2KĂ”ik, nĂŒĂŒd kĂ€suga:
$ curl http://localhost:2398/stats #saame mahuka statistika
Statistikast leiate palju «prĂŒgi» (ekraanipildil 1/3 sellest), loome alias:
$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bashSaame selle, mille jaoks docker-konteinerit lihvisime: ĂŒhenduste arv ja koormus:
$ telega
Docker-konteiner töötab, statistika jookseb.
Kulutatud ressursid
Mitte kui lahe sa oled, Stewart Redman, isegi sina jĂ€tad oma pĂŒkstes jĂ€lje. Töökindel Docker-pilt jĂ€tab mĂ€rkimisvÀÀrse jĂ€lje.
Docker-piltide eeliste ja puuduste ĂŒleskirjutamine pole mĂ”tet, docker-konteiner on mini-virtuaalmasin, mis tarbib ressursse vĂ€hem kui "pĂ€ris" virtuaalmasin, nĂ€iteks VirtualBox, kuid tarbib siiski.
1) KĂ€ivitatud kas docker-pildi statistika abil vĂ”i ilma, kas kaks klienti hullavad vĂ”i kĂŒmme â ressursse kasutatakse ~ĂŒhtlaselt: 75% kogu t2.micro CPU jĂ”udlusest.
2) Vaatame VPC-serveri monitooringut:

VPC ressursside kasutuse graafikust nĂ€eme, et docker-konteiner tarbib pidevalt ~7,5% kogu maksimum CPU jĂ”udlusest ja 28. mail lĂ”petasin selle tahlikult/ajutiselt. (MĂ€rkus â serveris töötab samamoodi OpenVPN & pptp).
Miks on 10% pidev CPU koormus selle serveri jaoks piiriks?
Kuna Amazon EC2 poolt on piirangud ja need arvutatakse krediitide jÀrgi:

1 CPU kredi = 1 protsessor, mis töötab 100% koormusega ĂŒhe minuti jooksul, ja meil on 6 krediiti (st tippudel on 100% CPU kasutus vĂ”imalik 6 minuti jooksul, pĂ€rast seda vĂ€heneb CPU vĂ”imsus). Muud kombinatsioonid: nĂ€iteks, 1 CPU krediit = 1 protsessor, mis töötab 50% koormusega kahe minuti jooksul (st me saame kasutada CPU-d 50% koormusega 12 minuti jooksul), vĂ”i nĂ€iteks pideva 10% koormusega CPU kogu aja jooksul jne.
JĂ€reldused
- Me oleme âDigitaalne Vastupanuâ. Tagasime oma âisa ja emaâ usaldusvÀÀrse suhtluskanali.
- Kui serveris on paigaldatud MtprotoProxyTelegram ja OpenVPN, kuid mitte rohkem, siis viivitusi/pingeid/rikkeid ei toimu, kuid kui katsetate pidevalt oma t2/mikroga, siis oodake ĂŒhenduse aeglustumist.
- Minu ĂŒlemereline ping ~100-250ms, hÀÀlkĂ”nes ei tunne viivitusi.
- Finantskulud kogu selle âasjaâ eest (sealhulgas VPC ressursid) = 0âœ.
Oma artikli ĂŒmbertrĂŒkk.
UPD: TÀnan mÔningaid Habr kasutajaid kasulike kommentaaride eest, tÔepoolest, vÔib-olla (statistika toetab?), on paremad analoogid ametlikule docker-kiibile Mtproto proxy Telegram.
Allikas: habr.com
