Bereitstellung Ihres MTProxy Telegram mit Statistik

Bereitstellung Ihres MTProxy Telegram mit Statistik

„Ich habe dieses Durcheinander geerbt,
angefangen mit skrupellosen Zello; LinkedIn
und endend mit „allen anderen“ auf der Plattform Telegram
in meiner Welt.

Und dann, nach einem Schluckauf,
fĂŒgte der Beamte hastig und laut hinzu:
aber ich werde hier (in der IT) Ordnung schaffen“
(
).

Durov hÀlt zu Recht, dass autoritÀre Staaten Angst vor ihm, dem Kryptoprofi, haben sollten, wÀhrend die Roskomnadsors und goldenen Schilde mit ihren DPI-Filtern ihn nicht wirklich stören»
(Politische Technik)

Meine technische Politik ist simpler, ich kann hier meine Überlegungen zu sorglosen Blockaden im Runet darlegen, aber ich glaube, dass fortschrittliche BĂŒrger des modernen Russlands und Nutzer von Habr das Unprofessionalismus der regierenden Macht am eigenen Leib gespĂŒrt haben, daher beschrĂ€nke ich mich auf einen einzigen Satz: unsere technische Politik ist „Digitaler Widerstand“. „Sicherheit fĂŒr Familie und Freunde durch einen stabilen Kommunikationskanal“.

Bereitstellung von MTProto Proxy Telegram

  • Schwierigkeitsgrad — „nicht kompliziert“, wenn man beispielsweise diesem Handzettel folgt.
  • ZuverlĂ€ssigkeitsgrad — â€žĂŒber dem Durchschnitt“: Das Docker-Image funktioniert stabil, es ist nicht erforderlich, es tĂ€glich neu zu starten, wie die Entwickler in ihrer offiziellen Telegram-Dokumentation geschrieben haben, aber der Container enthĂ€lt mit Sicherheit einige SicherheitsanfĂ€lligkeiten.
  • Widerstands-/Angstgrad — 10 IS-KĂ€mpfer spinnen ihre Verschwörungen mit „Familie benutzt es“, ein Bann kam seit dem FrĂŒhling nie vom RKN.
  • Vertrauensgrad — „öffentliches Baby-Misstrauen“, das Problem liegt auf der Seite der Kunden (einige Freunde stehen meinem MtprotoProxy misstrauisch gegenĂŒber).
  • Testosteronspiegel — „nicht gestiegen“.
  • Finanzielle Ausgaben — „0ₜ“.
  • Finanzielle Belohnung — „hingt nicht von BĂŒrger Durov ab“. Anreiz — Möglichkeit, Werbung aufzuzwingen.

Wir werden unser TelegramProxy auf „kostenlosen/persönlichen“ Ressourcen von Amazon-ec2: t2.micro betreiben. Ich habe diese Maschine verwendet. Okay, wir haben unser kostenloses

, gehen zur offiziellen Website Serverdockerhub und laden den Docker-Container herunter. Es ist nicht nötig, nach einem bestimmten Image, einer Datei oder einem Zauberbutton zu suchen — „gibt es nicht“, die ganze Magie geschieht in der CLI:

$ docker pull telegrammessenger/proxy #Image heruntergeladen.

Aber vor „diesem“ stellen Sie Docker fĂŒr die CLI ein:

sudo apt-get install docker.io docker

Danach schlagen uns die offiziellen Dokumentationen von MtprotoProxyTelegram vor, Folgendes zu tun:

In der offiziellen Dokumentation von MtprotoProxyTelegram wird uns vorgeschlagen, Folgendes zu tun:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest # starten wir unseren Container «mtproto-proxy».

Nach diesem Befehl wird eine HEX-Zeichenfolge in der Terminalausgabe erscheinen, die uns jedoch nicht interessiert.

Geben Sie im CLI ein:

$ docker logs mtproto-proxy

Und wir erhalten die benötigten Daten:

Bereitstellung Ihres MTProxy Telegram mit Statistik
In der Ausgabe dieses Logs sehen wir (verpixelt):

A) unsere Server-IP (externe Server-IP);
B) und das zufĂ€llige Geheimnis — eine zufĂ€llige Zeichenfolge in HEX.

Bevor wir unseren MtproProxy registrieren, mĂŒssen wir die Hauptfirewall ĂŒber iptables konfigurieren (egal wie Sie den Verkehr in diesem VPC umleiten, er wird ungehorsam sein, da die wichtigste Firewall in Amazon-EC2 sich im Web-Interface befindet und eine höhere PrioritĂ€t als iptables hat).

Wir gehen zu «Konsole Amazon-EC2» in die Sicherheitsgruppe und öffnen den eingehenden Port 443 (sinnvolle Maskierung des Verkehrs fĂŒr die erste Zeit).

Bereitstellung Ihres MTProxy Telegram mit Statistik

Wir nehmen unsere Daten «IP und Geheimnis» aus dem Log und gehen zum Messenger Telegram, finden den offiziellen MTProxy Admin Bot (@MTProxybot) und registrieren unseren MtproProxy: wir fĂŒhren den Befehl [\/newproxy] aus und geben [unser_ip:443] ein, und danach unser [geheimnis\/HEX].

Wenn Sie beim Eingeben der Daten einen Fehler machen, wird der Bot wĂŒtend und schickt Sie auf


Wenn Sie zwei Zeilen ohne Fehler ausfĂŒllen, erhalten Sie die Genehmigung und einen funktionierenden Link zu Ihrem aktiven MtprotoProxyTelegram, den Sie mit jedem teilen können.

Bereitstellung Ihres MTProxy Telegram mit Statistik

Mit diesem Bot können Sie auch Ihren Sponsorenkanal hinzufĂŒgen (aber keinen Chat), wo Sie Ihre Ansichten den Nutzern aufzwingen, die sich mit Ihrem zu einem Server, oder Sie können es vermeiden, «Spam» zu senden und Ihre potenziellen Kunden nicht zu belĂ€stigen, indem Sie den Kanal nicht in der angehefteten Liste des Messengers anzeigen.

Noch ein paar Worte zu dem Bot, dort können Sie Statistiken anfordern, aber «auch ein Donut». Offensichtlich ist die «Statistik» verfĂŒgbar, wenn Sie von Machatschkala «einer Gruppe von Schmarotzern» verfolgt werden.

Überwachung

Und wie viele Nutzer können wir mit unserem Server verbinden? Und ĂŒberhaupt, wer/was ist da? Was? Und wie viele?

Sehen wir uns an, was die offizielle Dokumentation sagt
 Aha, so machen:

$ curl http://localhost:2398/stats oder so $ docker exec mtproto-proxy curl http://localhost:2398/stats # und wir erhalten die Statistiken direkt im CLI.

«Halte deinen Geldbeutel weit offen» Bei den vorgeschlagenen Befehlen werden wir immer einen Àhnlichen Fehler erhalten:

«curl: (7) Failed to connect to localhost port 2398: Verbindung abgelehnt»

Proxy wird funktionieren. Aber! Einen Donut und keine Statistik erhalten wir.

Wir können uns mit den roten Augen beschĂ€ftigen: ĂŒberprĂŒfen

$ netstat -an | grep 2398 und...

ZunÀchst dachte ich, dass es ein weiterer Fehler seitens der Entwickler von Telegram sei (und ich denke immer noch so), fand jedoch eine temporÀre, ziemlich gute Lösung: die Docker-Container mit einer Feile zu bearbeiten.

SpĂ€ter stieß ich auf Informationen:

ĂŒber die staatlichen AktivitĂ€ten von Roskomnadzor rund um die „Statistik“.

„Wir haben auf unseren Servern einige öffentliche Proxys blockiert, indem wir die Datenbanken des Projekts firehol genutzt haben. Dieses Projekt ĂŒberwacht die Listen öffentlicher Proxys und erstellt Datenbanken mit ihnen.

Seit diesem Zeitpunkt (also bereits fast zwei Tage) wurde keine einzige IP-Adresse unseres russischen Proxys blockiert.

3. Wir erklĂ€ren, wie man einen fĂŒr Roskomnadzor nahezu unverwundbaren Proxy erstellt und teilen ein Skript zur Blockierung öffentlicher Proxys.

— Aktualisieren Sie den Docker-Container (oder Dienst) MTProto-Proxy auf die neueste Version: RKN erkennt alte Versionen am Statistik-Port, der auf 0.0.0.0 gebunden war und sich somit eindeutig im Internet identifizierte. Am besten — öffnen Sie die benötigten Ports mit Hilfe von iptables, und schließen Sie die anderen — denken Sie daran, dass beim Docker-Container die Regel FORWARD verwendet werden sollte.

— Roskomnadzor hat schon lange gelernt, den Datenverkehr zu dumpen: Sie sehen Anfragen innerhalb von HTTP- und SOCKS5-Proxys und erkennen auch die alte Version der Obfuskation von MTProto-Proxy.

Wenn Kunden einiger Anbieter, auf deren Seite solche Dumps laufen, ĂŒber solche Proxys auf Telegram zugreifen, sieht RKN diese Anfragen und blockiert sofort diese Proxys. Das Gleiche gilt fĂŒr MTProto-Proxys mit alter Obfuskation.

Lösung: Geben Sie den Kunden, die sich mit dem Proxy verbinden, ein Secret mit dd zu Beginn (ZusĂ€tzliche Buchstaben dd mĂŒssen nicht in den Einstellungen des MTProto-Proxys angegeben werden). Dies aktiviert die Version der Obfuskation, die Dump-Tools nicht erkennen können.

Und keine HTTP- und SOCKS5-Proxys.

— Ein Trick, mit dem jeder Besitzer eines Telegram-Proxys, der regelmĂ€ĂŸig von RKN gesperrt wird, die Sperrungen vollstĂ€ndig (oder fast vollstĂ€ndig) einstellen kann (und gleichzeitig sicherstellen kann, dass RKN lĂŒgt).

Ein Skript, das öffentliche Proxys bannt und eine kleine Anleitung dazu.

→ Quelle

Unser Proxy ist prowestlich, ich habe in den frischen und kĂŒhlen Sommertagen keine Probleme/Sperrungen erlebt, es war auch keine kreative Herausforderung, also habe ich mich nicht mit einem Verlust an Tempo beschĂ€ftigt und den PrĂ€fix dd* nicht zum SchlĂŒssel hinzugefĂŒgt.

Das Handbuch „Statistik erhalten / Monitoring“ gemĂ€ĂŸ der offiziellen MtprotoProxyTelegram-Anleitung ist außer Betrieb / veraltet, und es muss das Docker-Image repariert werden.

Wir reparieren.

Der Container lÀuft noch:

$ docker stop mtproto-proxy # ĐŸŃŃ‚Đ°ĐœĐŸĐČĐžĐŒ ĐœĐ°Ńˆ Đ·Đ°ĐżŃƒŃ‰Đ”ĐœĐœŃ‹Đč docker-ĐșĐŸĐœŃ‚Đ”ĐčĐœĐ”Ń€ und starten ein neues Image mit dem fehlenden Statistik-Flag
$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config: /data -e SECRET=Ihr_vorheriger_Secret_hex telegrammessenger/proxy:latest

ÜberprĂŒfen wir die Statistik:

$ curl http://localhost:2398/stats

curl: (7) Verbindung zu 0.0.0.0 Port 2398 fehlgeschlagen: Die Verbindung wurde abgelehnt
Die Statistik ist immer noch nicht verfĂŒgbar. ..!

Wir erfahren die ID des Docker-Containers:

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:latest „/bin/sh -c ‘/bin/ba
“ Vor etwa einer Stunde Hoch Vor etwa einer Minute 0.0.0.0:443->443/tcp mtproto-proxy2

Gehen wir mit unseren Regeln in den Docker-Container:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Und in der letzten Zeile des Skripts „run.sh“ fĂŒgen wir das fehlende Flag hinzu:

«—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 root $CONFIG —allow-skip-d h —nat-info „$INTERNAL_IP:$IP“ $SECRET_CMD $TAG_CMD“

FĂŒgen Sie „—http-stats“ hinzu; so etwas sollte das Ergebnis sein:

„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 (speichern / aus nano aussteigen / aus dem Container aussteigen).

Wir starten unseren Docker-Container neu:

$ docker restart mtproto-proxy2

Fertig, jetzt mit dem Befehl:

$ curl http://localhost:2398/stats # erhalten wir umfassende Statistiken

Bereitstellung Ihres MTProxy Telegram mit Statistik
In den Statistiken gibt es viel „MĂŒll“ (auf dem Screenshot 1/3 davon), wir erstellen ein Alias:

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

Wir erhalten das, wofĂŒr wir den Docker-Container poliert haben: die Anzahl der Verbindungen und die Last:

$ telega

Bereitstellung Ihres MTProxy Telegram mit Statistik
Der Docker-Container lÀuft, die Statistik funktioniert.

Verbrauchte Ressourcen

Wie cool du auch bist, Stuart Redman, selbst du hinterlĂ€sst einen Fleck von Scheiße auf deiner Unterhose. Ein funktionierendes Docker-Image hinterlĂ€sst einen ordentlichen Fußabdruck.

Es macht keinen Sinn, die Vor- und Nachteile von Docker-Images zu erlĂ€utern; ein Docker-Container ist eine Mini-Virtualisierungsmaschine, die weniger Ressourcen verbraucht als eine „echte“ virtuelle Maschine wie VirtualBox, aber trotzdem Ressourcen benötigt.

1) Egal, ob das Docker-Image mit oder ohne Statistik lĂ€uft, ob zwei Clients oder zehn aktiv sind – die Ressourcen werden ungefĂ€hr gleich genutzt: 75% der gesamten CPU-Leistung eines t2.micro.

2) Schauen wir uns das Monitoring des VPC-Servers an:

Bereitstellung Ihres MTProxy Telegram mit Statistik

Aus dem Ressourcenverwertungsdiagramm auf VPC sehen wir, dass der Docker-Container stĂ€ndig etwa 7,5% der gesamten maximalen CPU-Leistung verbraucht und am 28. Mai von mir absichtlich/zurĂŒckhaltend gestoppt wurde. (Hinweis – auf dem Server laufen auch OpenVPN & pptp).

Warum ist eine dauerhafte CPU-Auslastung von 10% das Maximum fĂŒr diesen Server?

Weil es von Amazon EC2 BeschrÀnkungen gibt, die in Credits berechnet werden:

Bereitstellung Ihres MTProxy Telegram mit Statistik

1 CPU-Credit = 1 CPU, die mit 100% Auslastung fĂŒr eine Minute lĂ€uft, und wir haben 6 Credits (das bedeutet, dass eine 100%-ige CPU-Auslastung in Spitzenzeiten fĂŒr bis zu 6 Minuten möglich ist, danach wird die CPU-Leistung reduziert). Andere Kombinationen: Zum Beispiel 1 CPU-Credit = 1 CPU, die mit 50% Auslastung fĂŒr zwei Minuten lĂ€uft (das heißt, wir können die CPU mit 50% Auslastung fĂŒr insgesamt 12 Minuten nutzen) oder, ein Beispiel, eine konstante 10%-ige CPU-Auslastung ĂŒber die gesamte Zeit.

Das DBMS Tarantool ist ein attraktives, zukunftstrÀchtiges Produkt zur Erstellung von hochbelasteten Anwendungen.

  • Wir sind ein Teil des „Digitalen Widerstands“. Wir haben unseren „Familien“ einen zuverlĂ€ssigen Kommunikationskanal ermöglicht.
  • Wenn auf dem Server MtprotoProxyTelegram und OpenVPN, aber nicht mehr, betreiben, wird es keine Verzögerungen/Pings/Unterbrechungen geben, aber wenn Sie stĂ€ndig mit Ihrem t2/micro experimentieren, erwarten Sie Verbindungsprobleme.
  • Mein ĂŒberseeischer Ping liegt bei ~100-250 ms, Verzögerungen in der Sprachkommunikation sind nicht spĂŒrbar.
  • Die finanziellen Kosten fĂŒr alles „dies“ (einschließlich der VPC-Ressourcen) betragen 0ₜ.

Wiedergabe meines Artikels.

UPD: Danke an einige Habr-User fĂŒr die hilfreichen Kommentare, tatsĂ€chlich könnte es (wird die Statistik unterstĂŒtzt?) bessere Alternativen zum offiziellen Docker-Image von Mtproto-Proxy Telegram geben.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster