Distribuer MTProxy Telegram med statistikk

Distribuer MTProxy Telegram med statistikk

"Jeg arvet dette rotet,
starter med den skamløse Zello; LinkedIn
og slutter med «alle andre» på Telegram-plattformen
i min verden.

Og så hikke,
Tjenestemannen la raskt og høyt til:
men jeg skal ordne opp (her i IT)"
(...).

Durov, mener med rette at det er autoritære stater som burde være redde for ham, en cypherpunk, og Roskomnadzor og gyldne skjold med deres DPI-filtre plager ham egentlig ikke.
(Politisk teknikk)

Min tekniske politikk er enklere, jeg kan her beskrive mine tanker om uforsiktig blokkering i Runet, men jeg tror at de progressive innbyggerne av moderne russisk og Habr-brukere har følt uprofesjonaliteten til den nåværende regjeringen i sin egen hud, så jeg vil begrense meg til en enkelt setning: vår tekniske policy er "Digital motstand" . "å gi slektninger og venner en stabil kommunikasjonskanal."

Distribuerer MTProto proxy Telegram

  • Det tekniske kompleksitetsnivået er "lett", hvis du for eksempel følger dette juksearket.
  • Pålitelighetsnivået er "over gjennomsnittet": docker-bildet fungerer stabilt, det trenger ikke å startes på nytt hver dag, som utviklerne skrev i deres offisielle Telegram-dokumentasjon, men beholderen inneholder sannsynligvis noen sårbarheter.
  • Nivået av motstand / angst - 10 ISIS-medlemmer vever sine konspirasjoner "pårørende bruker", forbudet kom ikke fra RKN en gang hele tiden (siden våren).
  • Tillitsnivået er "offentlig babymistro", et problem på klientsiden (noen venner er mistenksomme overfor min MtprotoProxy).
  • Testosteronnivået – «ble ikke høyere».
  • Finansielle kostnader - "0₽".
  • Økonomisk belønning - "avhenger ikke av borger Durov." Promotion - evnen til å påtvinge reklame.

Vi vil øke vår TelegramProxy på "gratis / personlig" kapasiteten til Amazon-ec2: t2.micro. jeg brukte dette bil.

Ok, distribuert din gratis server, gå til den offisielle nettsiden dockerhub og last ned docker-beholderen.

Du trenger ikke å lete etter et bilde, en fil eller en magisk knapp - "de er ikke der", all magien gjøres i CLI:

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

Men før "det", installer docker for CLI:

sudo apt-get install docker.io docker

Videre, i den offisielle dokumentasjonen til MtprotoProxyTelegram, blir vi tilbudt å gjøre noe sånt som følgende, vi gjør:

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

Etter denne kommandoen vil en HEX-streng vises i terminalutgangen, men vi er ikke interessert i den.

Vi skriver i CLI:

$ docker logs mtproto-proxy

Og vi får de nødvendige dataene:

Distribuer MTProxy Telegram med statistikk
I utgangen av denne loggen vises (utsmurt):

A) vår server ip (ekstern server ip);
B) og en tilfeldig hemmelighet - en tilfeldig streng i HEX.

Før du registrerer vår MtproProxy, må du konfigurere hovedbrannmuren over iptables (uansett hvordan du omdirigerer trafikk til denne VPCen, vil det være slemt, siden hovedbrannmuren i Amazon-EC2 ligger i webgrensesnittet og har høyere prioritet over iptables).

Vi går til "konsoll Amazon-EC2" i sikkerhetsgruppen og åpne innkommende port 443 (logisk maskering trafikk for første gang).

Distribuer MTProxy Telegram med statistikk

Vi tar våre "ip og hemmelige" data fra loggen og går til Telegram messenger, finner den offisielle MTProxy Admin Bot (@MTProxybot) og registrerer vår Mtproxy: kjør kommandoen [/newproxy] og skriv inn [our_ip:443], og deretter vår [hemmelige /HEX].

Hvis du roter til når du legger inn data, vil boten bli sint og sende deg til ...

Hvis du fyller ut to linjer uten feil, vil du motta godkjenning og en fungerende lenke til ditt nåværende MtprotoProxyTelegram, som du kan dele med hvem som helst.

Distribuer MTProxy Telegram med statistikk

Gjennom denne boten kan du også legge til sponsorkanalen din (men ikke en chat), der du vil påtvinge dine synspunkter på brukere som har koblet til serveren din, eller du kan ikke "spamme" og ikke plage dine potensielle kunder uten viser kanalen i den festede messenger-listen.

Noen flere ord om boten, hvor du kan be om statistikk, men "også en smultring". Tilsynelatende er "statistikk" tilgjengelig når du har "en mengde frilastere" bak deg Makhachkala.

overvåking

Hvor mange brukere kan vi koble til serveren vår? Og uansett, hvem/hva er der? Hva? Og hvor mange?

Vi ser på hva som er der ifølge den offisielle dokumentasjonen ... Ja, her, gjør det slik:

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

"Hold lommen bredere" I følge de foreslåtte kommandoene vil vi alltid motta en lignende feil:

«curl: (7) Kunne ikke koble til localhost-port 2398: Tilkobling nektet»

Vår proxy vil fungere. Men! Bagel, ikke statistikk vi får.

Du kan gjøre ting for rødøyde: sjekk

$ netstat -an | grep 2398 и...

Først trodde jeg at dette var en annen jamb bak Telegram-utviklerne (og jeg tror det fortsatt), så fant jeg en midlertidig god løsning: poler Docker Container med en fil.

Senere fanget en infa meg:

om statsdansene til Roskomnadzor rundt "statistikk".

"Vi har blokkert noen av de offentlige proxyene på serverne våre ved å bruke databasene til firehol-prosjektet. Dette prosjektet overvåker lister med offentlige fullmakter og lager databaser med dem.

Siden det øyeblikket (det vil si nesten to dager allerede), har ikke en eneste IP-adresse til vår russiske proxy blitt blokkert.

3. Vi forteller deg hvordan du lager en proxy som er nesten usårbar for Roskomnadzor og deler et skript for blokkering av offentlige fullmakter.

- Oppdater MTProto proxy docker-beholderen (eller daemonen) til den nyeste versjonen: RKN beregner gamle versjoner av statistikkporten, som var bundet til 0.0.0.0 og identifiserte seg unikt for hele Internett. Enda bedre, åpne de nødvendige portene ved hjelp av iptables, og lukk resten (husk at i tilfelle av en docker-container, bør du bruke FORWARD-regelen).

— Roskomnadzor har lært å dumpe trafikk for lenge siden: de ser forespørsler inne i HTTP- og SOCKS5-proxyer, og de ser også den gamle versjonen av MTProto-proxy-obfuskering.

Når klienter til enkelte leverandører som har slike dumps installert, får tilgang til Telegram gjennom slike proxyer, ser RKN slike forespørsler og blokkerer umiddelbart disse proxyene. Det samme gjelder for MTProto proxy med gammel obfuskasjon.

Løsning: distribuer hemmelighet kun med dd i begynnelsen til klienter som kobler til proxyen (ikke nødvendig å spesifisere flere bokstaver dd i innstillingene til selve mtproto-proxyen). Dette vil aktivere en versjon av obfuskasjon som dumppiles ikke kan oppdage.

Og ingen HTTP eller SOCKS5 proxyer.

- Justering, ved hjelp av hvilken hver eier av en telegramfullmektig, som regelmessig er utestengt av RKN, helt (eller nesten helt) kan slutte å blokkere (og samtidig sørge for at RKN lyver).

Et manus som forbyr offentlige fullmakter og en liten manual for det.

Kilde

Vår proxy er pro-vestlig, jeg møtte ingen problemer / blokkeringer i løpet av våren og kjølige sommerdager, den tiltrakk seg heller ikke en kreativ oppgave, så jeg mistet ikke tempoet og la ikke til dd*-prefikset til nøkkelen.

Den manuelle "hente statistikk/overvåking" i henhold til de offisielle instruksjonene til MtprotoProxyTelegram fungerer ikke/utdatert, du må reparere docker-bildet.

Vi fikser det.

Containeren kjører fortsatt:

$ 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

La oss sjekke statistikken:

$ curl http://localhost:2398/stats

curl: (7) Kunne ikke koble til 0.0.0.0-port 2398: Tilkobling nektet
Statistikk er fortsatt utilgjengelig.!...

Finn ut ID-en til docker-beholderen:

$ docker ps

BEHOLDER-ID BILDEKOMMANDO OPPRETTET STATUSPORTNAVN
f423c209cfdc telegrammessenger/proxy:nyeste "/bin/sh -c '/bin/ba…" For omtrent en time siden Opp Omtrent et minutt 0.0.0.0:443->443/tcp mtproto-proxy2

Vi går med charteret vårt inne i docker-containeren:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Og i den aller siste linjen i "run.sh"-skriptet, legg til det manglende flagget:

«--http-statistikk»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-hvordan-går-det-du root $CONFIG --allow-skip-d h --nat-info "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

Legg til "--http-stats", noe slikt bør fungere:

«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 (lagre/avslutt nano/avslutt beholder).

Start docker-beholderen vår på nytt:

$ docker restart mtproto-proxy2

Alt, nå på kommando:

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

Distribuer MTProxy Telegram med statistikk
Det er mye "søppel" i statistikken (1/3 av det er på skjermen), lag et alias:

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

Vi får hva docker-containeren ble polert for: antall tilkoblinger og lasten:

$ telega

Distribuer MTProxy Telegram med statistikk
Docker-beholderen kjører, statistikken snurrer.

Ressurser brukt

Så kul som du er Stuart Redman, til og med du setter spor på trusa. Et løpende Docker-bilde etterlater et stort fotavtrykk.

Det gir ingen mening å beskrive fordelene og ulempene med docker-bilder, en docker-beholder er en mini-virtuell maskin som bruker mindre ressurser enn en "ekte" virtuell maskin, for eksempel VirtualBox, men den gjør det.

1) Lansert med eller uten docker-image-statistikk, to klienter boltrer seg eller ti - ressurser brukes ~ på samme måte: 75% av hele CPU t2.micro-ytelsen.

2) Vi ser på overvåkingen av VPC-serveren:

Distribuer MTProxy Telegram med statistikk

Fra ressursutnyttelsesgrafen på VPC ser vi at docker-containeren konstant forbruker ~7,5 % av det totale maks. CPU-ytelse og 28. mai ble stoppet av meg med vilje/midlertidig (Merk - OpenVPN og pptp kjører også på serveren).

Hvorfor er 10 % konstant CPU-bruk grensen for denne serveren?

Fordi det er restriksjoner fra Amazon EC2 og de er beregnet i studiepoeng:

Distribuer MTProxy Telegram med statistikk

1 CPU-kreditt = 1 CPU som jobber med 100 % belastning i ett minutt, og vi har 6 studiepoeng (det vil si ved topper er 100 % CPU-utnyttelse mulig innen 6 minutter, og da vil CPU-kraften reduseres). Andre kombinasjoner: for eksempel 1 CPU-kreditt = 1 CPU som kjører med 50 % belastning i to minutter (dvs. vi kan bruke CPUen med 50 % belastning i 12 minutter), eller for eksempel en konstant 10 %-te CPU-belastning under hele tiden osv.

Funn

  • Vi er en del av «Digital Motstand». Forsynte deres "fedre og mødre" med en pålitelig kommunikasjonskanal.
  • Hvis du har MtprotoProxyTelegram og OpenVPN utplassert på serveren, men ikke mer, vil det ikke være noen forsinkelser/pinger/feil, men hvis du hele tiden eksperimenterer med t2/micro, så vent på kommunikasjonsbremser.
  • Min oversjøiske ping er ~100-250ms, det er ingen forsinkelser i talekommunikasjon.
  • Finansielle kostnader for alt "dette" (inkludert VPC-ressurser) = 0₽.

Opptrykk av artikkelen din.

UPD: Takk til noen habrausere for nyttige kommentarer, det er faktisk mulig (støttes statistikken?), Det er bedre analoger av det offisielle Mtproto proxy Telegram docker-bildet.

Kilde: www.habr.com

Legg til en kommentar