Implementacija vašeg MTProxy Telegrama sa statistikom

Implementacija vašeg MTProxy Telegrama sa statistikom

"Naslijedio sam ovaj nered,
počevši s besramnim Zellom; LinkedIn
i završava sa "svi ostali" na platformi Telegram
u mom svijetu.

A onda štucanje,
Službenik je žurno i glasno dodao:
ali ja ću dovesti stvari u red (ovdje u IT)"
(...).

Durov s pravom smatra da bi se njega, cypherpunka, trebale bojati autoritarne države, a Roskomnadzor i zlatni štitovi s njihovim DPI filterima mu baš i ne smetaju.
(Politička tehnika)

Moja tehnička politika je jednostavnija, ovdje mogu opisati svoja razmišljanja o nepažljivom blokiranju u Runetu, ali vjerujem da su progresivni građani modernog ruskog i korisnici Habra na vlastitoj koži osjetili neprofesionalizam trenutne vlasti, pa ću se ograničiti na jednu rečenicu: naša tehnička politika je "Digitalni otpor" . "osiguravanje rodbini i prijateljima stabilnog komunikacijskog kanala."

Uvođenje MTProto proxy Telegrama

  • Tehnička razina složenosti je "laka", ako, na primjer, slijedite ovu varalicu.
  • Razina pouzdanosti je "iznadprosječna": docker slika radi stabilno, ne treba je ponovno pokretati svaki dan, kao što su programeri napisali u svojoj službenoj dokumentaciji Telegrama, ali spremnik vjerojatno sadrži neke ranjivosti.
  • Razina otpora/tjeskobe - 10 pripadnika ISIS-a plete svoje zavjere "rođaci koriste", zabrana nije stigla od RKN-a niti jednom cijelo vrijeme (od proljeća).
  • Razina povjerenja je "javno nepovjerenje djeteta", problem na strani klijenta (neki prijatelji sumnjaju na moj MtprotoProxy).
  • Razina testosterona - "nije se povećala."
  • Financijski troškovi - "0₽".
  • Financijska nagrada - "ne ovisi o građaninu Durovu." Promocija - sposobnost nametanja reklame.

Podići ćemo naš TelegramProxy na “besplatne/osobne” kapacitete Amazon-ec2: t2.micro. Koristio sam ovo automobil.

U redu, postavite svoj besplatni poslužitelj, idite na službenu web stranicu dockerhub i preuzmite docker spremnik.

Nema potrebe tražiti neku sliku, datoteku ili čarobni gumb - "nema ih", sva se magija odvija u CLI-ju:

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

Ali prije "toga", instalirajte docker za CLI:

sudo apt-get install docker.io docker

Nadalje, u službenoj dokumentaciji MtprotoProxyTelegrama ponuđeno nam je da učinimo nešto poput sljedećeg:

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

Nakon ove naredbe u izlazu terminala pojavit će se HEX niz, ali on nas ne zanima.

U CLI pišemo:

$ docker logs mtproto-proxy

I dobivamo potrebne podatke:

Implementacija vašeg MTProxy Telegrama sa statistikom
U izlazu ovog dnevnika prikazani smo (razmazani):

A) IP našeg poslužitelja (IP vanjskog poslužitelja);
B) i slučajna tajna - slučajni niz u HEX.

Prije nego što registrirate naš MtproProxy, trebate konfigurirati glavni vatrozid preko iptables (bez obzira na to kako preusmjeravate promet na ovaj VPC, bit će nevaljalo, jer se glavni vatrozid u Amazon-EC2 nalazi u web sučelju i ima veći prioritet nad iptables).

Idemo u "konzola Amazon-EC2" u Sigurnosnoj grupi i otvori dolazni port 443 (logičko maskiranje trgovina ljudima prvi put).

Implementacija vašeg MTProxy Telegrama sa statistikom

Uzimamo svoje “ip i tajne” podatke iz dnevnika i odlazimo na Telegram messenger, pronalazimo službeni MTProxy Admin Bot (@MTProxybot) i registriramo naš MtproProxy: pokrenite naredbu [/newproxy] i unesite [our_ip:443], i zatim naš [tajna /HEX].

Ako zabrljate pri unosu podataka, bot će se naljutiti i poslati vas na ...

Ako ispunite dva retka bez pogrešaka, dobit ćete odobrenje i radnu poveznicu na vaš trenutni MtprotoProxyTelegram, koji možete podijeliti s bilo kim.

Implementacija vašeg MTProxy Telegrama sa statistikom

Također, putem ovog bota možete dodati svoj sponzorski kanal (ali ne i chat), gdje ćete nametnuti svoje stavove korisnicima koji su se spojili na vaš server, ili možete ne "spamiti" i ne gnjaviti svoje potencijalne kupce bez prikazivanje kanala na prikvačenom popisu glasnika.

Još nekoliko riječi o botu, gdje možete tražiti statistiku, ali "i krafnu". Očigledno, "statistika" je dostupna kada imate "mnoštvo džabalera" iza sebe u Mahačkali.

nadgledanje

Koliko korisnika možemo spojiti na naš poslužitelj? I uopće, tko / što je tamo? Što? I koliko?

Gledamo što postoji prema službenoj dokumentaciji ... Da, evo, učinite to ovako:

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

“Drži džep šire” Prema predloženim naredbama, uvijek ćemo dobiti sličnu pogrešku:

«curl: (7) Neuspješno povezivanje na priključak lokalnog hosta 2398: Veza odbijena»

Naš proxy će raditi. Ali! Bagel, ne dobivamo statistiku.

Možete učiniti stvari za crvenooke: provjerite

$ netstat -an | grep 2398 и...

Isprva sam mislio da je to još jedan problem iza programera Telegrama (i još uvijek tako mislim), a onda sam pronašao privremeno dobro rješenje: ispolirati Docker Container datotekom.

Kasnije mi je za oko zapela jedna infa:

o državnim plesovima Roskomnadzora oko "statistike".

“Blokirali smo neke od javnih proxyja na našim poslužiteljima pomoću baza podataka projekta firehol. Ovaj projekt prati popise s javnim proxyjima i s njima izrađuje baze podataka.

Od tog trenutka (odnosno već skoro dva dana) niti jedna IP adresa našeg ruskog proxyja nije blokirana.

3. Reći ćemo vam kako napraviti proxy koji je gotovo neranjiv na Roskomnadzor i podijeliti skriptu za blokiranje javnih proxyja.

- Ažurirajte MTProto proxy docker spremnik (ili demon) na najnoviju verziju: RKN izračunava stare verzije prema portu statistike, koji je bio vezan na 0.0.0.0 i jedinstveno se identificirao za cijeli Internet. Još bolje, otvorite potrebne portove koristeći iptables, a zatvorite ostale (zapamtite da u slučaju docker spremnika trebate koristiti pravilo FORWARD).

— Roskomnadzor je davno naučio kako izbaciti promet: vide zahtjeve unutar HTTP i SOCKS5 proxyja, a također vide i staru verziju MTProto zamagljivanja proxyja.

Kada klijenti nekih provajdera koji imaju instalirane takve dumpove pristupe Telegramu preko takvih proxyja, RKN vidi takve zahtjeve i odmah ih blokira. Isto vrijedi i za MTProto proxy sa starim maskiranjem.

Rješenje: distribuirati tajnu samo s dd na početku klijentima koji se spajaju na proxy (nema potrebe specificirati dodatna slova dd u postavkama samog mtproto proxyja). Ovo će omogućiti verziju maskiranja koju dumppiles ne može otkriti.

I nema HTTP ili SOCKS5 proxyja.

- Prilagodba, uz pomoć koje svaki vlasnik proxy telegrama, koji je redovito zabranjen od strane RKN-a, može potpuno (ili gotovo potpuno) zaustaviti blokiranje (a istovremeno se uvjeriti da RKN laže).

Skripta koja zabranjuje javne proxyje i mali priručnik za nju.

Источник

Naš proxy je prozapadni, nisam naišao na probleme/blokade tijekom proljetnih i hladnih ljetnih dana, nije privlačio ni kreativni zadatak, tako da nisam izgubio tempo i nisam dodao prefiks dd* ključ.

Priručnik "dobivanje statistike/praćenja" prema službenim uputama MtprotoProxyTelegrama ne radi/zastario je, morat ćete popraviti docker sliku.

Mi to popravljamo.

Spremnik još uvijek radi:

$ 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

Provjerimo statistiku:

$ curl http://localhost:2398/stats

curl: (7) Neuspješno povezivanje na 0.0.0.0 port 2398: Veza odbijena
Statistika još uvijek nedostupna.!..

Saznajte ID docker spremnika:

$ docker ps

ID SPREMNIKA SLIKA NAREDBA KREATIRAN STATUS IMENA PORTOVA
f423c209cfdc telegrammessenger/proxy:najnovije "/bin/sh -c '/bin/ba…" Prije oko sat vremena Gore Otprilike minutu 0.0.0.0:443->443/tcp mtproto-proxy2

Idemo s našim charterom u docker kontejner:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

I u zadnji red skripte "run.sh" dodajte zastavicu koja nedostaje:

«--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"

Dodajte "--http-stats", nešto poput ovoga bi trebalo raditi:

«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 (spremi/izlaz iz nano/izlaz iz spremnika).

Ponovno pokrenite naš docker spremnik:

$ docker restart mtproto-proxy2

Sve, sada na naredbu:

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

Implementacija vašeg MTProxy Telegrama sa statistikom
U statistici ima puno "smeća" (1/3 je na ekranu), stvorite alias:

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

Dobivamo ono za što je docker kontejner ispoliran: broj veza i opterećenje:

$ telega

Implementacija vašeg MTProxy Telegrama sa statistikom
Docker spremnik radi, statistika se vrti.

Potrošeni resursi

Koliko god cool bio Stuart Redman, čak i ti ostavljaš trag na gaćicama. Pokrenuta Docker slika ostavlja veliki trag.

Nema smisla opisivati ​​prednosti i nedostatke docker slika, docker kontejner je mini-virtualni stroj koji troši manje resursa od “pravog” virtualnog stroja, kao što je VirtualBox, ali troši.

1) Pokrenut sa ili bez statistike docker-image, dva klijenta se vesele ili deset - resursi se koriste ~ na isti način: 75% cjelokupne CPU t2.micro izvedbe.

2) Gledamo praćenje VPC poslužitelja:

Implementacija vašeg MTProxy Telegrama sa statistikom

Iz grafikona iskorištenja resursa na VPC-u vidimo da docker spremnik konstantno troši ~ 7,5% od ukupnog max. Rad CPU-a i 28. svibnja sam namjerno/privremeno zaustavio (Napomena - OpenVPN & pptp također rade na poslužitelju).

Zašto je 10% stalne upotrebe CPU-a ograničenje za ovaj poslužitelj?

Budući da postoje ograničenja iz Amazon EC2 i ona se obračunavaju u kreditima:

Implementacija vašeg MTProxy Telegrama sa statistikom

1 CPU kredit = 1 CPU koji radi na 100% opterećenja jednu minutu, a imamo 6 kredita (odnosno, na vrhuncu je moguće 100% iskorištenje CPU-a unutar 6 minuta, a tada će se snaga CPU-a smanjiti). Ostale kombinacije: na primjer, 1 CPU kredit = 1 CPU radi s 50% opterećenja dvije minute (tj. možemo koristiti CPU s 50% opterećenja 12 minuta), ili, na primjer, konstantno 10%-to opterećenje CPU-a tijekom cijelo vrijeme itd.

Zaključci

  • Dio smo "Digitalnog otpora". Omogućili su svojim "očevima i majkama" pouzdan komunikacijski kanal.
  • Ako imate MtprotoProxyTelegram i OpenVPN postavljen na poslužitelju, ali ne više, neće biti kašnjenja / pingova / kvarova, ali ako stalno eksperimentirate sa svojim t2 / micro, pričekajte komunikacijske kočnice.
  • Moj inozemni ping je ~100-250ms, nema kašnjenja u glasovnoj komunikaciji.
  • Financijski troškovi za sve "ovo" (uključujući VPC resurse) = 0₽.

Reprint vašeg članka.

UPD: Hvala nekim habrausersima na korisnim komentarima, doista je moguće (je li statistika podržana?), Postoje bolji analozi službene Mtproto proxy Telegram docker slike.

Izvor: www.habr.com

Dodajte komentar