Ynsette jo MTProxy Telegram mei statistiken

Ynsette jo MTProxy Telegram mei statistiken

"Ik erfde dizze rommel,
begjinnend mei de skamteleaze Zello; LinkedIn
en einigje mei "alle oaren" op it Telegram-platfoarm
yn myn wrâld.

En dan, hikke,
de amtner tafoege hastich en lûd:
mar ik sil dingen (hjir yn IT) op oarder sette."
(...).

Durov is terjochte fan betinken dat it autoritêre steaten binne dy't bang foar him moatte wêze, de cypherpunk, en Roskomnadzor en gouden skylden mei har DPI-filters dogge him net echt lestich.
(Polityke technyk)

Myn technysk belied is ienfâldiger, ik kin hjir myn gedachten beskriuwe oer achtleaze blokkearjen yn RuNet, mar ik leau dat de progressive boargers fan moderne Russyske en Habr-brûkers it ûnprofesjonalisme fan 'e hjoeddeistige regearing út 'e earste hân fiele, dus ik sil my beheine ta in single phrase: ús technyske belied is "Digital Resistance" . "Famyljen en freonen in stabyl kommunikaasjekanaal leverje."

Ynset fan MTProto proxy Telegram

  • It technyske nivo fan muoite is "net dreech" as jo bygelyks dizze cheat sheet folgje.
  • It betrouberensnivo is "boppegemiddeld": it dockerôfbylding wurket stabyl, it hoecht net elke dei opnij te begjinnen, lykas de ûntwikkelders skreaun hawwe yn har offisjele Telegram-dokumintaasje, mar de kontener befettet wierskynlik wat kwetsberens.
  • Nivo fan ferset / eangst - 10 ISIS-leden weve har gearspanningen "sibben profitearje fan", it ferbod is net ien kear yn al dizze tiid (sûnt maitiid) fan 'e RKN oankommen.
  • It fertrouwen nivo is "iepenbiere baby wantrouwen", it probleem is oan de kliïnt kant (guon freonen binne fertocht fan myn MtprotoProxy).
  • Testosteronnivo's "kamen net heger."
  • Finansjele kosten - "0₽".
  • Finansjele beleanning "hinget net ôf fan boarger Durov." Promoasje is de mooglikheid om reklame op te lizzen.

Wy sille ús TelegramProxy bouwe mei de "fergees / persoanlike" kapasiteiten fan Amazon-ec2: t2.micro. ik brûkte dit auto.

Okee, wy hawwe ús fergese server ynset, litte wy nei de offisjele webside gean dockerhub en download de docker-kontener.

D'r is net nedich om te sykjen nei wat ôfbylding, bestân of magyske knop - "se besteane net", alle magy wurdt dien yn 'e CLI:

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

Mar foardat "dat", ynstallearje docker foar de CLI:

sudo apt-get install docker.io docker

Fierder, yn 'e offisjele dokumintaasje fan MtprotoProxyTelegram wurde wy frege om sawat it folgjende te dwaan, wy dogge:

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

Nei dit kommando sil in HEX-string ferskine yn 'e terminalútfier, mar wy binne der net ynteressearre yn.

Wy skriuwe yn 'e CLI:

$ docker logs mtproto-proxy

En wy krije de nedige gegevens:

Ynsette jo MTProxy Telegram mei statistiken
Yn 'e útfier fan dit log wurde wy toand (swart út):

A) ús tsjinner IP (eksterne tsjinner IP);
B) en in willekeurich geheim - in willekeurige tekenrige yn HEX.

Foardat jo ús MtproProxy registrearje, moatte jo de haadfirewall oer iptables konfigurearje (nettsjinsteande hoe't jo ferkear op dizze VPC trochferwize, it sil ûnrêstich wêze, om't de wichtichste firewall yn Amazon-EC2 yn 'e webynterface leit en in hegere prioriteit hat oer iptables).

litte wy nei"konsole Amazon-EC2" yn 'e Feiligensgroep en iepenje ynkommende poarte 443 (logyske maskering ferkear foar de earste kear).

Ynsette jo MTProxy Telegram mei statistiken

Wy nimme ús "ip en geheime" gegevens út it log en gean nei de Telegram messenger, fine de offisjele MTProxy Admin Bot (@MTProxybot) en registrearje ús Mtproxy: fier it kommando [/ newproxy] en fier [our_ip:443], en dan ús [geheim / HEX].

As jo ​​​​fergriemje by it ynfieren fan gegevens, sil de bot lilk wurde en jo stjoere nei ...

As jo ​​twa rigels sûnder flaters ynfolje, krije jo goedkarring en in wurkjende keppeling nei jo hjoeddeistige MtprotoProxyTelegram, dy't jo mei elkenien diele kinne.

Ynsette jo MTProxy Telegram mei statistiken

Ek kinne jo fia dizze bot jo sponsorkanaal tafoegje (mar net in petear), wêr't jo jo werjeften sille oplizze oan brûkers dy't ferbûn binne mei jo server, en jo kinne "spamming" foarkomme en jo potensjele kliïnten net hinderje troch net te sjen it kanaal yn 'e pinned messenger list.

In pear mear wurden oer de bot, jo kinne dêr statistiken oanfreegje, mar "it is ek in donut." Blykber binne "statistiken" beskikber as d'r in "folk fan parasiten" efter jo is yn Makhachkala.

Monitoring

Hoefolle brûkers kinne wy ​​ferbine mei ús server? En hoe dan ek, wa/wat is dêr? Wat? En hoefolle?

Litte wy sjen wat der is neffens de offisjele dokumintaasje... Ja, litte wy it sa dwaan:

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

"Hâld jo bûse breder" Mei help fan de foarstelde kommando's sille wy altyd in ferlykbere flater krije:

«curl: (7) Mislearre te ferbinen mei localhost haven 2398: Ferbining wegere»

Us proxy sil wurkje. Mar! Wy krije in bagel, gjin statistiken.

Jo kinne dingen dwaan foar minsken mei reade eagen: kontrolearje

$ netstat -an | grep 2398 и...

Earst tocht ik dat dit in oar probleem wie mei de Telegram-ûntwikkelders (en ik tink it noch altyd), doe fûn ik in goede tydlike oplossing: de Docker Container poetsen mei in bestân.

Letter foel dizze ynformaasje myn each:

oer de steat dûnsen fan Roskomnadzor om "statistyk".

"Wy blokkeare guon iepenbiere proxy's op ús servers mei de databases fan it firehol-projekt. Dit projekt kontrolearret listen mei iepenbiere folmacht en makket dêr databases mei.

Fan dat momint ôf (dat is hast twa dagen lang) is gjin inkeld IP-adres fan ús Russyske proxy blokkearre.

3. Wy fertelle jo hoe't jo in proxy meitsje dy't hast net kwetsber is foar Roskomnadzor en diele in skript foar it blokkearjen fan iepenbiere proxy's.

- Update de docker-kontener (as daemon) MTProto-proxy nei de lêste ferzje: RKN berekkent âlde ferzjes mei de statistykpoarte, dy't bûn wie oan 0.0.0.0 en himsels unyk identifisearre foar it heule ynternet. Better noch, iepenje de fereaske havens mei iptables, en slute de rest (ûnthâld dat jo yn it gefal fan in docker-kontener de FORWARD-regel moatte brûke).

- Roskomnadzor hat lang leard om ferkear te dumpen: se sjogge fersiken binnen HTTP- en SOCKS5-proxies, en sjogge ek de âlde ferzje fan MTProto-proxy-obfuscation.

As kliïnten fan guon oanbieders dy't sokke dumps hawwe ynstalleare tagong Telegram fia sokke proxy's, sjocht RKN sokke oanfragen en blokkearret dizze proxy's fuortendaliks. Itselde jildt foar MTProto proxy mei âlde obfuscation.

Oplossing: jou kliïnten dy't ferbine mei de proxy in geheim mei allinich dd oan it begjin (net nedich om ekstra dd-letters op te jaan yn 'e ynstellings fan' e mtproto proxy sels). Dit sil in ferzje fan obfuscaasje ynskeakelje dy't dumps net kinne ûntdekke.

En gjin HTTP- of SOCKS5-proxies.

- In tweak wêrmei't elke eigner fan in Telegram-proxy dy't geregeldwei ferbean wurdt troch RKN folslein (of hast folslein) kin stopje mei blokkearjen (en tagelyk soargje dat RKN liedt).

In skript dat iepenbiere folmacht ferbiedt en in lyts hantlieding dêrfoar."

Boarne

Us proxy is pro-westersk, ik bin yn 'e maitiid en koele simmerdagen gjin problemen/blokkades tsjinkommen, it liende him ek net foar in kreatyf probleem, dus ik gie net mei it tempoferlies en die t foegje it dd* foarheaksel ta oan de kaai.

De hantlieding "it krijen fan statistiken / tafersjoch" neffens de offisjele ynstruksjes fan MtprotoProxyTelegram wurket net / ferâldere, jo moatte de dockerôfbylding reparearje.

Wy reparearje it.

Wy hawwe de kontener noch rinnend:

$ 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

Litte wy de statistiken kontrolearje:

$ curl http://localhost:2398/stats

curl: (7) Mislearre te ferbinen mei 0.0.0.0 haven 2398: Ferbining wegere
Statistiken binne noch net beskikber.!..

Fyn de ID fan 'e docker-kontener:

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTEN NAMES
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba..." Sawat in oere lyn Up Sawat in minút 0.0.0.0:443->443/tcp mtproto-proxy2

Litte wy gean mei ús hânfêst yn 'e docker-kontener:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

En yn 'e lêste rigel fan it "run.sh" skript foegje wy de ûntbrekkende flagge ta:

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

Foegje "—http-stats" ta, sokssawat soe der sa útsjen moatte:

«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 (bewarje/ôfslute nano/container ôfslute).

Wy starte ús dockerkontainer opnij:

$ docker restart mtproto-proxy2

Dat is it, no op kommando:

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

Ynsette jo MTProxy Telegram mei statistiken
D'r is in protte "garbage" yn 'e statistiken (1/3 dêrfan is op' e skermôfbylding), meitsje in alias:

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

Wy krije wêr't wy de dockercontainer foar gepolijst hawwe: it oantal ferbiningen en lading:

$ telega

Ynsette jo MTProxy Telegram mei statistiken
De Docker-kontener rint, de statistiken draaie.

Middels bestege

Gjin saak hoe cool do bist Stuart Redman, sels jo litte in spoar fan go.na op dyn underpants. In rinnende Docker-ôfbylding lit in wichtige fuotôfdruk efter.

It makket gjin sin om de foardielen en neidielen fan docker-ôfbyldings te beskriuwen in docker-container is in mini-firtuele masine dy't minder boarnen ferbrûkt as in "echte" firtuele masine, bygelyks VirtualBox, mar it docht.

1) De docker-ôfbylding wurdt lansearre mei of sûnder statistiken, twa kliïnten froeie of tsien - boarnen wurde brûkt ~ lykweardich: 75% fan 'e totale prestaasjes fan' e CPU t2.micro.

2) Litte wy sjen nei it kontrolearjen fan de VPC-tsjinner:

Ynsette jo MTProxy Telegram mei statistiken

Fan 'e grafyske gebrûk fan boarnen op VPC sjogge wy dat de docker-kontener konstant ~ 7,5% fan' e totale max konsumearret. CPU-prestaasjes en waard op 28 maaie mei opsetsin / tydlik stoppe troch my (Opmerking - de tsjinner rint ek OpenVPN & pptp).

Wêrom is 10% konstante CPU laden de limyt foar dizze tsjinner?

Om't d'r beheiningen binne fan 'e kant fan Amazon EC2 en se wurde berekkene yn credits:

Ynsette jo MTProxy Telegram mei statistiken

1 CPU credit = 1 CPU operearjend op 100% load foar ien minút, en wy hawwe 6 credits (dat is, yn peaks, 100% CPU benutten is mooglik binnen 6 minuten, en dan de CPU macht sil ôfnimme). Oare kombinaasjes: bygelyks 1 CPU-kredyt = 1 CPU dy't twa minuten rint op 50% load (dat is, wy kinne de CPU brûke by 50% load foar 12 minuten), of bygelyks in konstante 10% th CPU-load oer de hiele tiid, ensfh.

befinings

  • Wy binne diel fan 'e Digital Resistance. Wy hawwe ús "memmen en heiten" in betrouber kommunikaasjekanaal levere.
  • As jo ​​MtprotoProxyTelegram en OpenVPN hawwe ynset op jo tsjinner, mar neat mear, der sil gjin fertraging / pings / mislearrings, mar as jo hieltyd eksperimintearje mei jo t2 / micro, dan ferwachtsje kommunikaasje slowdowns.
  • Myn bûtenlânske ping is ~100-250ms, d'r binne gjin fertragingen yn stimkommunikaasje.
  • Finansjele kosten foar dit alles (ynklusyf VPC-boarnen) = 0₽.

Reprint fan jo artikel.

UPD: Mei tank oan guon habrowers foar nuttige opmerkings, yndie, it is mooglik (wurde statistyk stipe?) D'r binne bettere analogen foar de offisjele Mtproto proxy Telegram docker ôfbylding.

Boarne: www.habr.com

Add a comment