"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
Dobře, nasaďte svůj bezplatný server, přejděte na oficiální web
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:
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 "
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.
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.
→
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 #получаем объемную статистику
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
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:
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:
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