Nasazení vašeho MTProxy Telegramu se statistikami

Nasazení vašeho MTProxy Telegramu se statistikami

"Zdědil jsem tento nepořádek,
počínaje nestydatým Zello; LinkedIn
a končící „všichni ostatní“ na platformě Telegram
v mém světě.

A pak škytání,
Úředník rychle a hlasitě dodal:
ale dám věci do pořádku (tady v IT)“
(...).

Durov se správně domnívá, že by se ho, cypherpunkera, měly bát autoritářské státy, Roskomnadzor a zlaté štíty s jejich DPI filtry ho opravdu netrápí.
(politická technika)

Moje technická politika je jednodušší, mohu zde popsat své úvahy o neopatrném blokování v Runetu, ale věřím, že pokrokoví občané moderní ruštiny a uživatelé Habr pocítili neprofesionalitu současné vlády na vlastní kůži, takže se omezím na jediná fráze: naše technická politika je „Digitální odolnost“ . "poskytování příbuzným a přátelům stabilní komunikační kanál."

Nasazení proxy telegramu MTProto

  • Technická úroveň složitosti je „snadná“, pokud se například budete řídit tímto cheatem.
  • Úroveň spolehlivosti je „nadprůměrná“: obraz dockeru funguje stabilně, není třeba jej restartovat každý den, jak vývojáři napsali ve své oficiální dokumentaci Telegram, ale kontejner pravděpodobně obsahuje nějaké zranitelnosti.
  • Úroveň odporu / úzkosti - 10 členů ISIS spřádá své konspirace "příbuzné používají", zákaz nepřišel od RKN ani jednou za celou dobu (od jara).
  • Úroveň důvěry je "public baby distrust", problém na straně klienta (někteří přátelé jsou podezřelí z mého MtprotoProxy).
  • Hladiny testosteronu - "nedostaly vyšší."
  • Finanční náklady – „0₽“.
  • Finanční odměna - "nezávisí na občanovi Durovovi." Propagace – schopnost prosadit reklamu.

Zvýšíme naše TelegramProxy na „bezplatné / osobní“ kapacity Amazon-ec2: t2.micro. Použil jsem tento auto.

Dobře, nasaďte svůj bezplatný server, přejděte na oficiální web dockerhub a stáhněte si kontejner dockeru.

Není třeba hledat nějaký obrázek, soubor nebo magické tlačítko - "nejsou tam", všechna kouzla se provádí v CLI:

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

Ale předtím "to" nainstalujte docker pro CLI:

sudo apt-get install docker.io docker

Dále, v oficiální dokumentaci MtprotoProxyTelegram, je nám nabídnuto udělat něco takového, co děláme:

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

Po tomto příkazu se na výstupu terminálu objeví HEX řetězec, který nás ale nezajímá.

Píšeme v CLI:

$ docker logs mtproto-proxy

A získáme požadovaná data:

Nasazení vašeho MTProxy Telegramu se statistikami
Ve výstupu tohoto protokolu jsme zobrazeni (rozmazaní):

A) ip našeho serveru (ip externího serveru);
B) a náhodná tajenka - náhodný řetězec v HEX.

Před registrací našeho MtproProxy musíte nakonfigurovat hlavní firewall přes iptables (bez ohledu na to, jak přesměrujete provoz na toto VPC, bude to zlobivé, protože hlavní firewall v Amazon-EC2 je umístěn ve webovém rozhraní a má vyšší prioritu před iptables).

Jdeme na "konzola Amazon-EC2" ve skupině Security Group a otevřete příchozí port 443 (logické maskování provoz poprvé).

Nasazení vašeho MTProxy Telegramu se statistikami

Vezmeme naše „ip a tajná“ data z protokolu a přejdeme do telegramového messengeru, najdeme oficiálního MTProxy Admin Bota (@MTProxybot) a zaregistrujeme našeho MtproProxy: spusťte příkaz [/newproxy] a zadejte [our_ip:443] a pak naše [secret /HEX].

Pokud se při zadávání dat pokazíte, robot se rozzlobí a pošle vás do ...

Pokud vyplníte dva řádky bez chyb, obdržíte souhlas a funkční odkaz na váš aktuální MtprotoProxyTelegram, který můžete sdílet s kýmkoli.

Nasazení vašeho MTProxy Telegramu se statistikami

Prostřednictvím tohoto robota můžete také přidat svůj sponzorský kanál (ale ne chat), kde budete vnucovat své názory uživatelům, kteří se připojili k vašemu serveru, nebo nemůžete „spamovat“ a neobtěžovat své potenciální zákazníky bez zobrazení kanálu v seznamu připojených zpráv.

Ještě pár slov o robotovi, kde si můžete vyžádat statistiky, ale „také kobliha“. Zdá se, že "statistiky" jsou k dispozici, když máte za sebou "dav darmožráčů" Machačkalu.

Sledování

Kolik uživatelů se můžeme připojit k našemu serveru? A vůbec, kdo / co tam je? Co? A kolik?

Díváme se na to, co tam je podle oficiální dokumentace ... Jo, tady, udělejte to takto:

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

„Držte si kapsu širší“ Podle navrhovaných příkazů vždy obdržíme podobnou chybu:

«curl: (7) Nepodařilo se připojit k portu localhost 2398: Připojení odmítnuto»

Náš proxy bude fungovat. Ale! Bagel, nemáme statistiky.

Pro červenooké můžete udělat věci: zkontrolovat

$ netstat -an | grep 2398 и...

Nejprve jsem si myslel, že je to další jamka za vývojáři Telegramu (a stále si to myslím), pak jsem našel dočasné dobré řešení: vyleštit Docker Container pomocí souboru.

Později mě zaujala infa:

o státních tancích Roskomnadzor kolem "statistiky".

„Zablokovali jsme některé veřejné proxy na našich serverech pomocí databází projektu firehol. Tento projekt monitoruje seznamy s veřejnými proxy a vytváří s nimi databáze.

Od té chvíle (tedy již téměř dva dny) nebyla zablokována ani jedna IP adresa našeho ruského proxy.

3. Řekneme vám, jak vytvořit proxy, který je téměř nezranitelný Roskomnadzor, a sdílet skript pro blokování veřejných proxy.

- Aktualizujte MTProto proxy docker kontejner (nebo démona) na nejnovější verzi: RKN počítá staré verze podle statistického portu, který byl vázán na 0.0.0.0 a jedinečně se identifikoval pro celý internet. Ještě lépe otevřete potřebné porty pomocí iptables a zbytek zavřete (nezapomeňte, že v případě kontejneru dockeru byste měli použít pravidlo FORWARD).

— Roskomnadzor se naučil, jak ukládat provoz již dávno: vidí požadavky uvnitř proxy HTTP a SOCKS5 a vidí také starou verzi MTProto proxy obfuscation.

Když klienti některých poskytovatelů, kteří mají takové výpisy nainstalovány, přistupují k Telegramu přes takové proxy, RKN takové požadavky vidí a okamžitě je zablokuje. Totéž platí pro proxy MTProto se starým mlžením.

Řešení: distribuujte tajný kód pouze s dd na začátku klientům, kteří se připojují k proxy (není třeba zadávat další písmena dd v nastavení samotného proxy mtproto). To povolí verzi obfuskace, kterou dumppiles nedokáže detekovat.

A žádné HTTP nebo SOCKS5 proxy.

- Úprava, s jejíž pomocí může každý majitel telegram proxy, který je pravidelně zabanován RKN, zcela (nebo téměř úplně) zastavit blokování (a zároveň se ujistit, že RKN lže).

Skript, který zakazuje veřejné proxy a malý manuál k tomu.

Zdroj

Náš proxy je prozápadní, během jarních a chladných letních dnů jsem se nesetkal s žádnými problémy/blokádami, nepřitahoval ani kreativní úkol, takže jsem neztrácel tempo a nepřidal jsem předponu dd* do klíč.

Manuál „získání statistik/monitorování“ podle oficiálních pokynů MtprotoProxyTelegram nefunguje/zastaral, budete muset opravit image dockeru.

Opravujeme to.

Kontejner stále běží:

$ 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

Podívejme se na statistiky:

$ curl http://localhost:2398/stats

curl: (7) Nepodařilo se připojit k portu 0.0.0.0 2398: Připojení odmítnuto
Statistiky jsou stále nedostupné!...

Zjistěte ID kontejneru docker:

$ docker ps

ID KONTEJNERU PŘÍKAZ OBRÁZKU VYTVOŘIL STAV NÁZVY PORTŮ
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Asi před hodinou Nahoru Asi minutou 0.0.0.0:443->443/tcp mtproto-proxy2

S naší chartou jdeme do dokovacího kontejneru:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

A na úplně posledním řádku skriptu „run.sh“ přidejte chybějící příznak:

«--http-statistiky»
"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"

Přidejte "--http-stats", něco takového by mělo fungovat:

«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 (uložit/ukončit nano/ukončit kontejner).

Restartujte náš dokovací kontejner:

$ docker restart mtproto-proxy2

Vše, nyní na příkaz:

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

Nasazení vašeho MTProxy Telegramu se statistikami
Ve statistikách je spousta „odpadu“ (1/3 je na obrazovce), vytvořte alias:

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

Dostáváme, pro co byl kontejner dokovacího zařízení vyleštěn: počet připojení a zatížení:

$ telega

Nasazení vašeho MTProxy Telegramu se statistikami
Kontejner Docker běží, statistiky se točí.

Vynaložené zdroje

Jakkoli jste cool Stuart Redman, i vy zanecháte stopu na kalhotkách. Běžící obrázek Dockeru zanechává velkou stopu.

Nemá smysl popisovat výhody a nevýhody docker image, docker kontejner je mini-virtuální stroj, který spotřebovává méně zdrojů než „skutečný“ virtuální stroj, jako je VirtualBox, ale spotřebovává je.

1) Spuštěno s nebo bez statistik docker-image, dva klienti nebo deset - zdroje jsou využívány ~ stejným způsobem: 75 % celého výkonu CPU t2.micro.

2) Podíváme se na monitorování VPC serveru:

Nasazení vašeho MTProxy Telegramu se statistikami

Z grafu využití zdrojů na VPC vidíme, že kontejner dockeru neustále spotřebovává ~ 7,5 % z celkového max. Výkon CPU a 28. května byl mnou úmyslně/dočasně zastaven (Poznámka - OpenVPN a pptp běží také na serveru).

Proč je pro tento server limitem 10% konstantního využití procesoru?

Protože existují omezení od Amazon EC2 a počítají se v kreditech:

Nasazení vašeho MTProxy Telegramu se statistikami

1 kredit CPU = 1 CPU pracující při 100% zátěži po dobu jedné minuty a máme 6 kreditů (to znamená, že ve špičkách je možné 100% využití CPU do 6 minut a pak se výkon CPU sníží). Jiné kombinace: například 1 kredit CPU = 1 CPU běžící na 50% zátěž po dobu dvou minut (tj. CPU můžeme používat při 50% zátěži po dobu 12 minut), nebo například konstantní 10%-té zatížení CPU během celou dobu atd.

Závěry

  • Jsme součástí „Digitálního odporu“. Poskytli svým „otcům a matkám“ spolehlivý komunikační kanál.
  • Pokud máte na serveru nasazeny MtprotoProxyTelegram a OpenVPN, ale nic víc, nedojde k žádným zpožděním / pingům / selháním, ale pokud neustále experimentujete s vaším t2 / micro, počkejte na komunikační brzdy.
  • Můj zámořský ping je ~ 100-250 ms, v hlasové komunikaci nedochází k žádným zpožděním.
  • Finanční náklady na všechno „toto“ (včetně zdrojů VPC) = 0₽.

Přetisk vašeho článku.

UPD: Díky některým habrauserům za užitečné komentáře, skutečně je to možné (je statistika podporována?), Existují lepší analogy oficiálního obrazu dockeru Mtproto proxy Telegram.

Zdroj: www.habr.com

Přidat komentář