Ontplooi jou MTProxy Telegram met statistieke

Ontplooi jou MTProxy Telegram met statistieke

"Ek het hierdie gemors geërf,
begin met die skaamtelose Zello; LinkedIn
en eindig met "almal anders" op die Telegram-platform
in my wêreld.

En dan hik,
Die amptenaar het haastig en hard bygevoeg:
maar ek sal dinge in orde bring (hier in IT)"
(...).

Durov, glo tereg dat dit outoritêre state is wat vir hom, 'n cypherpunk, moet bang wees en Roskomnadzor en goue skilde met hul DPI-filters pla hom nie regtig nie.
(Politieke tegniek)

My tegniese beleid is eenvoudiger, ek kan my gedagtes oor sorgelose blokkering in Runet hier beskryf, maar ek glo dat die progressiewe burgers van moderne Russiese en Habr-gebruikers die onprofessionaliteit van die huidige regering in hul eie vel gevoel het, so ek sal myself beperk tot 'n enkele frase: ons tegniese beleid is "Digitale Weerstand" . "voorsien familie en vriende van 'n stabiele kommunikasiekanaal."

Ontplooi MTProto-instaanbediener Telegram

  • Die tegniese vlak van kompleksiteit is "maklik", as jy byvoorbeeld hierdie cheat sheet volg.
  • Die betroubaarheidsvlak is "bo-gemiddeld": die docker-beeld werk stabiel, dit hoef nie elke dag herbegin te word nie, soos die ontwikkelaars in hul amptelike Telegram-dokumentasie geskryf het, maar die houer bevat waarskynlik 'n paar kwesbaarhede.
  • Die vlak van weerstand / angs - 10 ISIS-lede weef hul sameswerings "familie gebruik", die verbod het nie eers een keer die hele tyd (sedert die lente) van die RKN af gekom nie.
  • Die vertrouevlak is "public baby wantroue", 'n probleem aan die kliëntkant (sommige vriende is agterdogtig oor my MtprotoProxy).
  • Testosteroonvlakke - "het nie hoër geword nie."
  • Finansiële koste - "0₽".
  • Finansiële beloning - "is nie afhanklik van die burger Durov." Bevordering - die vermoë om advertensies op te lê.

Ons sal ons TelegramProxy verhoog op die "gratis / persoonlike" vermoëns van Amazon-ec2: t2.micro. ek het gebruik hierdie voertuig.

Goed, het jou gratis bediener ontplooi, gaan na die amptelike webwerf dockerhub en laai die docker-houer af.

Jy hoef nie na een of ander prent, lêer of towerknoppie te soek nie - "hulle is nie daar nie", al die towerkrag word in die CLI gedoen:

$ docker pull telegrammessenger/proxy #образ скачан.

Maar voor "dit", installeer docker vir CLI:

sudo apt-get install docker.io docker

Verder, in die amptelike dokumentasie van MtprotoProxyTelegram, word ons aangebied om iets soos die volgende te doen, ons doen:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».

Na hierdie opdrag sal 'n HEX-string in die terminale uitvoer verskyn, maar ons stel nie daarin belang nie.

Ons skryf in CLI:

$ docker logs mtproto-proxy

En ons kry die vereiste data:

Ontplooi jou MTProxy Telegram met statistieke
In die uitvoer van hierdie log word ons gewys (gesmeer):

A) ons bediener ip (eksterne bediener ip);
B) en 'n ewekansige geheim - 'n ewekansige string in HEX.

Voordat u ons MtproProxy registreer, moet u die hoofbrandmuur oor iptables konfigureer (maak nie saak hoe u verkeer na hierdie VPC herlei nie, dit sal stout wees, aangesien die hoofbrandmuur in Amazon-EC2 in die webkoppelvlak geleë is en 'n hoër prioriteit het bo iptables).

Ons gaan na "konsole Amazon-EC2" in die Security Group en maak inkomende poort 443 oop (logiese maskering verkeer vir die eerste keer).

Ontplooi jou MTProxy Telegram met statistieke

Ons neem ons “ip en geheime” data uit die logboek en gaan na die Telegram-boodskapper, vind die amptelike MTProxy Admin Bot (@MTProxybot) en registreer ons Mtproxy: voer die [/newproxy] opdrag uit en voer [our_ip:443] in, en dan ons [geheim /HEX].

As jy mors wanneer jy data invoer, sal die bot kwaad word en jou stuur na ...

As jy twee reëls sonder foute invul, sal jy goedkeuring en 'n werkende skakel na jou huidige MtprotoProxyTelegram ontvang, wat jy met enigiemand kan deel.

Ontplooi jou MTProxy Telegram met statistieke

Ook, deur hierdie bot, kan jy jou borgskapkanaal byvoeg (maar nie 'n klets nie), waar jy jou sienings sal afdwing op gebruikers wat aan jou bediener gekoppel het, of jy kan nie "spam" en nie jou potensiële kliënte pla sonder wys die kanaal in die vasgespelde boodskapperlys.

Nog 'n paar woorde oor die bot, waar jy statistieke kan aanvra, maar "ook 'n doughnut". Blykbaar is "statistieke" beskikbaar wanneer jy "'n skare vrylaaiers" agter jou Makhachkala het.

Monitering

Hoeveel gebruikers kan ons aan ons bediener koppel? En in elk geval, wie / wat is daar? Wat? En hoeveel?

Ons kyk na wat daar is volgens die amptelike dokumentasie ... Ja, hier, doen dit so:

$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.

"Hou jou sak wyer" Volgens die voorgestelde opdragte sal ons altyd 'n soortgelyke fout ontvang:

«krul: (7) Kon nie aan localhost-poort 2398 koppel nie: Verbinding geweier»

Ons proxy sal werk. Maar! Bagel, nie statistieke wat ons kry nie.

Jy kan dinge doen vir die rooi oë: check

$ netstat -an | grep 2398 и...

Eers het ek gedink dat dit nog 'n jamb agter die Telegram-ontwikkelaars was (en ek dink steeds so), toe het ek 'n tydelike goeie oplossing gevind: poleer die Docker Container met 'n lêer.

Later het 'n infa my oog gevang:

oor die staatsdanse van Roskomnadzor rondom "statistiek".

“Ons het sommige van die openbare gevolmagtigdes op ons bedieners geblokkeer deur die databasisse van die firehol-projek te gebruik. Hierdie projek monitor lyste met openbare gevolmagtigdes en maak databasisse daarmee.

Sedert daardie oomblik (dit wil sê, reeds byna twee dae), is nie 'n enkele IP-adres van ons Russiese instaanbediener geblokkeer nie.

3. Ons vertel jou hoe om 'n gevolmagtigde te maak wat amper onkwesbaar is vir Roskomnadzor en 'n skrif deel om openbare gevolmagtigdes te blokkeer.

- Dateer die MTProto proxy docker-houer (of daemon) op na die nuutste weergawe: RKN bereken ou weergawes deur die statistiekpoort, wat aan 0.0.0.0 gebind was en homself uniek vir die hele internet geïdentifiseer het. Beter nog, maak die nodige poorte oop met iptables, en maak die res toe (onthou dat in die geval van 'n dokhouer, jy die FORWARD-reël moet gebruik).

— Roskomnadzor het lank gelede geleer hoe om verkeer te stort: ​​hulle sien versoeke binne HTTP- en SOCKS5-gevolmagtigdes, en hulle sien ook die ou weergawe van MTProto-instaanbedienerverduistering.

Wanneer kliënte van sommige verskaffers wat sulke stortingsterreine het, toegang tot Telegram deur sulke gevolmagtigdes kry, sien die RKN sulke versoeke en blokkeer onmiddellik hierdie gevolmagtigdes. Dieselfde geld vir MTProto-instaanbediener met ou verduistering.

Oplossing: versprei geheim slegs met dd aan die begin aan kliënte wat aan die instaanbediener koppel (nie nodig om bykomende letters dd in die instellings van die mtproto-instaanbediener self te spesifiseer nie). Dit sal 'n weergawe van die verduistering moontlik maak wat dumppiles nie kan opspoor nie.

En geen HTTP- of SOCKS5-gevolmagtigdes nie.

- Aanpassing, met behulp waarvan elke eienaar van 'n telegram-gevolmagtigde, wat gereeld deur die RKN verbied word, heeltemal (of amper heeltemal) kan ophou blokkeer (en terselfdertyd seker maak dat die RKN lieg).

'n Skrip wat openbare gevolmagtigdes verbied en 'n klein handleiding daarvoor.

Bron

Ons gevolmagtigde is pro-Westers, ek het geen probleme / blokkasies teëgekom gedurende lente en koel somerdae nie, dit het ook nie 'n kreatiewe taak gelok nie, so ek het nie pas verloor nie en nie die dd*-voorvoegsel by gevoeg nie die sleutel.

Die handleiding "kry statistieke/monitering" volgens die amptelike instruksies van MtprotoProxyTelegram werk nie/verouderd nie, jy sal die docker-beeld moet herstel.

Ons maak dit reg.

Die houer loop nog:

$ docker stop mtproto-proxy #останавливаем наш запущенный docker-контейнер и запускаем новый образ с пропущенным флагом статистики

$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=ваш_предыдущий_секрет_hex telegrammessenger/proxy:latest

Kom ons kyk na die statistieke:

$ curl http://localhost:2398/stats

krul: (7) Kon nie aan 0.0.0.0-poort 2398 koppel nie: Verbinding geweier
Statistieke is nog nie beskikbaar nie.!...

Vind uit die ID van die docker-houer:

$ docker ps

HOUER-ID BEELDOPDRAG GESKEEP STATUSPOORTNAME
f423c209cfdc telegrammessenger/proxy:nuutste "/bin/sh -c '/bin/ba…" Ongeveer 'n uur gelede Op Ongeveer 'n minuut 0.0.0.0:443->443/tcp mtproto-proxy2

Ons gaan met ons handves in die docker-houer:

$ sudo docker exec -it f423c209cfdc /bin/bash

$ apt-get update
$ apt-get install nano
$ nano -$ run.sh

En in die heel laaste reël van die "run.sh"-skrif, voeg die ontbrekende vlag by:

«--http-statistieke»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-hoe-gaan-jou-doen -u root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Voeg "--http-stats" by, iets soos hierdie behoort te werk:

«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 (stoor/verlaat nano/verlaat houer).

Herbegin ons docker-houer:

$ docker restart mtproto-proxy2

Alles, nou op bevel:

$ curl http://localhost:2398/stats #получаем объемную статистику

Ontplooi jou MTProxy Telegram met statistieke
Daar is baie "rommel" in die statistieke (1/3 daarvan is op die skerm), skep 'n alias:

$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash

Ons kry waarvoor die dokhouer gepoleer is: die aantal verbindings en die vrag:

$ telega

Ontplooi jou MTProxy Telegram met statistieke
Die Docker-houer loop, die statistieke draai.

Hulpbronne bestee

So cool soos jy is, Stuart Redman, selfs jy laat 'n merk op jou onderbroek. 'n Hardloop Docker-beeld laat 'n groot voetspoor.

Dit maak geen sin om die voordele en nadele van docker-beelde te beskryf nie, 'n docker-houer is 'n mini-virtuele masjien wat minder hulpbronne verbruik as 'n "regte" virtuele masjien, soos VirtualBox, maar dit doen dit.

1) Geloods met of sonder docker-image statistieke, twee kliënte baljaar of tien - hulpbronne word gebruik ~ dieselfde manier: 75% van die hele CPU t2.micro werkverrigting.

2) Ons kyk na die monitering van die VPC-bediener:

Ontplooi jou MTProxy Telegram met statistieke

Uit die hulpbronbenuttingsgrafiek op die VPC sien ons dat die dokhouer konstant ~ 7,5% van die totale maksimum verbruik. SVE werkverrigting en op 28 Mei is opsetlik/tydelik deur my gestop (Let wel - OpenVPN & pptp loop ook op die bediener).

Waarom is 10% konstante SVE-gebruik die limiet vir hierdie bediener?

Omdat daar beperkings van Amazon EC2 is en dit in krediete bereken word:

Ontplooi jou MTProxy Telegram met statistieke

1 SVE-krediet = 1 SVE wat vir een minuut teen 100% las werk, en ons het 6 krediete (dit wil sê, by pieke is 100% SVE-benutting moontlik binne 6 minute, en dan sal die SVE-krag afneem). Ander kombinasies: byvoorbeeld, 1 SVE-krediet = 1 SVE wat vir twee minute teen 50%-lading werk (d.w.s. ons kan die SVE vir 50 minute teen 12%-lading gebruik), of, byvoorbeeld, 'n konstante 10%-ste SVE-lading tydens die hele tyd, ens.

Bevindinge

  • Ons is deel van die "Digitale Weerstand". Hulle "pa's en moeders" voorsien van 'n betroubare kommunikasiekanaal.
  • As jy MtprotoProxyTelegram en OpenVPN op die bediener ontplooi het, maar nie meer nie, sal daar geen vertragings / pings / mislukkings wees nie, maar as jy voortdurend met jou t2 / mikro eksperimenteer, wag dan vir kommunikasieremme.
  • My oorsese ping is ~100-250ms, daar is geen vertragings in stemkommunikasie nie.
  • Finansiële koste vir dit alles (insluitend VPC-hulpbronne) = 0₽.

Herdruk van jou artikel.

UPD: Danksy sommige misbruikers vir nuttige kommentaar, is dit inderdaad moontlik (word die statistieke ondersteun?), Daar is beter analoë van die amptelike Mtproto-instaanbediener Telegram docker-beeld.

Bron: will.com

Voeg 'n opmerking