Implementà u vostru MTProxy Telegram cù statistiche

Implementà u vostru MTProxy Telegram cù statistiche

"Aghju ereditatu stu mess,
principiendu cù u Zello senza vergogna ; LinkedIn
è finiscinu cù "tutti l'altri" nantu à a piattaforma Telegram
in u mo mondu.

E poi, singhiozzu,
l'ufficiale aghjunse in fretta è forte:
ma metteraghju e cose (qui in IT) in ordine ".
(...).

Durov crede giustamente chì sò i stati autoritarii chì duveranu avè paura di ellu, u cypherpunk, è Roskomnadzor è scudi d'oru cù i so filtri DPI ùn l'anu micca veramente disturbatu ".
(Tecnica pulitica)

A mo pulitica tecnica hè più sèmplice, possu descriverà quì i mo pinsamenti nantu à u bluccatu trascuratu in RuNet, ma crede chì i citadini prugressivi di l'utilizatori di u Russu mudernu è di l'Habr anu sentitu a mancanza di prufessionalità di u guvernu attuale, cusì mi limiteraghju à un una sola frase: a nostra pulitica tecnica hè "Resistenza Digitale". "fornendu a famiglia è l'amichi cun un canale di cumunicazione stabile".

Implementazione di MTProto proxy Telegram

  • U livellu tecnicu di difficultà hè "micca difficiule" se, per esempiu, seguite stu fogliu di cheat.
  • U livellu di affidabilità hè "sopra à a media": l'imaghjini di docker funziona in modu stabile, ùn deve micca esse riavviatu ogni ghjornu, cum'è i sviluppatori anu scrittu in a so documentazione ufficiale di Telegram, ma u cuntinuu cuntene probabilmente alcune vulnerabilità.
  • Livellu di resistenza / ansietà - 10 membri di l'ISIS intreccianu e so conspirazioni "i parenti apprufittannu", a prohibizione ùn hè micca ghjunta da u RKN ancu una volta in tuttu questu tempu (dapoi a primavera).
  • U livellu di fiducia hè "sfiducia di u zitellu publicu", u prublema hè da u latu di u cliente (alcuni amichi sò suspetti di u mo MtprotoProxy).
  • I livelli di testosterone "ùn hè micca più altu".
  • Costi finanziarii - "0₽".
  • A ricumpensa finanziaria "ùn dipende micca da u citadinu Durov". A prumuzione hè a capacità di impone publicità.

Custruiremu u nostru TelegramProxy utilizendu e capacità "libere / persunale" di Amazon-ec2: t2.micro. Aghju utilizatu questu vittura.

Va bè, avemu implementatu u nostru servitore gratuitu, andemu à u situ ufficiale dockerhub è scaricate u containeru docker.

Ùn ci hè bisognu di circà qualchì imagine, fugliale o buttone magicu - "ùn esistinu micca", tutta a magia hè fatta in u CLI:

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

Ma prima di "chì" installate docker per a CLI:

sudo apt-get install docker.io docker

In più, in a ducumentazione ufficiale di MtprotoProxyTelegram, ci hè dumandatu di fà apprussimatamente i seguenti, facemu:

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

Dopu stu cumandamentu, una stringa HEX appariscerà in u output di u terminal, ma ùn ci interessa micca.

Scrivemu in u CLI:

$ docker logs mtproto-proxy

È avemu i dati necessarii:

Implementà u vostru MTProxy Telegram cù statistiche
In l'output di stu logu ci sò mostrati (negri):

A) u nostru servitore IP (IP server esterno);
B) è un secretu aleatoriu - una stringa aleatoria in HEX.

Prima di registrà u nostru MtproProxy, avete bisognu di cunfigurà u firewall principale nantu à iptables (ùn importa cumu si redirige u trafficu nantu à questu VPC, serà indisciplinatu, postu chì u firewall più impurtante in Amazon-EC2 hè situatu in l'interfaccia web è hà una priorità più alta. sopra iptables).

Andemu à "cunsola Amazon-EC2" in u Gruppu di Sicurezza è apre u portu entrante 443 (mascheramentu logicu trafficu per a prima volta).

Implementà u vostru MTProxy Telegram cù statistiche

Pigliemu i nostri dati "ip è secreti" da u logu è andemu à u messenger di Telegram, truvate u Bot Admin MTProxy ufficiale (@MTProxybot) è registrate u nostru MtproProxy: eseguite u cumandimu [/newproxy] è entre [our_ip:443], è allora u nostru [secret /HEX].

Sè vo sguassate quandu inserite dati, u bot s'arrabbiarà è vi mandarà à...

Se riempite duie linee senza errore, riceverete appruvazioni è un ligame di travagliu à u vostru MtprotoProxyTelegram attuale, chì pudete sparte cù qualcunu.

Implementà u vostru MTProxy Telegram cù statistiche

Inoltre, attraversu stu bot, pudete aghjunghje u vostru canale di sponsorizazione (ma micca un chat), induve impone i vostri punti di vista nantu à l'utilizatori chì anu cunnessu à u vostru servitore, è pudete evità "spamming" è ùn disturbà micca i vostri clienti potenziali senza mostrà. u canali in a lista di messageria pinned.

Uni pochi di più parolle nantu à u bot, pudete dumandà statistiche quì, ma "hè ancu un donut". Apparentemente "statistiche" sò dispunibili quandu ci hè una "folla di parassiti" daretu à voi in Makhachkala.

Monitoramentu

Quanti utilizatori pudemu cunnette à u nostru servitore? È in ogni modu, quale / chì ci hè ? Chì ? E quanti ?

Videmu ciò chì ci hè sicondu a ducumentazione ufficiale... Iè, facemu cusì :

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

"Mantene a vostra sacchetta più larga" Utilizendu i cumandamenti suggeriti, riceveremu sempre un errore simili:

«curl: (7) Fiascatu à cunnette à u portu locale host 2398: Cunnessione rifiutata»

U nostru proxy hà da travaglià. Ma! Averemu un bagel, micca statistiche.

Pudete fà cose per e persone d'occhi rossi: verificate

$ netstat -an | grep 2398 и...

À u principiu, aghju pensatu chì questu era un altru prublema cù i sviluppatori di Telegram (è pensu sempre cusì), allora aghju trovu una bona suluzione temporale: pulisce u Docker Container cun un schedariu.

In seguitu, sta infurmazione hà pigliatu l'ochju:

circa i balli statali di Roskomnadzor intornu à "statistiche".

"Avemu bluccatu alcuni proxy publichi nantu à i nostri servitori utilizendu e basa di dati di u prughjettu firehol. Stu prughjettu monitoreghja listi cù proxy publichi è crea basa di dati cun elli.

Da quellu mumentu (vale à dì, per quasi dui ghjorni) ùn hè statu bluccatu un solu indirizzu IP di u nostru proxy russu.

3. Vi dicemu cumu fà un proxy chì hè quasi invulnerable à Roskomnadzor è sparte un script per bluccà i proxy publichi.

- Aghjurnate u cuntainer docker (o daemon) MTProto proxy à l'ultima versione: RKN calcula e versioni antichi utilizendu u portu di statistiche, chì era ligatu à 0.0.0.0 è identificatu unicu per tuttu l'Internet. Megliu ancu, apre i porti necessarii cù iptables, è chjude u restu (ricurdate chì in u casu di un containeru docker, duvete aduprà a regula FORWARD).

- Roskomnadzor hà longu amparatu à dump u trafficu: vedenu richieste in HTTP è SOCKS5 proxies, è vede ancu a vechja versione di MTProto proxy offuscation.

Quandu i clienti di certi fornituri chì anu installatu tali dump accede à Telegram attraversu tali proxy, RKN vede tali richieste è blucca immediatamente questi proxy. U stessu passa per u proxy MTProto cù vechja offuscazione.

Soluzione: dà à i clienti chì si cunnettanu à u proxy un sicretu cù solu dd à u principiu (ùn hè bisognu di specificà lettere dd supplementari in i paràmetri di u proxy mtproto stessu). Questu permetterà una versione di offuscazione chì i dumps ùn ponu micca detectà.

È senza proxy HTTP o SOCKS5.

- Un tweak cù l'aiutu di quale ogni pruprietariu di un proxy Telegram chì hè regularmente pruibitu da RKN pò piantà cumplettamente (o quasi cumplettamente) di bluccà (è à u listessu tempu assicuratevi chì RKN hè mentitu).

Un script chì pruibisce i proxy publichi è un picculu manuale per questu.

Source

U nostru proxy hè pro-Occidentale, ùn aghju micca scontru prublemi / blocchi durante a primavera è i ghjorni freschi di l'estate, ùn si prestava ancu à un prublema creativa, cusì ùn aghju micca trattatu cù a perdita di u tempu è ùn aghju micca. t aghjunghje u prefissu dd * à a chjave.

U manual "ottenimentu di statistiche / monitoring" secondu l'istruzzioni ufficiali di MtprotoProxyTelegram ùn hè micca funzionante / obsoletu, avete da riparà l'imaghjini docker.

Riparamu.

Avemu sempre u containeru in funzione:

$ 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

Cuntrollamu e statistiche:

$ curl http://localhost:2398/stats

curl: (7) Fiascu à cunnette à u portu 0.0.0.0 2398: Cunnessione rifiutata
E statistiche ùn sò sempre dispunibili.!

Truvate l'ID di u containeru docker:

$ docker ps

CONTAINER ID IMAGE COMMAND CREAT STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba..." Circa un'ora fà Up Circa un minutu 0.0.0.0:443->443/tcp mtproto-proxy2

Andemu cù a nostra charter in u containeru docker:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

È in l'ultima linea di u script "run.sh" aghjunghjemu a bandiera mancante:

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

Aghjunghjite "—http-stats", qualcosa cum'è questu deve esse cusì:

«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 (salvate/esce da nano/exit container).

Riavvia u nostru containeru docker:

$ docker restart mtproto-proxy2

Eccu, avà nantu à u cumandamentu:

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

Implementà u vostru MTProxy Telegram cù statistiche
Ci hè assai "basura" in e statistiche (1/3 di questu hè nantu à a screenshot), creanu un alias:

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

Avemu ottene ciò chì avemu pulitu u containeru docker per: u numeru di cunnessione è carica:

$ telega

Implementà u vostru MTProxy Telegram cù statistiche
U containeru Docker hè in esecuzione, e statistiche giranu.

Risorse spese

Ùn importa micca quantu sì cool Stuart Redman, ancu lasciate una traccia di go.na nantu à i vostri mutandine. Un'immagine Docker in esecuzione lascia una impronta significativa.

Ùn hà micca sensu di descriverà i vantaghji è i svantaghji di l'imaghjini docker; un containeru docker hè una mini-macchina virtuale chì cunsuma menu risorse cà una macchina virtuale "reale", per esempiu VirtualBox, ma hè.

1) L'imaghjina di docker hè lanciata cù o senza statistiche, dui clienti sò frolicking o dece - risorse sò utilizzate ~ ugualmente: 75% di u rendiment tutale di u CPU t2.micro.

2) Fighjemu u monitoraghju di u servitore VPC:

Implementà u vostru MTProxy Telegram cù statistiche

Da u graficu di l'utilizazione di e risorse nantu à u VPC, vedemu chì u cuntainer di docker cunsuma constantemente ~ 7,5% di u massimu totale. Prestazione di CPU è hè stata fermata da mè intenzionalmente / temporaneamente u 28 di maghju (Nota - u servitore gestisce ancu OpenVPN & pptp).

Perchè u 10% di carica constante di CPU hè u limitu per stu servitore?

Perchè ci sò restrizioni da parte di Amazon EC2 è sò calculati in crediti:

Implementà u vostru MTProxy Telegram cù statistiche

1 creditu CPU = 1 CPU chì opera à 100% di carica per un minutu, è avemu 6 crediti (vale à dì, in picchi, l'utilizazione di u CPU 100% hè pussibule in 6 minuti, è dopu a putenza CPU diminuirà). Altre cumminazzioni: per esempiu, 1 creditu CPU = 1 CPU chì funziona à 50% di carica per dui minuti (vale à dì, pudemu usà u CPU à 50% di carica per 12 minuti), o, per esempiu, un 10% di carica constante di CPU. durante tuttu u tempu, etc.

scuperti

  • Facemu parte di a Resistenza Digitale. Avemu furnitu i nostri "mamme è babbi" cun un canale di cumunicazione affidabile.
  • Sè avete MtprotoProxyTelegram è OpenVPN implementati in u vostru servitore, ma nunda di più, ùn ci sarà micca ritardu / pings / fallimenti, ma sè vo site constantemente spirimintatu cù u vostru t2 / micro, allora aspettate rallentamenti di cumunicazione.
  • U mo ping d'oltremare hè ~ 100-250ms, ùn ci sò micca ritardi in a cumunicazione vocale.
  • Costi finanziarii per tuttu "questu" (cumprese risorse VPC) = 0₽.

Ristampa di u vostru articulu.

UPD: Grazie à alcuni habrowers per cumenti utili, in verità, hè pussibile (sò statistiche supportate?) Ci sò megliu analoghi à l'imagine ufficiale Mtproto proxy Telegram docker.

Source: www.habr.com

Add a comment