Distribution av egen MTProxy Telegram med statistik

Distribution av egen MTProxy Telegram med statistik

Jag Àrver denna oreda,
börjar med de skamlösa Zello; LinkedIn
och slutar med "alla andra" pÄ plattformen Telegram
i min vÀrld.

Och sedan, efter att ha harklat sig,
la tjÀnstemannen hastigt och högt till:
men jag ska stÀlla ordning hÀr (i IT)"
(
).

Durov anser med rÀtta att det Àr auktoritÀra stater som ska vara rÀdda för honom, krypteringspunkten, medan Roskomnadzor och gyllene sköldar med sina DPI-filter inte bekymrar honom sÄ mycket."
(Politisk teknik)

Min tekniska politik Àr enklare, jag kan hÀr beskriva mina tankar kring vÄrdslösa blockeringar i Runet, men jag anser att progressiva medborgare i Modern Russia och anvÀndare av Habr har kÀnt pÄ sin egen kropp den nuvarande maktens oprofessionellism, sÄ jag begrÀnsar mig till en enda fras: vÄr tekniska politik Àr "Digital MotstÄnd". "att sÀkerstÀlla ett stabilt kommunikationskanal för slÀktingar och nÀra och kÀra."

Distribution av MTProto-proxy för Telegram

  • Teknisk komplexitetsnivĂ„ – "inte komplicerat", om man till exempel följer denna handledning.
  • TillförlitlighetsnivĂ„ – "över genomsnittet": dockeravbildningen fungerar stabilt, den behöver inte startas om varje dag, som utvecklarna skrev i sin officiella dokumentation för Telegram, men nĂ„gra sĂ„rbarheter kommer containerna sĂ€kert att innehĂ„lla.
  • MotstĂ„ndsnivĂ„/Ångest – 10 IS-soldater spinner sina konspirationer "slĂ€ktingarna anvĂ€nder det", jag har aldrig fĂ„tt nĂ„got förbud frĂ„n RKN under hela tiden (sedan vĂ„ren).
  • TillitsnivĂ„ – "offentlig baby-mistrust", problemet ligger hos kunderna (vissa vĂ€nner Ă€r misstĂ€nksamma mot min MtprotoProxy).
  • TestosteronnivĂ„ – "blev inte högre".
  • Kostnader – "0ₜ".
  • Ekonomisk belöning – "beror inte pĂ„ medborgare Durov". Incitament – möjligheten att pĂ„tvinga reklam.

Vi kommer att köra vÄr TelegramProxy pÄ "gratis/personal" resurser frÄn Amazon-ec2: t2.micro. Jag har anvÀnt denna maskinen.

Okej, vi har distribuerat vÄr gratis server, gÄ till den officiella webbplatsen dockerhub och ladda ner docker-containern.

Det behövs ingen sökning efter nĂ„got avbild, fil eller magisk knapp – "de finns inte", all magi görs i CLI:

$ docker pull telegrammessenger/proxy #avbild hÀmtad.

Men innan "detta" installerar du docker för CLI:

sudo apt-get install docker.io docker

DÀrefter erbjuder den officiella dokumentationen för MtprotoProxyTelegram oss att göra ungefÀr följande, gör sÄ hÀr:

$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #startar vÄr container "mtproto-proxy".

Efter detta kommando kommer en HEX-strÀng att visas i terminalens utdata, men det Àr inte av intresse för oss.

Skriv i CLI:

$ docker logs mtproto-proxy

Och vi fÄr de nödvÀndiga uppgifterna:

Distribution av egen MTProxy Telegram med statistik
I loggutdata visas (hindrat):

A) vÄr server-IP (den externa server-IP);
B) samt en slumpmĂ€ssig hemlighet — en slumpmĂ€ssig strĂ€ng i HEX.

Innan vi registrerar vÄr MtproProxy, mÄste vi stÀlla in huvudbrandvÀggen ovanför iptables (oavsett hur du vidarebefordrar trafik pÄ denna VPC, kommer den att vara olydig, eftersom den största brandvÀggen i Amazon-EC2 ligger i webbgrÀnssnittet och har högre prioritet Àn iptables).

Vi gÄr till "konsolen Amazon-EC2" i SÀkerhetsgrupp och öppnar den inkommande 443-porten (logisk maskering av trafiken till en början).

Distribution av egen MTProxy Telegram med statistik

Vi tar frÄn loggen vÄra uppgifter "ip och hemlighet" och gÄr till meddelandeappen Telegram, hittar den officiella MTProxy Admin Bot (@MTProxybot) och registrerar vÄr MtproProxy: vi startar kommandot [\/newproxy] och anger [vÄr_ip:443], och sedan vÄr [hemlighet\/HEX].

Om du gör fel nÀr du anger uppgifterna, kommer boten att bli arg och skicka dig tillbaka...

Om tvÄ rader Àr ifyllda utan fel, fÄr du godkÀnnande och en fungerande lÀnk till din aktiva MtprotoProxyTelegram, som du kan dela med vem som helst.

Distribution av egen MTProxy Telegram med statistik

Genom denna bot kan du ocksÄ lÀgga till din sponsorkanal (men inte chatt), dÀr du kommer att pÄtvinga dina Äsikter pÄ anvÀndare som anslutit till din servern, eller sÄ kan du vÀlja att inte "spamma" och inte störa potentiella kunder genom att inte visa kanalen i den fastsatta listan i meddelandeappen.

NÄgra ord om boten, dÀr kan man begÀra statistik, men "ocksÄ en bagel". Antagligen Àr "statistiken" tillgÀnglig nÀr en "klunga av snyltare" gapar efter dig frÄn Makhachkala.

Övervakning

Och hur mÄnga anvÀndare kan vi ansluta till vÄr server? Och överhuvudtaget, vem/vad Àr dÀr? Vad? Och hur mÄnga?

Vi kontrollerar vad som sÀgs i den officiella dokumentationen... Aha, sÄ hÀr gör man:

$ curl http:\/\/localhost:2398\/stats eller sÄ hÀr $ docker exec mtproto-proxy curl http:\/\/localhost:2398\/stats # och vi fÄr statistik direkt i CLI.

"HÄll i fickan bredare". Genom de angivna kommandona kommer vi alltid att fÄ ett liknande felmeddelande:

«curl: (7) Failed to connect to localhost port 2398: Anslutningen nekades»

Proxyen kommer att fungera. Men! En bagel, inte statistik vi kommer att fÄ.

Vi kan syssla med affÀrerna för de röda ögonen: kontrollera

$ netstat -an | grep 2398 och...

Först trodde jag att det var Ànnu ett misstag av Telegrams utvecklare (och jag tycker fortfarande det), men jag hittade en tillfÀllig, rÀtt bra lösning: att slipa Docker-containern med en fil.

Senare kom jag över information:

om de statliga danserna frÄn Roskomnadzor kring 'statistik'.

“Vi har blockerat en del av de offentliga proxy-servrarna pĂ„ vĂ„ra servrar, med hjĂ€lp av databaser frĂ„n projektet firehol. Det hĂ€r projektet övervakar listor med offentliga proxy-servrar och gör databaser med dem.

Sedan dess (dvs. i nÀstan tvÄ dygn) har ingen IP-adress frÄn vÄr ryska proxy blivit blockerad.

3. Vi förklarar hur man gör en nÀstan oförlÄtlig proxy för Roskomnadzor och delar med oss av ett skript för att blockera offentliga proxy-servrar.

— Uppdatera docker-containern (eller demon) för MTProto-proxy till den senaste versionen: RKN berĂ€knar gamla versioner via statistikporten som bandades till 0.0.0.0 och entydigt identifierade sig för hela internet. BĂ€ttre – öppna de nödvĂ€ndiga portarna med hjĂ€lp av iptables, och stĂ€ng de andra (kom ihĂ„g att för Docker-containrar bör du anvĂ€nda regeln FORWARD).

— Roskomnadzor har lĂ€nge lĂ€rt sig att dumpa trafik: de ser förfrĂ„gningar inuti HTTP- och SOCKS5-proxyn, och ser Ă€ven den gamla versionen av MTProto-proxy-obfuskering.

NÀr kunder frÄn vissa leverantörer, som har installerat sÄdana dumpare, ansluter sig till Telegram via sÄdana proxys, sÄ ser RKN dessa förfrÄgningar och blockerar omedelbart dessa proxys. Detsamma gÀller MTProto-proxy med gammal obfuskering.

Lösning: ge till kunder som ansluter till proxyn en secret som bara börjar med dd (det Àr inte nödvÀndigt att ange ytterligare bokstÀver dd i instÀllningarna för sjÀlva mtproto-proxyn). Detta kommer att aktivera en obfuskering som dumpare inte kan identifiera.

Och inga HTTP- och SOCKS5-proxys.

— Ett knep som varje Ă€gare av Telegram-proxies, som ofta blir blockerade av RKN, kan anvĂ€nda för att helt (eller nĂ€stan helt) avbryta blockeringar (och dessutom bekrĂ€fta att RKN ljuger).

Ett skript som blockerar offentliga proxys och en liten manual till det.

→ KĂ€lla

VÄr proxy Àr vÀsterlÀndsk, jag har inte stött pÄ nÄgra problem/blockeringar under de vÄriga och svala sommarveckorna, och det var inte heller en kreativ uppgift, sÄ jag Àgnade mig inte Ät att förlora tempo och la inte till prefixet dd* till nyckeln.

Manualen „hĂ€mtning av statistik/övervakning“ enligt den officiella instruktionen för MtprotoProxyTelegram Ă€r oanvĂ€ndbar/utdaterad, vi mĂ„ste fixa docker-bilden.

Vi lagar.

Containern Àr fortfarande igÄng:

$ docker stop mtproto-proxy #stoppar vÄr igÄngvarande docker-container och startar en ny bild med den saknade statistikflaggan
$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=din_tidigare_secret_hex telegrammessenger/proxy:latest

Vi kontrollerar statistiken:

$ curl http://localhost:2398/stats

curl: (7) Misslyckades med att ansluta till 0.0.0.0 port 2398: Anslutningen nekades
Statistiken Àr fortfarande otillgÀnglig .!..

Vi fÄr identifieraren för docker-containern:

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba..." För ungefÀr en timme sedan Up För ungefÀr en minut 0.0.0.0:443->443/tcp mtproto-proxy2

Vi gÄr in i docker-containern med vÄra egna regler:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Och i den allra sista raden av skriptet „run.sh“ lĂ€gger vi till den saknade flaggan:

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

LĂ€gg till „—http-stats“, sĂ„ hĂ€r borde det se ut:

„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 (spara/avsluta nano/avsluta containern).

Vi startar om vÄr docker-container:

$ docker restart mtproto-proxy2

DĂ€r, nu med kommandot:

$ curl http://localhost:2398/stats #fÄr omfattande statistik

Distribution av egen MTProxy Telegram med statistik
Statistiken har mycket „skrĂ€p“ (pĂ„ skĂ€rmdumpen Ă€r 1/3 av den), vi skapar en alias:

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

Vi fÄr det vi polerat docker-containern för: antalet anslutningar och belastningen:

$ telega

Distribution av egen MTProxy Telegram med statistik
Docker-containern fungerar, statistiken rullar pÄ.

AnvÀnda resurser

Oavsett hur cool du Àr, Stuart Redman, lÀmnar Àven du ett spÄr av skrÀp pÄ dina underklÀder. En fungerande Docker-bild lÀmnar ett betydande avtryck.

Att beskriva fördelarna och nackdelarna med docker-bilder Àr meningslöst, en docker-container Àr en mini-virtuell maskin som förbrukar resurser mindre Àn en "verklig" virtuell maskin, till exempel VirtualBox, men förbrukar.

1) Oavsett om docker-bilden körs med statistik eller utan, tvĂ„ klienter verkar eller tio — resurserna utnyttjas ~likadant: 75% av den totala CPU-prestandan t2.micro.

2) Vi tittar pÄ övervakningen av VPC-servern:

Distribution av egen MTProxy Telegram med statistik

FrĂ„n resursutnyttjande grafen pĂ„ VPC ser vi att docker-containern stĂ€ndigt anvĂ€nder ~7,5% av den totala max. CPU-prestandan och stoppades den 28 maj av mig avsiktligt/tillfĂ€lligt. (Obs — OpenVPN & pptp körs ocksĂ„ pĂ„ servern).

Varför Àr 10% konstant CPU-belastning grÀnsen för denna server?

För att det finns begrÀnsningar frÄn Amazon EC2 och de rÀknas i krediter:

Distribution av egen MTProxy Telegram med statistik

1 CPU-kredit = 1 CPU som körs med 100% belastning under en minut, och vi har 6 krediter (vilket innebÀr att vid spikar kan 100% utnyttjande av CPU vara möjligt i 6 minuter, och dÀrefter minskar CPU-kapaciteten). Andra kombinationer: till exempel, 1 CPU-kredit = 1 CPU som körs med 50% belastning under tvÄ minuter (det innebÀr att vi kan anvÀnda CPU med 50% belastning i 12 minuter), eller exempel, konstant 10% belastning av CPU under hela tiden, osv.

Slutsatser

  • Vi Ă€r en del av "Digitalt MotstĂ„nd". Vi har försett vĂ„ra "pappa och mamma" med en pĂ„litlig kommunikationskanal.
  • Om du har distribuerat MtprotoProxyTelegram och OpenVPN pĂ„ servern, men inte mer, kommer det inte att bli nĂ„gra fördröjningar/pingar/fel, men om du stĂ€ndigt experimenterar med din t2/micro, förvĂ€nta dig förseningar i kommunikationen.
  • Min överhavande ping Ă€r ~100-250ms, inga fördröjningar i talkommunikationen kĂ€nns av.
  • De ekonomiska kostnaderna för allt "detta" (inklusive VPC-resurser) = 0ₜ.

Ompublicering av sin artikel.

UPD: Tack till vissa habra-anvÀndare för anvÀndbara kommentarer, det Àr faktiskt möjligt (stöds statistik?), att det finns bÀttre alternativ till den officiella docker-bilden av Mtproto proxy Telegram.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster