Implementazione del tuo MTProxy Telegram con statistiche

Implementazione del tuo MTProxy Telegram con statistiche

"Ho ereditato questo casino,
a cominciare dallo spudorato Zello; Linkedin
e termina con "tutti gli altri" sulla piattaforma Telegram
nel mio mondo.

E poi singhiozzo,
Il funzionario aggiunse frettolosamente e ad alta voce:
ma metterò le cose in ordine (qui in IT)"
(...).

Durov, giustamente crede che siano gli stati autoritari che dovrebbero aver paura di lui, un cypherpunk, e Roskomnadzor e gli scudi d'oro con i loro filtri DPI non lo infastidiscono davvero.
(Tecnica politica)

La mia politica tecnica è più semplice, posso descrivere qui i miei pensieri sul blocco imprudente in Runet, ma credo che i cittadini progressisti degli utenti di Modern Russian e Habr abbiano sentito sulla propria pelle la mancanza di professionalità dell'attuale governo, quindi mi limiterò a una sola frase: la nostra politica tecnica è “Resistenza Digitale”. "fornire a parenti e amici un canale di comunicazione stabile".

Distribuzione del proxy MTProto Telegram

  • Il livello tecnico di complessità è "facile", se, ad esempio, segui questo cheat sheet.
  • Il livello di affidabilità è “sopra la media”: l'immagine docker funziona stabilmente, non ha bisogno di essere riavviata ogni giorno, come hanno scritto gli sviluppatori nella loro documentazione ufficiale di Telegram, ma il contenitore probabilmente contiene alcune vulnerabilità.
  • Il livello di resistenza/ansia - 10 membri dell'ISIS stanno tessendo le loro cospirazioni "uso dei parenti", il divieto non è arrivato dall'RKN nemmeno una volta per tutto il tempo (dalla primavera).
  • Il livello di fiducia è "public baby diffidenza", un problema sul lato client (alcuni amici sono sospettosi del mio MtprotoProxy).
  • Livelli di testosterone - "non sono aumentati".
  • Costi finanziari - "0₽".
  • Ricompensa finanziaria - "non dipende dal cittadino Durov". Promozione: la capacità di imporre pubblicità.

Alzeremo il nostro TelegramProxy sulle capacità “libere/personali” di Amazon-ec2: t2.micro. ero solito questo un'automobile.

Ok, distribuito il tuo server gratuito, vai al sito ufficiale Docker Hub e scarica il contenitore docker.

Non c'è bisogno di cercare un'immagine, un file o un pulsante magico: "non ci sono", tutta la magia viene eseguita nella CLI:

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

Ma prima di "quello", installa la finestra mobile per la CLI:

sudo apt-get install docker.io docker

Inoltre, nella documentazione ufficiale di MtprotoProxyTelegram, ci viene offerto di fare qualcosa di simile al seguente, facciamo:

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

Dopo questo comando, apparirà una stringa HEX nell'output del terminale, ma non ci interessa.

Scriviamo in CLI:

$ docker logs mtproto-proxy

E otteniamo i dati richiesti:

Implementazione del tuo MTProxy Telegram con statistiche
Nell'output di questo registro, ci viene mostrato (spalmato):

A) il nostro ip del server (ip del server esterno);
B) e un segreto casuale - una stringa casuale in HEX.

Prima di registrare il nostro MtproProxy, devi configurare il firewall principale su iptables (non importa come reindirizzi il traffico a questo VPC, sarà cattivo, poiché il firewall principale in Amazon-EC2 si trova nell'interfaccia web e ha una priorità più alta rispetto iptables).

Andiamo a "consolle Amazon-EC2" nel gruppo di sicurezza e aprire la porta in entrata 443 (mascheramento logico traffico per la prima volta).

Implementazione del tuo MTProxy Telegram con statistiche

Prendiamo i nostri dati "ip e segreti" dal registro e andiamo al messenger di Telegram, troviamo il MTProxy Admin Bot ufficiale (@MTProxybot) e registriamo il nostro MtproProxy: esegui il comando [/newproxy] e inserisci [our_ip:443], e poi il nostro [segreto /HEX].

Se sbagli quando inserisci i dati, il bot si arrabbierà e ti manderà a ...

Se compili due righe senza errori, riceverai l'approvazione e un collegamento funzionante al tuo attuale MtprotoProxyTelegram, che puoi condividere con chiunque.

Implementazione del tuo MTProxy Telegram con statistiche

Inoltre, attraverso questo bot, puoi aggiungere il tuo canale di sponsorizzazione (ma non una chat), dove imporrai le tue visualizzazioni agli utenti che si sono connessi al tuo server, oppure non puoi "spammare" e non disturbare i tuoi potenziali clienti senza mostrando il canale nell'elenco dei messaggi appuntati.

Qualche parola in più sul bot, dove si possono richiedere statistiche, ma “anche una ciambella”. Apparentemente, le "statistiche" sono disponibili quando hai "una folla di scrocconi" dietro di te Makhachkala.

Monitoraggio

Quanti utenti possiamo connettere al nostro server? E comunque, chi/cosa c'è? Che cosa? E quanti?

Guardiamo cosa c'è secondo la documentazione ufficiale ... Sì, ecco, fallo così:

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

"Tieni la tasca più larga" Secondo i comandi proposti, riceveremo sempre un errore simile:

«curl: (7) Impossibile connettersi alla porta localhost 2398: connessione rifiutata»

Il nostro proxy funzionerà. Ma! Bagel, non le statistiche che otteniamo.

Puoi fare cose per gli occhi rossi: controlla

$ netstat -an | grep 2398 и...

All'inizio pensavo che questo fosse un altro stipite dietro gli sviluppatori di Telegram (e lo penso ancora), poi ho trovato una buona soluzione temporanea: lucidare il Docker Container con un file.

Più tardi, un'informazione attirò la mia attenzione:

sulle danze di stato di Roskomnadzor intorno alle "statistiche".

“Abbiamo bloccato alcuni dei proxy pubblici sui nostri server utilizzando i database del progetto firehol. Questo progetto monitora elenchi con proxy pubblici e crea database con essi.

Da quel momento (cioè già quasi due giorni), non è stato bloccato un solo indirizzo IP del nostro proxy russo.

3. Ti spieghiamo come creare un proxy quasi invulnerabile a Roskomnadzor e condividere uno script per bloccare i proxy pubblici.

- Aggiorna il contenitore docker proxy MTProto (o daemon) all'ultima versione: RKN calcola le vecchie versioni in base alla porta delle statistiche, che era associata a 0.0.0.0 e si identificava in modo univoco per l'intera Internet. Meglio ancora, apri le porte necessarie usando iptables e chiudi il resto (ricorda che nel caso di un contenitore docker, dovresti usare la regola FORWARD).

— Roskomnadzor ha imparato a scaricare il traffico molto tempo fa: vede le richieste all'interno dei proxy HTTP e SOCKS5 e vede anche la vecchia versione dell'offuscamento del proxy MTProto.

Quando i client di alcuni provider che hanno tali dump installati accedono a Telegram tramite tali proxy, l'RKN vede tali richieste e blocca immediatamente questi proxy. Lo stesso vale per il proxy MTProto con il vecchio offuscamento.

Soluzione: distribuire secret solo con dd all'inizio ai client che si connettono al proxy (non è necessario specificare lettere aggiuntive dd nelle impostazioni del proxy mtproto stesso). Ciò consentirà una versione di offuscamento che i dumppile non possono rilevare.

E nessun proxy HTTP o SOCKS5.

- Adeguamento, con l'aiuto del quale ogni proprietario di un proxy di telegramma, regolarmente bannato dall'RKN, può interrompere completamente (o quasi) il blocco (e allo stesso tempo assicurarsi che l'RKN stia mentendo).

Uno script che vieta i proxy pubblici e un piccolo manuale per questo.

Fonte

Il nostro proxy è filo-occidentale, non ho riscontrato problemi/blocchi durante la primavera e le fresche giornate estive, non ha nemmeno attratto un compito creativo, quindi non ho perso il passo e non ho aggiunto il prefisso dd* a il tasto.

Il manuale "ottenere statistiche/monitoraggio" secondo le istruzioni ufficiali di MtprotoProxyTelegram non funziona/non è aggiornato, dovrai riparare l'immagine docker.

Lo aggiustiamo.

Il contenitore è ancora in esecuzione:

$ 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

Controlliamo le statistiche:

$ curl http://localhost:2398/stats

curl: (7) Impossibile connettersi alla porta 0.0.0.0 2398: Connessione rifiutata
Le statistiche non sono ancora disponibili.!..

Scopri l'ID del contenitore docker:

$ docker ps

ID CONTAINER IMMAGINE COMANDO STATO CREATO NOMI PORTE
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Circa un'ora fa Su Circa un minuto 0.0.0.0:443->443/tcp mtproto-proxy2

Andiamo con il nostro charter all'interno del container docker:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

E nell'ultima riga dello script "run.sh", aggiungi il flag mancante:

«--http-stats»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-come-stai-facendo -u root $CONFIG --allow-skip-d h --nat-info "$IP_INTERNO:$IP" $SECRET_CMD $TAG_CMD"

Aggiungi "--http-stats", qualcosa del genere dovrebbe funzionare:

«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 (salva/esci dal nano/esci dal contenitore).

Riavvia il nostro contenitore docker:

$ docker restart mtproto-proxy2

Tutto, ora a comando:

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

Implementazione del tuo MTProxy Telegram con statistiche
C'è molta "spazzatura" nelle statistiche (1/3 di essa è sullo schermo), crea un alias:

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

Otteniamo ciò per cui è stato lucidato il contenitore docker: il numero di connessioni e il carico:

$ telega

Implementazione del tuo MTProxy Telegram con statistiche
Il container Docker è in esecuzione, le statistiche girano.

Risorse spese

Figo come sei Stuart Redman, anche tu lasci un segno sulle tue mutandine. Un'immagine Docker in esecuzione lascia una grande impronta.

Non ha senso descrivere i vantaggi e gli svantaggi delle immagini docker, un docker container è una mini-macchina virtuale che consuma meno risorse di una macchina virtuale “reale”, come VirtualBox, ma lo fa.

1) Lanciato con o senza statistiche sull'immagine docker, due client si divertono o dieci - le risorse vengono utilizzate allo stesso modo: 75% delle prestazioni dell'intera CPU t2.micro.

2) Esaminiamo il monitoraggio del server VPC:

Implementazione del tuo MTProxy Telegram con statistiche

Dal grafico sull'utilizzo delle risorse nel VPC, vediamo che il container docker consuma costantemente circa il 7,5% del totale max. Le prestazioni della CPU e il 28 maggio sono state interrotte da me intenzionalmente/temporaneamente (Nota: anche OpenVPN e pptp sono in esecuzione sul server).

Perché il 10% di utilizzo costante della CPU è il limite per questo server?

Perché ci sono restrizioni da Amazon EC2 e sono calcolate in crediti:

Implementazione del tuo MTProxy Telegram con statistiche

1 credito CPU = 1 CPU funzionante al 100% del carico per un minuto e abbiamo 6 crediti (ovvero, nei picchi, è possibile utilizzare il 100% della CPU entro 6 minuti, quindi la potenza della CPU diminuirà). Altre combinazioni: ad esempio, 1 credito CPU = 1 CPU in esecuzione al 50% del carico per due minuti (ovvero possiamo utilizzare la CPU al 50% del carico per 12 minuti), o, ad esempio, un carico costante della CPU del 10% durante tutto il tempo, ecc.

risultati

  • Facciamo parte della "Resistenza Digitale". Fornito ai loro "padri e madri" un canale di comunicazione affidabile.
  • Se MtprotoProxyTelegram e OpenVPN sono distribuiti sul server, ma non di più, non ci saranno ritardi / ping / guasti, ma se sperimenti costantemente con il tuo t2 / micro, attendi i freni di comunicazione.
  • Il mio ping all'estero è di ~ 100-250 ms, non ci sono ritardi nella comunicazione vocale.
  • Costi finanziari per tutto "questo" (comprese le risorse VPC) = 0₽.

Ristampa del tuo articolo.

UPD: Grazie ad alcuni habrauser per i commenti utili, infatti, è possibile (le statistiche sono supportate?), Ci sono analoghi migliori dell'immagine docker Telegram del proxy Mtproto ufficiale.

Fonte: habr.com

Aggiungi un commento