MTProxy telegrammas izvietošana ar statistiku

MTProxy telegrammas izvietošana ar statistiku

"Es mantoju šo putru,
sākot ar nekaunīgo Zello; LinkedIn
un beidzot ar "visiem pārējiem" Telegram platformā
manā pasaulē.

Un tad žagas,
Ierēdnis steidzīgi un skaļi piebilda:
bet es sakārtošu lietas (šeit IT)"
(...).

Durovs pamatoti uzskata, ka no viņa, ciferpanka, ir jābaidās autoritārām valstīm, un Roskomnadzor un zelta vairogi ar saviem DPI filtriem viņu īsti netraucē.
(politiskā tehnika)

Mana tehniskā politika ir vienkāršāka, es varu šeit aprakstīt savas domas par neuzmanīgu bloķēšanu Runetā, bet uzskatu, ka progresīvie mūsdienu krievu un habru lietotāju pilsoņi ir izjutuši pašreizējās valdības neprofesionalitāti savā ādā, tāpēc es aprobežojos ar viena frāze: mūsu tehniskā politika ir “Digitālā pretestība” . "nodrošinot radus un draugus ar stabilu saziņas kanālu."

MTProto starpniekservera telegrammas izvietošana

  • Tehniskais sarežģītības līmenis ir “viegli”, ja, piemēram, sekojat šai krāpšanās lapai.
  • Uzticamības līmenis ir “virs vidējā”: docker attēls darbojas stabili, tas nav jārestartē katru dienu, kā izstrādātāji rakstīja savā oficiālajā Telegram dokumentācijā, taču konteinerā, iespējams, ir dažas ievainojamības.
  • Pretestības/satraukuma līmenis - 10 ISIS biedri auž savas sazvērestības "radinieku lieto", aizliegums no RKN nenāca pat vienu reizi visu laiku (kopš pavasara).
  • Uzticības līmenis ir "publiskā mazuļa neuzticēšanās", problēma klienta pusē (daži draugi ir aizdomīgi par manu MtprotoProxy).
  • Testosterona līmenis - "nepalika augstāks".
  • Finanšu izmaksas - "0₽".
  • Finansiālā atlīdzība - "nav atkarīgs no pilsoņa Durova". Paaugstināšana - spēja uzspiest reklāmu.

Mēs paaugstināsim mūsu TelegramProxy Amazon-ec2 “bezmaksas/personīgās” iespējas: t2.micro. ES izmantoju šis auto.

Labi, izvietojis savu bezmaksas serveri, dodieties uz oficiālo vietni dockerhub un lejupielādējiet doka konteineru.

Nav jāmeklē kāds attēls, fails vai burvju poga — "to nav", visa maģija tiek veikta CLI:

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

Bet pirms tam instalējiet docker CLI:

sudo apt-get install docker.io docker

Turklāt oficiālajā MtprotoProxyTelegram dokumentācijā mums tiek piedāvāts rīkoties šādi:

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

Pēc šīs komandas termināļa izvadā parādīsies HEX virkne, taču tā mūs neinteresē.

Mēs rakstām CLI:

$ docker logs mtproto-proxy

Un mēs iegūstam nepieciešamos datus:

MTProxy telegrammas izvietošana ar statistiku
Šī žurnāla izvadē mēs esam parādīti (izsmērēti):

A) mūsu servera ip (ārējā servera ip);
B) un nejaušs noslēpums - nejauša virkne HEX.

Pirms MtproProxy reģistrēšanas jums ir jākonfigurē galvenais ugunsmūris, izmantojot iptables (neatkarīgi no tā, kā novirzīsit trafiku uz šo VPC, tas būs nerātns, jo Amazon-EC2 galvenais ugunsmūris atrodas tīmekļa saskarnē un tam ir augstāka prioritāte. iptables).

Mēs ejam uz "konsole Amazon-EC2" drošības grupā un atveriet ienākošo portu 443 (loģiskā maskēšana satiksme pirmo reizi).

MTProxy telegrammas izvietošana ar statistiku

Mēs izņemam savus “ip un slepenos” datus no žurnāla un dodamies uz Telegram Messenger, atrodam oficiālo MTProxy Admin Bot (@MTProxybot) un reģistrējam savu MtproProxy: palaidiet komandu [/newproxy] un ievadiet [our_ip:443], un tad mūsu [noslēpums /HEX].

Ja, ievadot datus, jūs sajaucat, robots sadusmosies un nosūtīs jūs uz ...

Ja aizpildīsiet divas rindiņas bez kļūdām, jūs saņemsit apstiprinājumu un darba saiti uz savu pašreizējo MtprotoProxyTelegram, kuru varēsit kopīgot ar ikvienu.

MTProxy telegrammas izvietošana ar statistiku

Tāpat, izmantojot šo robotu, jūs varat pievienot savu sponsorēšanas kanālu (bet ne tērzēšanu), kurā jūs uzspiedīsit savus uzskatus lietotājiem, kuri ir izveidojuši savienojumu ar jūsu serveri, vai arī jūs nevarat "spamot" un netraucēt saviem potenciālajiem klientiem bez rāda kanālu piesprausto ziņojumapmaiņas sarakstā.

Vēl daži vārdi par botu, kur var pieprasīt statistiku, bet “arī virtuli”. Acīmredzot "statistika" ir pieejama, ja jums aiz Mahačkalas ir "brīvākuļu pūlis".

Uzraudzība

Cik lietotāju mēs varam izveidot savienojumu ar mūsu serveri? Un vienalga, kas/kas tur ir? Kas? Un cik?

Mēs skatāmies, kas tur ir saskaņā ar oficiālo dokumentāciju ... Jā, šeit dariet to šādi:

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

“Turiet savu kabatu plašāku” Saskaņā ar piedāvātajām komandām mēs vienmēr saņemsim līdzīgu kļūdu:

«curl: (7) Neizdevās izveidot savienojumu ar localhost portu 2398: Savienojums atteikts»

Mūsu starpniekserveris darbosies. Bet! Bagel, nevis statistika, ko mēs iegūstam.

Jūs varat darīt lietas sarkano acu labā: pārbaudiet

$ netstat -an | grep 2398 и...

Sākumā es domāju, ka tas ir kārtējais Telegram izstrādātāju aizbāznis (un tā domāju joprojām), tad es atradu īslaicīgu labu risinājumu: noslīpēt Docker Container ar failu.

Vēlāk man acīs iekrita infa:

par Roskomnadzor valsts dančiem ap "statistiku".

“Mēs esam bloķējuši dažus publiskos starpniekserverus savos serveros, izmantojot Firehol projekta datu bāzes. Šis projekts uzrauga sarakstus ar publiskajiem starpniekserveriem un veido datu bāzes ar tiem.

Kopš tā brīža (tas ir, gandrīz divas dienas) neviena mūsu Krievijas starpniekservera IP adrese nav bloķēta.

3. Mēs jums pastāstīsim, kā izveidot starpniekserveri, kas ir gandrīz neievainojams pret Roskomnadzor, un kopīgot skriptu publisko starpniekserveru bloķēšanai.

- Atjauniniet MTProto starpniekservera doka konteineru (vai dēmonu) uz jaunāko versiju: ​​RKN aprēķina vecās versijas, izmantojot statistikas portu, kas bija saistīts ar 0.0.0.0 un unikāli identificēja sevi visam internetam. Vēl labāk, atveriet nepieciešamos portus, izmantojot iptables, un aizveriet pārējos (atcerieties, ka docker konteinera gadījumā jums vajadzētu izmantot FORWARD noteikumu).

— Roskomnadzor jau sen iemācījās izmest trafiku: viņi redz zvanus HTTP un SOCKS5 starpniekserveros, kā arī redz veco MTProto starpniekservera apmulsināšanas versiju.

Kad dažu pakalpojumu sniedzēju klienti, kuriem ir instalētas šādas izgāztuves, piekļūst Telegram, izmantojot šādus starpniekserverus, RKN redz šādus pieprasījumus un nekavējoties bloķē šos starpniekserverus. Tas pats attiecas uz MTProto starpniekserveri ar veco neskaidrību.

Risinājums: klientiem, kas savienojas ar starpniekserveri, izplatiet noslēpumu tikai ar dd sākumā (paša mtproto starpniekservera iestatījumos nav jānorāda papildu burti dd). Tādējādi tiks iespējota neskaidrības versija, kuru izgāztuves nevar noteikt.

Un nekādu HTTP vai SOCKS5 starpniekserveru.

- Regulēšana, ar kuras palīdzību katrs telegrammas starpniekservera īpašnieks, kuru RKN regulāri aizliedz, var pilnībā (vai gandrīz pilnībā) pārtraukt bloķēšanu (un tajā pašā laikā pārliecināties, ka RKN melo).

Skripts, kas aizliedz publiskos starpniekserverus, un neliela rokasgrāmata tam.

Avots

Mūsu starpniekserveris ir prorietumniecisks, pavasarī un vēsajās vasaras dienās nesaskāros ar problēmām / aizsprostojumiem, tas arī nepiesaistīja radošu uzdevumu, tāpēc nezaudēju tempu un nepievienoju dd* prefiksu atslēga.

Rokasgrāmata “statistikas iegūšana/uzraudzība” saskaņā ar oficiālajiem MtprotoProxyTelegram norādījumiem nedarbojas/novecojusi, jums būs jālabo docker attēls.

Mēs to salabojam.

Konteiners joprojām darbojas:

$ 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

Pārbaudīsim statistiku:

$ curl http://localhost:2398/stats

curl: (7) Neizdevās izveidot savienojumu ar 0.0.0.0 portu 2398: savienojums atteikts
Statistika joprojām nav pieejama!...

Uzziniet dokera konteinera ID:

$ docker ps

KONTEINERA ID ATTĒLA KOMANDA IZVEIDOTS STATUSS PORTU NOSAUKUMS
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Apmēram pirms stundas Augšup Aptuveni minūti 0.0.0.0:443->443/tcp mtproto-proxy2

Mēs ejam ar savu hartu dokera konteinerā:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Un pašā "run.sh" skripta pēdējā rindā pievienojiet trūkstošo karogu:

«--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 sakne $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Pievienojiet "--http-stats", kam vajadzētu darboties šādi:

«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 (saglabāt/iziet no nano/iziet no konteinera).

Restartējiet mūsu doka konteineru:

$ docker restart mtproto-proxy2

Viss, tagad pēc komandas:

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

MTProxy telegrammas izvietošana ar statistiku
Statistikā ir daudz “atkritumu” (1/3 no tiem ir uz ekrāna), izveidojiet aizstājvārdu:

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

Mēs iegūstam to, kam tika pulēts dokera konteiners: savienojumu skaits un slodze:

$ telega

MTProxy telegrammas izvietošana ar statistiku
Docker konteiners darbojas, statistika griežas.

Iztērētie resursi

Lai cik foršs tu būtu Stjuarts Redmens, pat tu atstāj pēdas savās biksītēs. Darbojošs Docker attēls atstāj lielu nospiedumu.

Nav jēgas aprakstīt dokera attēlu priekšrocības un trūkumus, docker konteiners ir mini-virtuāla mašīna, kas patērē mazāk resursu nekā “īsta” virtuālā mašīna, piemēram, VirtualBox, taču tā ir.

1) Palaižot ar vai bez docker-image statistikas, divi klienti satraucas vai desmit — resursi tiek izmantoti ~ vienādi: 75% no visa CPU t2.micro veiktspējas.

2) Mēs skatāmies uz VPC servera uzraudzību:

MTProxy telegrammas izvietošana ar statistiku

No VPC resursu izmantošanas grafika redzams, ka dokera konteiners pastāvīgi patērē ~ 7,5% no kopējā maks. CPU veiktspēju un 28. maijā apturēju ar nolūku/uz laiku (Piezīme. OpenVPN un pptp darbojas arī serverī).

Kāpēc šī servera ierobežojums ir 10% nemainīgs CPU lietojums?

Tā kā Amazon EC2 ir ierobežojumi un tie tiek aprēķināti kredītos:

MTProxy telegrammas izvietošana ar statistiku

1 CPU kredīts = 1 CPU, kas vienu minūti strādā ar 100% slodzi, un mums ir 6 kredītpunkti (tas ir, maksimumos 100% CPU noslodze ir iespējama 6 minūšu laikā, un tad CPU jauda samazināsies). Citas kombinācijas: piemēram, 1 CPU kredīts = 1 CPU, kas darbojas ar 50% slodzi divas minūtes (t.i., mēs varam izmantot CPU ar 50% slodzi 12 minūtes), vai, piemēram, pastāvīga 10% CPU slodze laikā visu laiku utt.

Atzinumi

  • Mēs esam daļa no "Digitālās pretestības". Nodrošināja saviem "tēviem un mātēm" uzticamu saziņas kanālu.
  • Ja uz servera ir izvietoti MtprotoProxyTelegram un OpenVPN, bet ne vairāk, aizkavēšanās / ping / kļūmes nebūs, bet, ja pastāvīgi eksperimentējat ar savu t2 / micro, tad gaidiet sakaru bremzes.
  • Mans ārzemju ping ir ~ 100-250 ms, balss sakaru aizkaves nav.
  • Finanšu izmaksas par visu "šo" (ieskaitot VPC resursus) = 0₽.

Jūsu raksta atkārtota izdrukāšana.

UPD: Paldies dažiem habrauseriem par noderīgiem komentāriem, patiešām, tas ir iespējams (vai statistika tiek atbalstīta?), Ir labāki oficiālā Mtproto starpniekservera Telegram doka attēla analogi.

Avots: www.habr.com

Pievieno komentāru