Deplwaye Telegram MTProxy ou a ak estatistik

Deplwaye Telegram MTProxy ou a ak estatistik

"Mwen eritye dezòd sa a,
kòmanse ak Zello san wont; LinkedIn
epi fini ak "tout lòt moun" sou platfòm Telegram la
nan monn mwen an.

Apre sa, okèt,
Ofisyèl la te ajoute prese e byen fò:
men mwen pral mete bagay yo nan lòd (isit la nan IT)"
(...).

Durov, rezon kwè ke li se eta otoritè ki ta dwe pè l ', yon cypherpunk, ak Roskomnadzor ak gwo plak pwotèj an lò ak filtè DPI yo pa reyèlman deranje l'.
(teknik politik)

Politik teknik mwen an pi senp, mwen ka dekri isit la panse mwen sou bloke neglijans nan Runet, men mwen kwè ke sitwayen yo pwogresis nan Modèn Ris ak itilizatè Habr te santi non pwofesyonèl gouvènman aktyèl la nan pwòp po yo, kidonk mwen pral limite tèt mwen a. yon sèl fraz: politik teknik nou an se "Rezistans dijital". "bay fanmi ak zanmi ak yon kanal kominikasyon ki estab."

Deplwaye MTProto proxy Telegram

  • Nivo teknik nan konpleksite se "fasil", si, pou egzanp, ou swiv fèy tronpe sa a.
  • Nivo fyab la se "pi wo pase mwayèn": imaj docker la ap travay stab, li pa bezwen rekòmanse chak jou, jan devlopè yo te ekri nan dokiman ofisyèl Telegram yo, men veso a pwobableman gen kèk frajilite.
  • Nivo nan rezistans / enkyetid - 10 manm ISIS mare konplo yo "fann sèvi ak", entèdiksyon an pa t 'soti nan RKN a menm yon fwa tout tan tout tan an (depi prentan).
  • Nivo konfyans se "piblik ti bebe mefyans", yon pwoblèm sou bò kliyan (kèk zanmi yo sispèk nan MtprotoProxy mwen).
  • Nivo testostewòn - "pa t 'jwenn pi wo."
  • Depans finansye - "0₽".
  • Finansye rekonpans - "pa depann de sitwayen Durov." Pwomosyon - kapasite nan enpoze piblisite.

Nou pral ogmante TelegramProxy nou an sou kapasite "gratis / pèsonèl" Amazon-ec2: t2.micro. Mwen te itilize sa a machin.

Oke, deplwaye sèvè gratis ou a, ale sou sit entènèt ofisyèl la dockerhub epi telechaje veso docker la.

Pa bezwen chèche kèk imaj, dosye, oswa bouton majik - "yo pa la", tout maji yo fèt nan CLI a:

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

Men, anvan "sa", enstale Docker pou CLI:

sudo apt-get install docker.io docker

Anplis de sa, nan dokiman ofisyèl MtprotoProxyTelegram, yo ofri nou fè yon bagay tankou sa ki annapre yo, nou fè:

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

Apre kòmandman sa a, yon fisèl HEX ap parèt nan pwodiksyon tèminal la, men nou pa enterese nan li.

Nou ekri nan CLI:

$ docker logs mtproto-proxy

Epi nou jwenn done ki nesesè yo:

Deplwaye Telegram MTProxy ou a ak estatistik
Nan pwodiksyon boutèy sa a, yo montre nou (anwouj):

A) ip sèvè nou an (ip sèvè ekstèn);
B) ak yon sekrè o aza - yon fisèl o aza nan HEX.

Anvan ou anrejistre Mtproxy nou an, ou bezwen konfigirasyon firewall prensipal la sou iptables (kèlkeswa jan ou redireksyon trafik nan VPC sa a, li pral vakabon, depi firewall prensipal la nan Amazon-EC2 sitiye nan koòdone entènèt la epi li gen yon pi gwo priyorite sou iptables).

Nou ale nan "konsole a Amazon-EC2" nan Gwoup Sekirite a epi louvri pò fèk ap rantre 443 (mask lojik trafik pou premye fwa).

Deplwaye Telegram MTProxy ou a ak estatistik

Nou pran done "ip ak sekrè" nou yo nan boutèy demi lit la epi ale nan mesaje Telegram la, jwenn ofisyèl MTProxy Admin Bot (@MTProxybot) epi anrejistre MtproProxy nou an: kouri kòmand [/newproxy] epi antre [our_ip:443], epi Lè sa a, nou [sekrè /HEX].

Si ou dezòd lè w ap antre done, bot la ap fache epi voye w bay ...

Si ou ranpli de liy san erè, w ap resevwa apwobasyon ak yon lyen k ap travay nan MtprotoProxyTelegram ou ye kounye a, ke ou ka pataje ak nenpòt moun.

Deplwaye Telegram MTProxy ou a ak estatistik

Epitou, atravè bot sa a, ou ka ajoute chanèl parennaj ou a (men se pa yon chat), kote ou pral enpoze opinyon ou sou itilizatè ki te konekte ak sèvè ou a, men ou pa ka "spam" epi ou pa deranje kliyan potansyèl ou yo san yo pa montre chanèl la nan lis la kole nan mesaje a.

Yon kèk mo plis sou bot la, kote ou ka mande estatistik, men "tou yon beye". Aparamman, "estatistik" ki disponib lè ou gen "yon foul moun freeloaders" dèyè ou Makhachkala.

Siveyans

Konbyen itilizatè nou ka konekte ak sèvè nou an? E de tout fason, ki moun ki / ki sa ki la? Kisa? E konbyen?

Nou gade sa ki la dapre dokiman ofisyèl la ... Wi, isit la, fè li konsa:

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

"Kenbe pòch ou pi laj" Dapre kòmandman yo pwopoze yo, n ap toujou resevwa yon erè menm jan an:

«curl: (7) Echwe pou konekte ak pò localhost 2398: Koneksyon refize»

Prokurasyon nou an ap travay. Men! Bagel, pa estatistik nou jwenn.

Ou ka fè bagay pou je wouj la: tcheke

$ netstat -an | grep 2398 и...

Okòmansman, mwen te panse ke sa a se te yon lòt jamb dèyè devlopè Telegram yo (e mwen toujou panse sa), Lè sa a, mwen te jwenn yon solisyon tanporè bon: poli Docker Container la ak yon dosye.

Apre sa, yon enfa te atire je m ':

sou dans yo eta nan Roskomnadzor alantou "estatistik".

"Nou bloke kèk nan proxy piblik yo sou sèvè nou yo lè l sèvi avèk baz done pwojè firehol la. Pwojè sa a kontwole lis ak proxy piblik epi fè baz done ak yo.

Depi moman sa a (ki se prèske de jou deja), pa gen yon sèl adrès IP nan proxy Ris nou an te bloke.

3. Nou di ou kijan pou fè yon prokurasyon ki prèske envulnerabl ak Roskomnadzor epi pataje yon script pou bloke proxy piblik yo.

- Mete ajou veso docker proxy MTProto (oswa daemon) nan dènye vèsyon an: RKN kalkile vèsyon ansyen pa pò estatistik yo, ki te mare nan 0.0.0.0 ak inikman idantifye tèt li pou tout entènèt la. Pi bon toujou, louvri pò ki nesesè yo lè l sèvi avèk iptables, epi fèmen rès la (sonje ke nan ka a nan yon veso docker, ou ta dwe itilize règ la FORWARD).

— Roskomnadzor te aprann ki jan yo jete trafik sa pibliye depi lontan: yo wè demann andedan HTTP ak SOCKS5 proxys, epi yo wè tou ansyen vèsyon MTProto proxy obfuscation.

Lè kliyan nan kèk founisè ki gen pil fatra sa yo enstale aksè Telegram atravè proxy sa yo, RKN wè demann sa yo epi imedyatman bloke proxy sa yo. Menm bagay la tou ale pou MTProto proxy ak ansyen obfuscation.

Solisyon: distribye sekrè sèlman ak dd nan kòmansman an bay kliyan ki konekte nan proxy a (pa bezwen presize lèt adisyonèl dd nan anviwònman yo nan mtproto proxy li menm). Sa a pral pèmèt yon vèsyon offuscation ke dumppiles pa ka detekte.

Epi pa gen okenn prokurasyon HTTP oswa SOCKS5.

- Ajisteman, avèk èd nan ki chak pwopriyetè nan yon prokurasyon telegram, ki se regilyèman entèdi pa RKN a, ka konplètman (oswa prèske nèt) sispann bloke (e an menm tan asire w ke RKN a ap bay manti).

Yon script ki entèdi piblik proxy ak yon ti manyèl pou li.

Sous

Prokurasyon nou an se pro-lwès, mwen pa t rankontre okenn pwoblèm / blokaj pandan sezon prentan ak jou ete fre, li pa t atire yon travay kreyatif tou, kidonk mwen pa t pèdi vitès epi mwen pa t ajoute prefiks dd * nan kle a.

Manyèl la "jwenn estatistik / siveyans" dapre enstriksyon ofisyèl yo nan MtprotoProxyTelegram pa travay / demode, w ap gen pou repare imaj la docker.

Nou ranje li.

Veso a toujou ap kouri:

$ 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

Ann tcheke estatistik yo:

$ curl http://localhost:2398/stats

curl: (7) Echwe pou konekte ak 0.0.0.0 pò 2398: Koneksyon refize
Estatistik yo toujou pa disponib.!...

Chèche konnen ID veso docker la:

$ docker ps

ID CONTAINER IMAGE KÒMAND KREYE ETATI PO NON
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba..." Anviwon inèdtan de sa Up Apeprè yon minit 0.0.0.0:443->443/tcp mtproto-proxy2

Nou ale ak charter nou an andedan veso docker la:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Epi nan dènye liy script "run.sh", ajoute drapo ki manke a:

«--http-stats»
"exec /usr/local/bin/mtproto-proxy -p 2398 -H 443 -M "$WORKERS" -C 60000 --aes-pwd /etc/telegram/hello-explorers-how-you-you-doing -u root $CONFIG --allow-skip-info:$_RETS-IP:$_RET _CM D"

Ajoute "--http-stats", yon bagay tankou sa a ta dwe travay:

«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 (sove/sòti nano/sòti veso).

Rekòmanse veso docker nou an:

$ docker restart mtproto-proxy2

Tout bagay, kounye a sou lòd:

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

Deplwaye Telegram MTProxy ou a ak estatistik
Gen yon anpil nan "fatra" nan estatistik yo (1/3 nan li se sou ekran an), kreye yon alyas:

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

Nou jwenn kisa veso docker la te poli pou: kantite koneksyon ak chaj la:

$ telega

Deplwaye Telegram MTProxy ou a ak estatistik
Veso Docker la ap kouri, estatistik yo ap vire.

Resous depanse

Kòm fre menm jan ou ye Stuart Redman, menm ou kite yon mak sou kilòt ou. Yon imaj Docker k ap kouri kite yon gwo anprint.

Li pa fè okenn sans pou dekri avantaj ak dezavantaj imaj docker, yon veso docker se yon machin mini-vityèl ki konsome mwens resous pase yon machin vityèl "reyèl", tankou VirtualBox, men li fè sa.

1) Te lanse avèk oswa san estatistik docker-imaj, de kliyan frolic oswa dis - resous yo itilize ~ menm jan an: 75% nan tout pèfòmans CPU t2.micro.

2) Nou gade siveyans sèvè VPC a:

Deplwaye Telegram MTProxy ou a ak estatistik

Soti nan graf itilizasyon resous yo sou VPC a, nou wè ke veso Docker la toujou ap konsome ~ 7,5% nan maksimòm total la. Pèfòmans CPU ak sou Me 28 te sispann pa mwen entansyonèlman / tanporèman (Remak - OpenVPN & pptp yo tou ap kouri sou sèvè a).

Poukisa se 10% itilizasyon CPU konstan limit pou sèvè sa a?

Paske gen restriksyon nan Amazon EC2 epi yo kalkile nan kredi:

Deplwaye Telegram MTProxy ou a ak estatistik

1 CPU kredi = 1 CPU k ap travay nan 100% chaj pou yon minit, epi nou gen 6 kredi (ki se, nan pik, 100% CPU itilizasyon posib nan 6 minit, ak Lè sa a, pouvwa CPU a ap diminye). Lòt konbinezon: egzanp 1 CPU kredi = 1 CPU kouri nan 50% chaj pou de minit (sa vle di nou ka itilize CPU a nan 50% chaj pou 12 minit), oswa, pou egzanp, yon chaj konstan 10% CPU pou tout tan an, elatriye.

Jwenn

  • Nou fè pati "Digital Resistance". Bay "papa ak manman yo" yon kanal kominikasyon serye.
  • Si ou gen MtprotoProxyTelegram ak OpenVPN deplwaye sou sèvè a, men pa plis, pa pral gen okenn reta / ping / echèk, men si w ap toujou ap fè eksperyans ak t2 / mikwo ou, Lè sa a, rete tann pou fren kominikasyon.
  • Ping lòt bò dlo mwen an se ~ 100-250ms, pa gen okenn reta nan kominikasyon vwa.
  • Depans finansye pou tout "sa" (ki gen ladan resous VPC) = 0₽.

Reimprime atik ou a.

UPD: Mèsi a kèk habrausers pou kòmantè itil, tout bon, li posib (èske estatistik yo sipòte?), Gen pi bon analogue nan ofisyèl Mtproto proxy Telegram docker imaj la.

Sous: www.habr.com

Add nouvo kòmantè