Nyebarkeun Telegram MTProxy anjeun sareng statistik

Nyebarkeun Telegram MTProxy anjeun sareng statistik

"Kuring diwariskeun kekacauan ieu,
dimimitian ku Zello malu; LinkedIn
sareng ditungtungan ku "sadayana" dina platform Telegram
di dunya kuring.

Lajeng hiccup,
Pajabat nambahan gancang sareng nyaring:
tapi kuring bakal nempatkeun hal-hal dina urutan (di dieu di IT) "
(...).

Durov, rightly percaya yén éta téh nagara otoriter nu kudu sieun manéhna, cypherpunk a, jeung Roskomnadzor jeung tameng emas jeung saringan DPI maranéhanana teu bener ganggu manéhna.
(Téknik Pulitik)

Kawijakan téknis kuring langkung saderhana, kuring tiasa ngajelaskeun di dieu pamikiran kuring ngeunaan pemblokiran anu teu ati-ati di Runet, tapi kuring yakin yén warga kutang tina Rusia Modéren sareng pangguna Habr parantos ngaraos teu profesionalisme pamaréntahan ayeuna dina kulitna sorangan, ku kituna kuring bakal ngabatesan diri sorangan. frase tunggal: kawijakan teknis urang "Resistansi Digital". "Nyadiakeun baraya jeung babaturan saluran komunikasi stabil".

Deploying MTProto proxy Telegram

  • Tingkat téknis pajeulitna nyaéta "gampang", upami, contona, anjeun nuturkeun lambaran curang ieu.
  • Tingkat reliabiliti nyaéta "di luhur rata-rata": gambar docker jalan stably, teu perlu restarted unggal poe, sakumaha pamekar nulis dina dokuméntasi Telegram resmi maranéhanana, tapi wadahna meureun ngandung sababaraha kerentanan.
  • Tingkat résistansi / kahariwang - 10 anggota ISIS ninun konspirasi "baraya make", larangan teu datang ti RKN sanajan sakali sadaya waktu (ti spring).
  • Tingkat kapercayaan nyaéta "teu percaya orok umum", masalah dina sisi klien (sababaraha babaturan curiga kana MtprotoProxy kuring).
  • tingkat téstostéron - "teu meunang luhur."
  • Biaya kauangan - "0₽".
  • Ganjaran finansial - "teu gumantung warga Durov". Promosi - kamampuhan pikeun maksakeun iklan.

Kami bakal ngangkat TelegramProxy kami dina kapasitas "gratis / pribadi" Amazon-ec2: t2.micro. Kuring dipaké ieu mobil.

Oké, deployed server bébas anjeun, buka ramatloka resmi dockerhub tur ngundeur wadahna docker.

Henteu kedah milarian sababaraha gambar, file, atanapi tombol sihir - "henteu aya", sadaya sihir dilakukeun dina CLI:

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

Tapi sateuacan "éta", pasang docker pikeun CLI:

sudo apt-get install docker.io docker

Salajengna, dina dokuméntasi resmi MtprotoProxyTelegram, kami ditawarkeun pikeun ngalakukeun hal-hal sapertos ieu, kami ngalakukeun:

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

Saatos paréntah ieu, senar HEX bakal muncul dina kaluaran terminal, tapi urang henteu kabetot dina éta.

Urang nulis dina CLI:

$ docker logs mtproto-proxy

Sareng kami nampi data anu diperyogikeun:

Nyebarkeun Telegram MTProxy anjeun sareng statistik
Dina kaluaran log ieu, kami ditingalikeun (dioleskeun):

A) ip server kami (ip server éksternal);
B) jeung rusiah acak - string acak dina HEX.

Sateuacan ngadaptarkeun MtproProxy kami, anjeun kedah ngonpigurasikeun firewall utama dina iptables (teu masalah kumaha anjeun alihan lalu lintas ka VPC ieu, éta bakal bangor, sabab firewall utama di Amazon-EC2 aya dina antarmuka wéb sareng ngagaduhan prioritas anu langkung luhur. iptables).

Urang ka"konsol Amazon-EC2" dina Grup Kaamanan sareng muka port asup 443 (masking logis patalimarga pikeun kahiji kalina).

Nyebarkeun Telegram MTProxy anjeun sareng statistik

Kami nyandak data "ip sareng rusiah" kami tina log sareng angkat ka utusan Telegram, milarian MTProxy Admin Bot resmi (@MTProxybot) sareng ngadaptar MtproProxy kami: jalankeun paréntah [/newproxy] sareng lebetkeun [our_ip:443], sareng lajeng urang [rusiah / HEX].

Upami anjeun ngaco nalika ngalebetkeun data, bot bakal ambek sareng ngirim anjeun ka ...

Upami anjeun ngeusian dua garis tanpa kasalahan, anjeun bakal nampi persetujuan sareng tautan anu tiasa dianggo ka MtprotoProxyTelegram anjeun ayeuna, anu anjeun tiasa bagikeun ka saha waé.

Nyebarkeun Telegram MTProxy anjeun sareng statistik

Ogé, ngalangkungan bot ieu, anjeun tiasa nambihan saluran sponsor anjeun (tapi sanés obrolan), dimana anjeun bakal maksakeun pandangan anjeun ka pangguna anu parantos nyambung ka server anjeun, atanapi anjeun henteu tiasa "spam" sareng henteu ngaganggu konsumén poténsial anjeun tanpa mintonkeun saluran dina daptar utusan disematkeun.

Sababaraha kecap deui ngeunaan bot, dimana anjeun tiasa menta statistik, tapi "ogé donat". Tétéla, "statistik" sadia nalika anjeun boga "riungan freeloaders" tukangeun anjeun Makhachkala.

Ngawaskeun

Sabaraha pamaké urang bisa nyambung ka server kami? Jeung atoh, saha / naon aya? Naon? Sareng sabaraha?

Kami ningali naon anu aya dumasar kana dokuméntasi resmi ... Leres, di dieu, lakukeun sapertos kieu:

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

"Tetep saku anjeun langkung lega" Numutkeun paréntah anu diusulkeun, kami bakal salawasna nampi kasalahan anu sami:

«ngagulung: (7) Gagal nyambung ka port localhost 2398: Sambungan ditolak»

proxy urang bakal jalan. Tapi! Bagel, teu statistik urang meunang.

Anjeun tiasa ngalakukeun hal pikeun beureum-eyed: cek

$ netstat -an | grep 2398 и...

Awalna kuring ngira yén ieu mangrupikeun jamb sanés tukangeun pamekar Telegram (sareng kuring masih nyangka kitu), teras kuring mendakan solusi anu saé samentawis: ngagosok Wadah Docker nganggo file.

Engké, hiji infa nyekel panon kuring:

ngeunaan tarian kaayaan Roskomnadzor sabudeureun "statistik".

"Kami parantos meungpeuk sababaraha proxy umum dina server kami nganggo pangkalan data proyék firehol. Proyék ieu ngawas daptar sareng proxy umum sareng ngadamel database sareng aranjeunna.

Kusabab momen éta (nyaéta, ampir dua dinten parantos), teu aya alamat IP tunggal proxy Rusia urang anu diblokir.

3. Urang ngabejaan ka maneh kumaha nyieun proxy nu ampir invulnerable ka Roskomnadzor sarta babagi naskah pikeun blocking proxy umum.

- Apdet wadahna docker proxy MTProto (atanapi daemon) kana versi panganyarna: RKN ngitung versi heubeul ku port statistik, nu ieu kabeungkeut 0.0.0.0 sarta uniquely dicirikeun sorangan pikeun sakabéh Internét. Langkung saé, buka palabuhan anu diperyogikeun nganggo iptables, sareng tutup sésana (inget yén dina kasus wadah docker, anjeun kedah nganggo aturan FORWARD).

- Roskomnadzor diajar kumaha carana dump lalulintas lila pisan: aranjeunna ningali requests jero HTTP na SOCKS5 proxy, sarta maranéhanana ogé ningali versi heubeul MTProto proxy obfuscation.

Nalika klien tina sababaraha panyadia anu gaduh dumps sapertos dipasang ngaksés Telegram ngalangkungan proksi sapertos kitu, RKN ningali pamundut sapertos kitu sareng langsung meungpeuk proksi ieu. Sami lumaku pikeun MTProto proxy kalawan obfuscation heubeul.

Solusi: ngadistribusikaeun rusiah ngan ku dd di awal ka klien nu nyambung ka proxy (teu kudu nangtukeun tambahan hurup dd dina setélan tina proxy mtproto sorangan). Ieu bakal ngaktipkeun versi obfuscation nu dumppiles teu bisa ngadeteksi.

Sareng henteu aya proxy HTTP atanapi SOCKS5.

- Penyesuaian, kalayan bantosan masing-masing anu gaduh proxy telegram, anu rutin dilarang ku RKN, tiasa lengkep (atanapi ampir lengkep) ngeureunkeun blokir (sareng dina waktos anu sami mastikeun yén RKN bohong).

Skrip anu ngalarang proksi umum sareng manual leutik pikeun éta.

sumber

Proksi kami pro-Barat, kuring henteu mendakan masalah / sumbatan nalika musim semi sareng usum panas anu tiis, éta ogé henteu narik tugas kreatif, janten kuring henteu kaleungitan laju sareng henteu nambihan awalan dd * ka konci.

Manual "meunang statistik / ngawaskeun" nurutkeun parentah resmi MtprotoProxyTelegram teu jalan / tinggaleun jaman, anjeun bakal kudu ngalereskeun gambar docker.

Urang ngalereskeun eta.

Wadahna masih jalan:

$ 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

Hayu urang pariksa statistik:

$ curl http://localhost:2398/stats

ngagulung: (7) Gagal nyambung ka 0.0.0.0 port 2398: Sambungan ditolak
Statistik masih teu sadia.!..

Panggihan ID wadah docker:

$ docker ps

KONTAK GAMBAR ID KONTAK DIJIEUN STATUS PORTS NAMA
f423c209cfdc telegrammessenger/proxy:panganyarna "/bin/sh -c '/bin/ba…" Kira-kira sajam katukang Nepi Kira-kira menit 0.0.0.0:443->443/tcp mtproto-proxy2

Kami nganggo piagam kami di jero wadah docker:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

Sareng dina baris terakhir tina skrip "run.sh", tambahkeun bandéra anu leungit:

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

Tambahkeun "--http-stats", sapertos kieu kedah dianggo:

«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 (simpen/kaluar nano/kaluar wadah).

Balikan deui wadah docker kami:

$ docker restart mtproto-proxy2

Sadayana, ayeuna dina paréntah:

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

Nyebarkeun Telegram MTProxy anjeun sareng statistik
Aya seueur "sampah" dina statistik (1/3 tina éta dina layar), jieun landian:

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

Kami nampi naon wadah docker digosok: jumlah sambungan sareng beban:

$ telega

Nyebarkeun Telegram MTProxy anjeun sareng statistik
Wadah Docker dijalankeun, statistikna berputar.

Sumberdaya spent

Salaku cool sakumaha anjeun Stuart Redman, malah anjeun ninggalkeun tanda dina panties Anjeun. Hiji gambar Docker ngajalankeun ninggalkeun tapak suku badag.

Henteu aya rasa pikeun ngajelaskeun kaunggulan sareng kalemahan gambar docker, wadahna docker mangrupikeun mesin virtual mini anu nganggo sumber daya anu kirang tibatan mesin virtual "nyata", sapertos VirtualBox, tapi éta.

1) Dibuka sareng atanapi tanpa statistik docker-gambar, dua klien frolic atanapi sapuluh - sumberdaya garapan ~ cara sarua: 75% tina sakabéh kinerja CPU t2.micro.

2) Urang ningali ngawaskeun server VPC:

Nyebarkeun Telegram MTProxy anjeun sareng statistik

Tina grafik pamakean sumberdaya dina VPC, urang ningali yén wadah docker terus-terusan ngonsumsi ~ 7,5% tina total max. kinerja CPU na on May 28 ieu dieureunkeun ku kuring ngahaja / samentara (Catetan - OpenVPN & pptp ogé dijalankeun dina server).

Naha 10% pamakéan CPU konstan wates pikeun server ieu?

Kusabab aya larangan ti Amazon EC2 sareng diitung dina sks:

Nyebarkeun Telegram MTProxy anjeun sareng statistik

1 kiridit CPU = 1 CPU digawé di 100% beban pikeun hiji menit, sarta kami boga 6 sks (nyaéta, di puncak, 100% utilization CPU mungkin dina 6 menit, lajeng kakuatan CPU bakal ngurangan). Kombinasi séjén: contona, 1 kiridit CPU = 1 CPU dijalankeun dina 50% beban salila dua menit (i.e. urang tiasa nganggo CPU dina 50% beban pikeun 12 menit), atawa, contona, konstanta 10% - beban CPU th salila. sakabeh waktu, jsb.

papanggihan

  • Kami bagian tina "Resistansi Digital". Disadiakeun "bapa sareng ibu" aranjeunna saluran komunikasi anu tiasa dipercaya.
  • Upami anjeun gaduh MtprotoProxyTelegram sareng OpenVPN dipasang dina server, tapi henteu deui, moal aya telat / ping / gagal, tapi upami anjeun terus-terusan ékspérimén sareng t2 / mikro anjeun, teras ngantosan rem komunikasi.
  • Ping luar negeri kuring nyaéta ~ 100-250ms, teu aya telat dina komunikasi sora.
  • Waragad finansial pikeun sakabéh "ieu" (kaasup sumberdaya VPC) = 0₽.

Nyitak ulang artikel anjeun.

UPD: Hatur nuhun kana sababaraha habrausers pikeun komentar mangpaat, saleresna, mungkin (éta statistik dirojong?), Aya analogs hadé tina resmi Mtproto proxy Telegram docker gambar.

sumber: www.habr.com

Tambahkeun komentar