Įdiekite savo MTProxy telegramą su statistika

Įdiekite savo MTProxy telegramą su statistika

„Paveldėjau šią netvarką,
pradedant begėdišku Zello; LinkedIn
ir baigiant „visais kitais“ „Telegram“ platformoje
mano pasaulyje.

Ir tada, žagsėdamas,
pareigūnas skubiai ir garsiai pridūrė:
bet aš viską sutvarkysiu (čia IT srityje).
(...).

Durovas pagrįstai mano, kad autoritarinės valstybės turėtų jo bijoti, ciferpankas, o „Roskomnadzor“ ir auksiniai skydai su DPI filtrais jam tikrai netrukdo“.
(politinė technika)

Mano techninė politika paprastesnė, čia galiu aprašyti savo mintis apie neatsargų blokavimą RuNet, bet manau, kad pažangūs šiuolaikinės Rusijos ir Habr vartotojų piliečiai iš pirmų lūpų pajuto dabartinės valdžios neprofesionalumą, todėl apsiribosiu viena frazė: mūsų techninė politika yra „skaitmeninis pasipriešinimas“. „Suteikti šeimai ir draugams stabilų bendravimo kanalą“.

MTProto tarpinio serverio telegramos diegimas

  • Techninis sudėtingumo lygis nėra „nesunkus“, jei, pavyzdžiui, laikotės šio apgaulės lapo.
  • Patikimumo lygis yra „aukščiau nei vidutinis“: docker vaizdas veikia stabiliai, jo nereikia kasdien paleisti iš naujo, kaip rašė kūrėjai oficialioje „Telegram“ dokumentacijoje, tačiau konteineryje tikriausiai yra tam tikrų spragų.
  • Pasipriešinimo/nerimo lygis – 10 ISIS narių pina savo sąmokslus „giminaičiai naudojasi“, draudimas iš RKN per visą šį laiką (nuo pavasario) nebuvo atėjęs nė karto.
  • Pasitikėjimo lygis yra „viešasis kūdikių nepasitikėjimas“, problema yra kliento pusėje (kai kurie draugai įtariai žiūri į mano MtprotoProxy).
  • Testosterono lygis „nepadidėjo“.
  • Finansinės išlaidos - „0₽“.
  • Finansinis atlygis „nepriklauso nuo piliečio Durovo“. Reklama – tai galimybė primesti reklamą.

Mes sukursime savo „TelegramProxy“ naudodami „nemokamą / asmeninį“ Amazon-ec2 galimybes: t2.micro. aš naudojau tai automobilis.

Gerai, mes įdiegėme savo nemokamą serverį, eikime į oficialią svetainę dockerhub ir atsisiųskite docker konteinerį.

Nereikia ieškoti vaizdo, failo ar stebuklingo mygtuko - „jie neegzistuoja“, visa magija atliekama CLI:

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

Tačiau prieš tai įdiekite CLI docker:

sudo apt-get install docker.io docker

Be to, oficialioje „MtprotoProxyTelegram“ dokumentacijoje mūsų prašoma atlikti maždaug šiuos veiksmus:

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

Po šios komandos terminalo išvestyje atsiras HEX eilutė, bet mūsų ji nedomina.

CLI rašome:

$ docker logs mtproto-proxy

Ir mes gauname reikiamus duomenis:

Įdiekite savo MTProxy telegramą su statistika
Šio žurnalo išvestyje mes rodomi (užtamsinti):

A) mūsų serverio IP (išorinio serverio IP);
B) ir atsitiktinė paslaptis - atsitiktinė eilutė HEX.

Prieš registruodami mūsų MtproProxy, turite sukonfigūruoti pagrindinę ugniasienę per iptables (nesvarbu, kaip nukreipsite srautą į šį VPC, jis bus nepaklusnus, nes svarbiausia Amazon-EC2 ugniasienė yra žiniatinklio sąsajoje ir turi didesnį prioritetą per iptables).

Eime "konsolė „Amazon-EC2“ saugos grupėje ir atidarykite 443 įeinantį prievadą (loginis maskavimas srautas pirmą kartą).

Įdiekite savo MTProxy telegramą su statistika

Mes paimame savo „ip and secret“ duomenis iš žurnalo ir einame į „Telegram Messenger“, surandame oficialų MTProxy Admin Bot (@MTProxybot) ir užregistruojame savo MtproProxy: paleiskite komandą [/newproxy] ir įveskite [our_ip:443] ir tada mūsų [slaptas /HEX].

Jei suklaidinsite įvesdami duomenis, botas supyks ir nusiųs jus į...

Jei užpildysite dvi eilutes be klaidų, gausite patvirtinimą ir veikiančią nuorodą į dabartinę MtprotoProxyTelegram, kurią galėsite bendrinti su bet kuo.

Įdiekite savo MTProxy telegramą su statistika

Be to, per šį robotą galite pridėti savo rėmimo kanalą (bet ne pokalbį), kuriame primesite savo nuomonę naudotojams, kurie prisijungė prie jūsų serverio, ir išvengsite „spamo“ ir netrukdysite potencialiems klientams nerodydami. kanalą prisegtų pranešimų siuntėjų sąraše.

Dar keli žodžiai apie robotą, ten galite paprašyti statistikos, bet „tai taip pat yra spurgos“. Matyt, „statistika“ prieinama, kai už jūsų Makhačkaloje yra „minia parazitų“.

Stebėjimas

Kiek vartotojų galime prisijungti prie savo serverio? Ir šiaip, kas/kas ten yra? Ką? Ir kiek?

Pažiūrėkime, kas ten yra pagal oficialią dokumentaciją... Taip, padarykime taip:

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

„Laikykite kišenę platesnę“ Naudodami siūlomas komandas visada gausime panašią klaidą:

«curl: (7) Nepavyko prisijungti prie localhost prievado 2398: Ryšys atmestas»

Mūsų įgaliotasis serveris veiks. Bet! Gausime beigelį, o ne statistiką.

Jūs galite padaryti ką nors raudonų akių žmonėms: patikrinkite

$ netstat -an | grep 2398 и...

Iš pradžių maniau, kad tai dar viena „Telegram“ kūrėjų problema (ir vis dar taip manau), tada radau gerą laikiną sprendimą: „Docker Container“ nupoliravimas failu.

Vėliau ši informacija patraukė mano dėmesį:

apie valstybinius Roskomnadzor šokius apie „statistiką“.

„Naudodami „Firehol“ projekto duomenų bazes, savo serveriuose užblokavome kai kuriuos viešuosius tarpinius serverius. Šis projektas stebi sąrašus su viešaisiais tarpiniais serveriais ir kuria duomenų bazes su jais.

Nuo to momento (ty beveik dvi dienas) nebuvo užblokuotas nė vienas mūsų Rusijos tarpinio serverio IP adresas.

3. Mes jums pasakysime, kaip sukurti tarpinį serverį, kuris yra beveik nepažeidžiamas „Roskomnadzor“, ir bendriname scenarijų, skirtą viešiesiems tarpiniams serveriams blokuoti.

— Atnaujinkite dokerio konteinerio (arba demono) MTProto tarpinį serverį į naujausią versiją: RKN apskaičiuoja senas versijas naudodamas statistikos prievadą, kuris buvo susietas su 0.0.0.0 ir unikaliai identifikavo save visame internete. Dar geriau, atidarykite reikiamus prievadus naudodami iptables, o likusius uždarykite (atminkite, kad docker konteinerio atveju turėtumėte naudoti taisyklę FORWARD).

— „Roskomnadzor“ jau seniai išmoko išstumti srautą: jie mato užklausas HTTP ir SOCKS5 tarpiniuose serveriuose, taip pat mato senąją „MTProto“ tarpinio serverio užtemimo versiją.

Kai kai kurių tiekėjų klientai, kurie yra įdiegę tokias sąvartynas, pasiekia Telegram per tokius tarpinius serverius, RKN mato tokias užklausas ir iš karto blokuoja šiuos tarpinius serverius. Tas pats pasakytina apie MTProto tarpinį serverį su senu užtemdymu.

Sprendimas: klientams, kurie prisijungia prie tarpinio serverio, suteikite paslaptį tik dd pradžioje (paties mtproto proxy nustatymuose nereikia nurodyti papildomų dd raidžių). Tai įgalins užmaskavimo versiją, kurios ištvaros negali aptikti.

Ir jokių HTTP ar SOCKS5 tarpinių serverių.

— Pakeitimas, kurio pagalba kiekvienas Telegram tarpinio serverio savininkas, kurį reguliariai uždraudžia RKN, gali visiškai (arba beveik visiškai) nustoti blokuoti (ir tuo pačiu įsitikinti, kad RKN meluoja).

Scenarijus, draudžiantis viešuosius tarpinius serverius, ir mažas jo vadovas.

šaltinis

Mūsų proxy yra provakarietiškas, pavasario ir vėsiomis vasaros dienomis nesusidūriau su problemomis/blokavimais, tai irgi neprisidėjo prie kūrybos problemų, todėl nesusitvarkiau su tempo praradimu ir nepadariau t prie rakto pridėkite dd* priešdėlį.

Vadovas „statistikos gavimas/stebėjimas“ pagal oficialias MtprotoProxyTelegram instrukcijas neveikia/paseno, teks pataisyti dokerio vaizdą.

Mes taisome.

Mes vis dar veikia konteineris:

$ 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

Pažiūrėkime statistiką:

$ curl http://localhost:2398/stats

curl: (7) Nepavyko prisijungti prie 0.0.0.0 prievado 2398: Ryšys atmestas
Statistika vis dar neprieinama!...

Sužinokite dokerio konteinerio ID:

$ docker ps

KONTEINERIO ID VAIZDO KOMANDA SUKURTA BŪSENA PRIESTŲ PAVADINIMAI
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba..." Maždaug prieš valandą Į viršų Maždaug minutę 0.0.0.0:443->443/tcp mtproto-proxy2

Su savo chartija eikime į doko konteinerį:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Ir pačioje paskutinėje „run.sh“ scenarijaus eilutėje pridedame trūkstamą vėliavėlę:

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

Pridėkite „—http-stats“, kažkas panašaus turėtų atrodyti taip:

«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 (išsaugoti / išeiti iš nano / išeiti iš konteinerio).

Iš naujo paleidžiame dokerio konteinerį:

$ docker restart mtproto-proxy2

Tai viskas, dabar pagal komandą:

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

Įdiekite savo MTProxy telegramą su statistika
Statistikoje yra daug „šiukšlių“ (1/3 jų yra ekrano kopijoje), sukurkite slapyvardį:

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

Gauname tai, kam nupoliravome dokerio konteinerį: jungčių skaičių ir apkrovą:

$ telega

Įdiekite savo MTProxy telegramą su statistika
Docker konteineris veikia, statistika sukasi.

Išeikvoti ištekliai

Nesvarbu, koks šaunus esate Stuartas Redmanas, net jūs paliekate go.na pėdsaką ant apatinių kelnių. Veikiamas Docker vaizdas palieka didelį pėdsaką.

Nėra prasmės apibūdinti docker vaizdų privalumus ir trūkumus. Docker konteineris yra mini virtuali mašina, kuri sunaudoja mažiau išteklių nei „tikra“ virtuali mašina, pavyzdžiui, „VirtualBox“, tačiau tai daro.

1) Docker vaizdas paleidžiamas su statistika arba be jos, du klientai šėlsta arba dešimt - ištekliai naudojami ~vienodai: 75% viso procesoriaus našumo t2.micro.

2) Pažvelkime į VPC serverio stebėjimą:

Įdiekite savo MTProxy telegramą su statistika

Iš resursų panaudojimo grafiko VPC matome, kad dokerio konteineris nuolat sunaudoja ~7,5% viso maks. procesoriaus našumą ir aš tyčia / laikinai sustabdžiau gegužės 28 d (Pastaba – serveryje taip pat veikia OpenVPN ir pptp).

Kodėl 10 % pastovios procesoriaus apkrovos yra šio serverio riba?

Kadangi Amazon EC2 yra apribojimų ir jie skaičiuojami kreditais:

Įdiekite savo MTProxy telegramą su statistika

1 CPU kreditas = 1 CPU, veikiantis 100% apkrova vieną minutę, o mes turime 6 kreditus (tai yra, piko metu 100% procesoriaus išnaudojimas galimas per 6 minutes, o tada procesoriaus galia sumažės). Kiti deriniai: pavyzdžiui, 1 procesoriaus kreditas = 1 CPU, veikiantis 50 % apkrova dvi minutes (tai yra, galime naudoti procesorių esant 50 % apkrovai 12 minučių) arba, pavyzdžiui, pastovi 10 % procesoriaus apkrova. per visą laiką ir kt.

išvados

  • Mes esame skaitmeninio pasipriešinimo dalis. Savo „mamoms ir tėčiams“ suteikėme patikimą komunikacijos kanalą.
  • Jei savo serveryje įdiegėte MtprotoProxyTelegram ir OpenVPN, bet nieko daugiau, nebus jokių vėlavimų/pingų/gedimų, tačiau jei nuolat eksperimentuosite su savo t2/micro, tikėkitės ryšio sulėtėjimo.
  • Mano užjūrio ping yra ~100-250ms, balso ryšio vėlavimų nėra.
  • Finansinės išlaidos už visa tai (įskaitant VPC išteklius) = 0₽.

Perspausdinkite savo straipsnį.

UPD: Dėkojame kai kuriems habrowers už naudingus komentarus, iš tikrųjų įmanoma (ar palaikoma statistika?) Yra geresnių analogų oficialiam Mtproto proxy Telegram docker vaizdui.

Šaltinis: www.habr.com

Добавить комментарий