Uw MTProxy Telegram implementeren met statistieken

Uw MTProxy Telegram implementeren met statistieken

"Ik heb deze puinhoop geërfd,
beginnend met de schaamteloze Zello; LinkedIn
en eindigend met "iedereen" op het Telegram-platform
in mijn wereld.

En dan hikken,
De ambtenaar voegde er haastig en luid aan toe:
maar ik zal orde op zaken stellen (hier in IT)"
(...).

Durov vindt terecht dat het autoritaire staten zijn die bang voor hem zouden moeten zijn, een cypherpunk, en Roskomnadzor en gouden schilden met hun DPI-filters storen hem niet echt.
(Politieke techniek)

Mijn technische beleid is eenvoudiger, ik kan hier mijn gedachten beschrijven over onzorgvuldig blokkeren in Runet, maar ik geloof dat de progressieve burgers van moderne Russische en Habr-gebruikers het onprofessionalisme van de huidige regering in hun vel hebben gevoeld, dus ik zal me beperken tot een enkele zin: ons technisch beleid is "Digitaal Weerstand". "familieleden en vrienden voorzien van een stabiel communicatiekanaal."

MTProto-proxy Telegram implementeren

  • Het technische niveau van complexiteit is "gemakkelijk", als u bijvoorbeeld deze spiekbrief volgt.
  • Het betrouwbaarheidsniveau is "bovengemiddeld": het docker-image werkt stabiel, het hoeft niet elke dag opnieuw te worden opgestart, zoals de ontwikkelaars schreven in hun officiële Telegram-documentatie, maar de container bevat waarschijnlijk enkele kwetsbaarheden.
  • De mate van weerstand/angst - 10 ISIS-leden weven hun complotten "verwanten gebruiken", het verbod is niet één keer van de RKN gekomen (sinds het voorjaar).
  • Het vertrouwensniveau is "openbaar baby-wantrouwen", een probleem aan de kant van de klant (sommige vrienden wantrouwen mijn MtprotoProxy).
  • Testosteronniveaus - "werden niet hoger."
  • Financiële kosten - "0₽".
  • Financiële beloning - "hangt niet af van burger Durov." Promotie - de mogelijkheid om advertenties op te leggen.

We zullen onze TelegramProxy verhogen op de "gratis / persoonlijke" capaciteiten van Amazon-ec2: t2.micro. ik gebruikte deze auto.

Oké, implementeer je gratis server, ga naar de officiële website dockerhub en download de docker-container.

U hoeft niet te zoeken naar een afbeelding, bestand of magische knop - "ze zijn er niet", alle magie wordt gedaan in de CLI:

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

Maar voor "dat", installeer docker voor CLI:

sudo apt-get install docker.io docker

Verder wordt ons in de officiële documentatie van MtprotoProxyTelegram aangeboden om zoiets als het volgende te doen:

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

Na dit commando verschijnt er een HEX-string in de terminaluitvoer, maar daar zijn we niet in geïnteresseerd.

We schrijven in CLI:

$ docker logs mtproto-proxy

En we krijgen de vereiste gegevens:

Uw MTProxy Telegram implementeren met statistieken
In de uitvoer van dit logboek worden we getoond (besmeurd):

A) onze server ip (externe server ip);
B) en een willekeurig geheim - een willekeurige string in HEX.

Voordat u onze MtproProxy registreert, moet u de hoofdfirewall configureren via iptables (het maakt niet uit hoe u verkeer naar deze VPC omleidt, het zal ondeugend zijn, aangezien de hoofdfirewall in Amazon-EC2 zich in de webinterface bevindt en een hogere prioriteit heeft dan iptables).

We gaan naar "console Amazon-EC2" in de beveiligingsgroep en open inkomende poort 443 (logische maskering verkeer Voor de eerste keer).

Uw MTProxy Telegram implementeren met statistieken

We halen onze "ip en geheime" gegevens uit het logboek en gaan naar de Telegram-messenger, zoeken de officiële MTProxy Admin Bot (@MTProxybot) en registreren onze MtproProxy: voer de opdracht [/newproxy] uit en voer [our_ip:443] in, en dan ons [geheim /HEX].

Als je het verprutst bij het invoeren van gegevens, wordt de bot boos en stuurt hij je naar ...

Als je twee regels foutloos invult, ontvang je goedkeuring en een werkende link naar je huidige MtprotoProxyTelegram, die je met iedereen kunt delen.

Uw MTProxy Telegram implementeren met statistieken

Ook kunt u via deze bot uw sponsorkanaal toevoegen (maar geen chat), waar u uw mening oplegt aan gebruikers die verbinding hebben gemaakt met uw server, of u kunt niet "spammen" en uw potentiële klanten niet lastig vallen zonder toont het kanaal in de vastgezette berichtenlijst.

Nog een paar woorden over de bot, waar je statistieken kunt opvragen, maar “ook een donut”. Blijkbaar zijn "statistieken" beschikbaar als je "een menigte freeloaders" achter je hebt Makhachkala.

controle

Hoeveel gebruikers kunnen we verbinden met onze server? En trouwens, wie/wat is daar? Wat? En hoeveel?

We kijken naar wat er is volgens de officiële documentatie ... Ja, hier, doe het zo:

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

"Houd uw zak breder" Volgens de voorgestelde commando's zullen we altijd een soortgelijke foutmelding ontvangen:

«curl: (7) Kan geen verbinding maken met localhost-poort 2398: Verbinding geweigerd»

Onze proxy zal werken. Maar! Bagel, geen statistieken die we krijgen.

Je kunt dingen doen voor mensen met rode ogen: check

$ netstat -an | grep 2398 и...

Eerst dacht ik dat dit weer een stijl achter de Telegram-ontwikkelaars was (en dat denk ik nog steeds), toen vond ik een tijdelijke goede oplossing: de Docker Container oppoetsen met een vijl.

Later viel me een infa op:

over de staatsdansen van Roskomnadzor rond "statistieken".

“We hebben een aantal openbare proxy's op onze servers geblokkeerd met behulp van de databases van het Firehol-project. Dit project monitort lijsten met openbare volmachten en maakt er databases mee.

Sinds dat moment (dat wil zeggen al bijna twee dagen) is geen enkel IP-adres van onze Russische proxy geblokkeerd.

3. We vertellen je hoe je een proxy maakt die bijna onkwetsbaar is voor Roskomnadzor en delen een script voor het blokkeren van openbare proxy's.

- Update de MTProto proxy docker container (of daemon) naar de nieuwste versie: RKN berekent oude versies door de statistiekenpoort, die gebonden was aan 0.0.0.0 en zichzelf uniek identificeerde voor het hele internet. Beter nog, open de benodigde poorten met behulp van iptables en sluit de rest (onthoud dat u in het geval van een docker-container de FORWARD-regel moet gebruiken).

— Roskomnadzor heeft lang geleden geleerd hoe ze verkeer moeten dumpen: ze zien oproepen binnen HTTP- en SOCKS5-proxy's, en ze zien ook de oude versie van MTProto-proxy-obfuscatie.

Wanneer klanten van sommige providers die dergelijke dumps hebben geïnstalleerd toegang krijgen tot Telegram via dergelijke proxies, ziet de RKN dergelijke verzoeken en blokkeert deze onmiddellijk. Hetzelfde geldt voor MTProto-proxy met oude verduistering.

Oplossing: verdeel het geheim alleen met dd aan het begin naar clients die verbinding maken met de proxy (het is niet nodig om extra letters dd op te geven in de instellingen van de mtproto-proxy zelf). Dit maakt een versie van verduistering mogelijk die dumppiles niet kunnen detecteren.

En geen HTTP- of SOCKS5-proxy's.

- Aanpassing, waarmee elke eigenaar van een telegramproxy, die regelmatig door de RKN wordt verbannen, het blokkeren (bijna) geheel (of bijna geheel) kan stoppen (en er tegelijkertijd voor kan zorgen dat de RKN liegt).

Een script dat openbare volmachten verbiedt en een kleine handleiding ervoor.

Bron

Onze proxy is pro-westers, ik ben geen problemen/blokkades tegengekomen tijdens de lente en koele zomerdagen, het trok ook geen creatieve taak aan, dus ik verloor geen tempo en voegde het voorvoegsel dd* niet toe aan de sleutel.

De handleiding "statistieken/monitoring ophalen" volgens de officiële instructies van MtprotoProxyTelegram werkt niet/verouderd, u zult de docker-image moeten repareren.

Wij repareren het.

De container draait nog steeds:

$ 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

Laten we de statistieken bekijken:

$ curl http://localhost:2398/stats

curl: (7) Kan geen verbinding maken met 0.0.0.0 poort 2398: Verbinding geweigerd
Statistieken zijn nog steeds niet beschikbaar.!..

Ontdek de ID van de docker-container:

$ docker ps

CONTAINER-ID AFBEELDING COMMAND GEMAAKTE STATUS HAVENNAMEN
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Ongeveer een uur geleden Omhoog Ongeveer een minuut 0.0.0.0:443->443/tcp mtproto-proxy2

We gaan met ons charter in de havenarbeider:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

En voeg in de allerlaatste regel van het "run.sh" -script de ontbrekende vlag toe:

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

Voeg "--http-stats" toe, zoiets zou moeten werken:

«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 (opslaan/afsluiten nano/afsluiten container).

Start onze docker-container opnieuw op:

$ docker restart mtproto-proxy2

Alles, nu op commando:

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

Uw MTProxy Telegram implementeren met statistieken
Er is veel "rotzooi" in de statistieken (1/3 ervan staat op het scherm), maak een alias aan:

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

We krijgen waar de docker-container voor is gepolijst: het aantal verbindingen en de belasting:

$ telega

Uw MTProxy Telegram implementeren met statistieken
De Docker-container draait, de statistieken draaien.

Middelen besteed

Hoe cool je ook bent, Stuart Redman, zelfs jij laat sporen achter op je slipje. Een draaiende Docker-image laat een grote voetafdruk achter.

Het heeft geen zin om de voor- en nadelen van docker-images te beschrijven, een docker-container is een mini-virtuele machine die minder bronnen verbruikt dan een "echte" virtuele machine, zoals VirtualBox, maar dat doet het wel.

1) Gelanceerd met of zonder docker-imagestatistieken, twee clients stoeien of tien bronnen worden ~ op dezelfde manier gebruikt: 75% van de volledige CPU t2.micro-prestaties.

2) We kijken naar de monitoring van de VPC-server:

Uw MTProxy Telegram implementeren met statistieken

Uit de resourcegebruiksgrafiek op de VPC zien we dat de docker-container constant ~ 7,5% van het totale maximum verbruikt. CPU-prestaties en op 28 mei opzettelijk / tijdelijk door mij gestopt (Opmerking - OpenVPN & pptp draaien ook op de server).

Waarom is 10% constant CPU-gebruik de limiet voor deze server?

Omdat er beperkingen zijn van Amazon EC2 en deze worden berekend in credits:

Uw MTProxy Telegram implementeren met statistieken

1 CPU-tegoed = 1 CPU die gedurende één minuut op 100% belasting werkt, en we hebben 6 tegoeden (dat wil zeggen, bij pieken is 100% CPU-gebruik mogelijk binnen 6 minuten, en dan neemt het CPU-vermogen af). Andere combinaties: bijvoorbeeld 1 CPU-tegoed = 1 CPU die gedurende twee minuten op 50% belasting draait (d.w.z. we kunnen de CPU gedurende 50 minuten op 12% belasting gebruiken), of bijvoorbeeld een constante 10%-e CPU-belasting tijdens de hele tijd enz.

Bevindingen

  • Wij maken deel uit van het "Digitaal Verzet". Voorzagen hun "vaders en moeders" van een betrouwbaar communicatiekanaal.
  • Als je MtprotoProxyTelegram en OpenVPN op de server hebt geïmplementeerd, maar niet meer, zullen er geen vertragingen / pings / storingen zijn, maar als je constant aan het experimenteren bent met je t2 / micro, wacht dan op communicatieremmen.
  • Mijn buitenlandse ping is ~100-250ms, er zijn geen vertragingen in spraakcommunicatie.
  • Financiële kosten voor al "dit" (inclusief VPC-bronnen) = 0₽.

Herdruk van uw artikel.

UPD: Dankzij enkele habrausers voor nuttige opmerkingen is het inderdaad mogelijk (worden de statistieken ondersteund?) Er zijn betere analogen van de officiële Mtproto proxy Telegram docker-afbeelding.

Bron: www.habr.com

Voeg een reactie