Nasadenie vášho telegramu MTProxy so štatistikami

Nasadenie vášho telegramu MTProxy so štatistikami

"Zdedil som tento neporiadok,
počnúc nehanebným Zellom; LinkedIn
a končiac „všetci ostatní“ na platforme Telegram
v mojom svete.

A potom čkanie,
Úradník rýchlo a nahlas dodal:
ale dám veci do poriadku (tu v IT)“
(...).

Durov sa správne domnieva, že práve autoritárske štáty by sa ho, cypherpunkera, mali báť a Roskomnadzor a zlaté štíty s ich DPI filtrami ho naozaj netrápia.
(politická technika)

Moja technická politika je jednoduchšia, môžem tu opísať svoje myšlienky o neopatrnom blokovaní v Runete, ale verím, že pokrokoví občania modernej ruštiny a užívatelia Habr pocítili neprofesionalitu súčasnej vlády na vlastnej koži, takže sa obmedzím len na jedna fráza: naša technická politika je „Digitálna odolnosť“ . "poskytovanie stabilného komunikačného kanála príbuzným a priateľom."

Nasadenie MTProto proxy telegramu

  • Technická úroveň zložitosti je „jednoduchá“, ak napríklad budete postupovať podľa tohto cheat sheet.
  • Úroveň spoľahlivosti je „nadpriemerná“: obraz dockeru funguje stabilne, nie je potrebné ho reštartovať každý deň, ako vývojári napísali vo svojej oficiálnej dokumentácii telegramu, ale kontajner pravdepodobne obsahuje nejaké chyby zabezpečenia.
  • Úroveň odporu/úzkosti – 10 členov ISIS splieta svoje konšpirácie „používajú príbuzní“, zákaz neprišiel od RKN ani raz za celý čas (od jari).
  • Úroveň dôvery je "verejná detská nedôvera", problém na strane klienta (niektorí priatelia sú podozriví z môjho MtprotoProxy).
  • Hladiny testosterónu - "nedostali vyššie."
  • Finančné náklady – „0₽“.
  • Finančná odmena - "nezávisí od občana Durova." Propagácia – schopnosť presadiť reklamu.

Zvýšime naše TelegramProxy na „bezplatné / osobné“ kapacity Amazon-ec2: t2.micro. použil som toto auto.

Dobre, nasaďte svoj bezplatný server, prejdite na oficiálnu webovú stránku dockerhub a stiahnite si kontajner docker.

Nie je potrebné hľadať nejaký obrázok, súbor alebo magické tlačidlo - "nie sú tam", všetko kúzlo sa deje v CLI:

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

Predtým však nainštalujte docker pre CLI:

sudo apt-get install docker.io docker

Ďalej v oficiálnej dokumentácii MtprotoProxyTelegramu sa nám ponúka urobiť niečo také, ako:

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

Po tomto príkaze sa vo výstupe terminálu objaví HEX reťazec, ktorý nás však nezaujíma.

Píšeme v CLI:

$ docker logs mtproto-proxy

A získame požadované údaje:

Nasadenie vášho telegramu MTProxy so štatistikami
Vo výstupe tohto denníka sa nám zobrazí (rozmazané):

A) IP nášho servera (IP externého servera);
B) a náhodná tajenka - náhodný reťazec v HEX.

Pred registráciou nášho MtproProxy musíte nakonfigurovať hlavný firewall cez iptables (bez ohľadu na to, ako presmerujete prevádzku na toto VPC, bude to nezbedné, pretože hlavný firewall v Amazon-EC2 sa nachádza vo webovom rozhraní a má vyššiu prioritu pred iptables).

Ideme "konzola Amazon-EC2" v skupine Security Group a otvorte prichádzajúci port 443 (logické maskovanie premávka prvýkrát).

Nasadenie vášho telegramu MTProxy so štatistikami

Vezmeme naše „ip a tajné“ údaje z denníka a prejdeme do telegramového messengeru, nájdeme oficiálneho MTProxy Admin Bota (@MTProxybot) a zaregistrujeme nášho MtproProxy: spustite príkaz [/newproxy] a zadajte [our_ip:443] a potom naše [secret /HEX].

Ak sa pri zadávaní údajov pokazíte, robot sa nahnevá a pošle vás na ...

Ak vyplníte dva riadky bez chýb, dostanete súhlas a funkčný odkaz na váš aktuálny MtprotoProxyTelegram, ktorý môžete zdieľať s kýmkoľvek.

Nasadenie vášho telegramu MTProxy so štatistikami

Prostredníctvom tohto robota môžete tiež pridať svoj sponzorský kanál (ale nie chat), kde budete vnucovať svoje názory používateľom, ktorí sa pripojili k vášmu serveru, alebo nemôžete „spamovať“ a neobťažovať svojich potenciálnych zákazníkov bez zobrazenie kanála v zozname pripnutých správ.

Ešte pár slov o robotovi, kde si môžete vyžiadať štatistiky, ale „aj šišku“. Zjavne sú „štatistiky“ dostupné, keď máte za sebou „dav darmožráčov“ Machačkalu.

monitorovanie

Koľko používateľov sa môžeme pripojiť k nášmu serveru? A vôbec, kto / čo tam je? Čo? A koľko?

Pozeráme sa na to, čo tam je podľa oficiálnej dokumentácie ... Áno, tu, urobte to takto:

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

„Držte si vrecko širšie“ Podľa navrhovaných príkazov vždy dostaneme podobnú chybu:

«curl: (7) Nepodarilo sa pripojiť k portu localhost 2398: Pripojenie bolo odmietnuté»

Náš proxy bude fungovať. Ale! Bagel, nie štatistiky, ktoré dostávame.

Pre červenookých môžete urobiť veci: skontrolujte

$ netstat -an | grep 2398 и...

Najprv som si myslel, že je to ďalší jamb za vývojármi Telegramu (a stále si to myslím), potom som našiel dočasné dobré riešenie: vyleštiť Docker Container pomocou súboru.

Neskôr ma zaujala infa:

o štátnych tancoch Roskomnadzor okolo „štatistiky“.

„Zablokovali sme niektoré verejné proxy na našich serveroch pomocou databáz projektu firehol. Tento projekt monitoruje zoznamy s verejnými proxy a vytvára s nimi databázy.

Od tej chvíle (teda už takmer dva dni) nebola zablokovaná ani jedna IP adresa nášho ruského proxy.

3. Povieme vám, ako vytvoriť server proxy, ktorý je takmer nezraniteľný pre Roskomnadzor, a zdieľať skript na blokovanie verejných serverov proxy.

- Aktualizujte MTProto proxy docker kontajner (alebo démona) na najnovšiu verziu: RKN vypočítava staré verzie podľa štatistického portu, ktorý bol viazaný na 0.0.0.0 a jedinečne sa identifikoval pre celý internet. Ešte lepšie je otvoriť potrebné porty pomocou iptables a zvyšok zavrieť (nezabudnite, že v prípade dokovacieho kontajnera by ste mali použiť pravidlo FORWARD).

— Roskomnadzor sa naučil, ako vyradiť prevádzku už dávno: požiadavky vidia v proxy serveroch HTTP a SOCKS5 a tiež vidia starú verziu zahmlievania proxy MTProto.

Keď klienti niektorých poskytovateľov, ktorí majú nainštalované takéto výpisy, pristupujú k Telegramu cez takéto proxy, RKN vidí takéto požiadavky a okamžite tieto proxy zablokuje. To isté platí pre proxy MTProto so starým zahmlievaním.

Riešenie: distribuujte tajomstvo iba s dd na začiatku klientom, ktorí sa pripájajú k proxy (nie je potrebné špecifikovať ďalšie písmená dd v nastaveniach samotného mtproto proxy). To umožní verziu zahmlievania, ktorú skládky nedokážu zistiť.

A žiadne HTTP alebo SOCKS5 proxy.

- Úprava, pomocou ktorej môže každý majiteľ telegramového splnomocnenca, ktorý je pravidelne banovaný RKN, úplne (alebo takmer úplne) zastaviť blokovanie (a zároveň sa uistiť, že RKN klame).

Skript, ktorý zakazuje verejné proxy a malý manuál k tomu.

Zdroj

Náš proxy je prozápadný, počas jarných a chladných letných dní som sa nestretol so žiadnymi problémami / blokádami, nelákalo to ani kreatívnou úlohou, takže som nestratil tempo a nepridal som predponu dd* do kľúč.

Manuál „získanie štatistík/monitorovania“ podľa oficiálnych pokynov MtprotoProxyTelegram nefunguje/zastaral, budete musieť opraviť docker image.

Opravujeme to.

Kontajner stále beží:

$ 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

Pozrime sa na štatistiky:

$ curl http://localhost:2398/stats

curl: (7) Nepodarilo sa pripojiť k portu 0.0.0.0 2398: Pripojenie bolo odmietnuté
Štatistiky sú stále nedostupné!...

Zistite ID kontajnera dokovacieho zariadenia:

$ docker ps

ID KONTAJNERA OBRÁZKOVÝ PRÍKAZ VYTVORIL STAV NÁZVY PORTOV
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Asi pred hodinou Nahor Asi o minútu 0.0.0.0:443->443/tcp mtproto-proxy2

S našou chartou ideme do dokovacieho kontajnera:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

A v úplne poslednom riadku skriptu „run.sh“ pridajte chýbajúci príznak:

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

Pridajte "--http-stats", niečo také by malo fungovať:

«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žiť/ukončiť nano/ukončiť kontajner).

Reštartujte náš dokovací kontajner:

$ docker restart mtproto-proxy2

Všetko, teraz na príkaz:

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

Nasadenie vášho telegramu MTProxy so štatistikami
V štatistikách je veľa „odpadu“ (1/3 z nich je na obrazovke), vytvorte alias:

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

Dostaneme, na čo bol kontajner dokovacieho zariadenia vyleštený: počet pripojení a zaťaženie:

$ telega

Nasadenie vášho telegramu MTProxy so štatistikami
Kontajner Docker beží, štatistiky sa točia.

Vynaložené zdroje

Akokoľvek ste cool, Stuart Redman, aj vy zanechávate stopy na nohavičkách. Spustený obrázok Docker zanecháva veľkú stopu.

Nemá zmysel popisovať výhody a nevýhody obrazov dockerov, kontajner dockerov je mini-virtuálny stroj, ktorý spotrebuje menej zdrojov ako „skutočný“ virtuálny stroj, ako je VirtualBox, ale robí to tak.

1) Spustený s alebo bez štatistiky docker-image, dvaja klienti alebo desať – zdroje sa využívajú ~ rovnakým spôsobom: 75 % celkového výkonu CPU t2.micro.

2) Pozeráme sa na monitorovanie servera VPC:

Nasadenie vášho telegramu MTProxy so štatistikami

Z grafu využitia zdrojov na VPC vidíme, že docker kontajner neustále spotrebuje ~ 7,5 % z celkového max. Výkon CPU a 28. mája bol mnou úmyselne/dočasne zastavený (Poznámka - OpenVPN a pptp sú tiež spustené na serveri).

Prečo je pre tento server limitom 10 % konštantného využitia procesora?

Pretože existujú obmedzenia od Amazon EC2 a počítajú sa v kreditoch:

Nasadenie vášho telegramu MTProxy so štatistikami

1 kredit CPU = 1 CPU pracujúci pri 100% zaťažení po dobu jednej minúty a máme 6 kreditov (to znamená, že v špičkách je možné 100% využitie CPU do 6 minút a potom sa výkon CPU zníži). Iné kombinácie: napríklad 1 kredit CPU = 1 CPU bežiaci na 50 % záťaž po dobu 50 minút (t. j. CPU môžeme používať pri 12 % záťaži 10 minút), alebo napríklad konštantná XNUMX %-ná záťaž CPU počas celý čas atď.

Závery

  • Sme súčasťou „Digitálneho odporu“. Poskytli svojim „otcom a matkám“ spoľahlivý komunikačný kanál.
  • Ak máte na serveri nasadené MtprotoProxyTelegram a OpenVPN, ale nič viac, nebudú žiadne oneskorenia / pingy / zlyhania, ale ak neustále experimentujete so svojím t2 / micro, počkajte na brzdenie komunikácie.
  • Môj ping v zámorí je ~100-250 ms, v hlasovej komunikácii nie sú žiadne oneskorenia.
  • Finančné náklady na všetko „toto“ (vrátane zdrojov VPC) = 0₽.

Pretlač vášho článku.

UPD: Vďaka niektorým habrauserom za užitočné komentáre je to skutočne možné (je štatistika podporovaná?), Existujú lepšie analógy oficiálneho obrazu dokovacej stanice Mtproto proxy Telegram.

Zdroj: hab.com

Pridať komentár