統蚈を䜿甚した MTProxy Telegram の展開

統蚈を䜿甚した MTProxy Telegram の展開

「私はこの混乱を受け継ぎたした、
恥知らずなれロから始めおください。 リンクトむン
Telegram プラットフォヌム䞊の「その他党員」で終わる
私の䞖界の䞭で。

そしお、しゃっくり、
圓局者は急いで倧声でこう付け加えた。
でも、私は物事を敎理したすここではIT分野」
....

ドゥロフは、サむファヌパンクである圌を恐れるべきは暩嚁䞻矩囜家であるず正しく信じおおり、ロスコムナゟヌルやDPIフィルタヌを備えた金色の盟は圌をあたり気にしおいたせん。
政治的手法

私の技術的な方針はもっず単玔です。Runet における䞍泚意なブロックに぀いおの私の考えをここで説明できたすが、珟代ロシアの進歩的な囜民ず Habr ナヌザヌは珟政府の非専門性を肌で感じおいるず信じおいたす。そのため、私は次のこずに限定したす。䞀蚀で蚀えば、圓瀟の技術方針は「デゞタルレゞスタンス」です。 「芪戚や友人に安定した通信チャネルを提䟛する。」

MTProto プロキシ Telegram の展開

  • たずえば、このチヌトシヌトに埓えば、技術的な耇雑さのレベルは「簡単」です。
  • 信頌性レベルは「平均以䞊」です。開発者が Telegram の公匏ドキュメントに曞いおいるように、Docker むメヌゞは安定しお動䜜し、毎日再起動する必芁はありたせんが、コンテナヌにはおそらくいく぀かの脆匱性が含たれおいたす。
  • 抵抗/䞍安のレベル - ISISメンバヌ10人が「芪族䜿甚」陰謀を玡ぐ、RKNからの犁止什は春以来䞀床も出なかった。
  • 信頌レベルは「パブリックベむビヌ䞍信」で、クラむアント偎の問題です䞀郚の友人は私のMtprotoProxyを疑っおいたす。
  • テストステロンレベルは「䞊がらなかった」。
  • 財務コスト - 「0ₜ」。
  • 金銭的報酬は「垂民ドゥロフに䟝存しない」。 プロモヌション - 広告を匷制する機胜。

Amazon-ec2: t2.micro の「無料/個人甚」容量で TelegramProxy を構築したす。 私が䜿甚した この 車。

無料サヌバヌをデプロむしたした。公匏 Web サむトにアクセスしおください ドッカヌハブ そしおDockerコンテナをダりンロヌドしたす。

画像、ファむル、たたはマゞック ボタンを探す必芁はありたせん - 「それらは存圚したせん」。すべおの魔法は CLI で実行されたす。

$ docker pull telegrammessenger/proxy #Пбраз скачаМ.

ただし、その前に、CLI 甚の docker をむンストヌルしたす。

sudo apt-get install docker.io docker

さらに、MtprotoProxyTelegram の公匏ドキュメントでは、次のようなこずを行うよう提案されおおり、実際に実行したす。

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

このコマンドの埌、端末出力に XNUMX 進文字列が衚瀺されたすが、これには興味がありたせん。

CLI で次のように曞きたす。

$ docker logs mtproto-proxy

そしお必芁なデヌタを取埗したす。

統蚈を䜿甚した MTProxy Telegram の展開
このログの出力には、次のように衚瀺されたす (塗り぀ぶされおいたす)。

A) 圓瀟のサヌバヌ IP (倖郚サヌバヌ IP)。
B) およびランダムな秘密 - XNUMX 進数のランダムな文字列。

MtproProxy を登録する前に、iptables を介しおメむン ファむアりォヌルを蚭定する必芁がありたす (Amazon-EC2 のメむン ファむアりォヌルは Web むンタヌフェむスにあり、Web むンタヌフェむスよりも高い優先順䜍を持っおいるため、トラフィックをこの VPC にリダむレクトする方法に関係なく、䞍正な動䜜になりたす) iptables)。

私たちは行く "コン゜ヌル セキュリティグルヌプに「Amazon-EC2」を远加し、受信ポヌト 443 を開きたす (論理マスキング) 亀通 初めお)。

統蚈を䜿甚した MTProxy Telegram の展開

ログから「IP ずシヌクレット」デヌタを取埗し、Telegram メッセンゞャヌに移動し、公匏 MTProxy 管理ボット (@MTProxybot) を芋぀けお MtproProxy を登録したす。 [/newproxy] コマンドを実行しお [our_ip:443] ず入力し、それから[秘密の/HEX]。

デヌタ入力時に倱敗するず、ボットが怒っおあなたを次の堎所に送りたす。

XNUMX 行を間違いなく入力するず、承認ず珟圚の MtprotoProxyTelegram ぞの有効なリンクが衚瀺され、誰ずでも共有できたす。

統蚈を䜿甚した MTProxy Telegram の展開

たた、このボットを通じお、スポンサヌシップ チャネル (チャットではありたせん) を远加しお、サヌバヌに接続しおいるナヌザヌに自分の意芋を抌し付けたり、「スパム」を送信したり、朜圚的な顧客に迷惑をかけたりするこずはできたせん。固定されたメッセンゞャヌのリストにチャンネルが衚瀺されたす。

統蚈をリク゚ストできるボットですが、「ドヌナツでもある」ボットに぀いおもう少し説明したす。 どうやら、マハチカラの埌ろに「居候の矀衆」がいる堎合、「統蚈」が利甚できるようです。

監芖

サヌバヌには䜕人のナヌザヌが接続できたすか? そしおずにかく、そこには誰がいたすか/䜕がいたすか? 䜕 そしお䜕人ですか

公匏ドキュメントに埓っおそこにあるものを芋おみたしょう...はい、ここで、次のようにしたす。

$ curl http://localhost:2398/stats ОлО вПт так $ docker exec mtproto-proxy curl http://localhost:2398/stats # О МаЌ выЎаЎут статОстОку пряЌП в CLI.

「ポケットを広くしおください」 提案されたコマンドによれば、垞に同様の゚ラヌが衚瀺されたす。

«curl: (7) localhost ポヌト 2398 ぞの接続に倱敗したした: 接続が拒吊されたした»

私たちのプロキシは機胜したす。 しかし ベヌグル、私たちが埗る統蚈ではありたせん。

赀目の人のためにできるこず: チェックしおください

$ netstat -an | grep 2398 О...

最初は、これは Telegram 開発者の背埌にあるもう XNUMX ぀のわき枠だず思いたした (そしお今でもそう思いたす)。その埌、ファむルを䜿甚しお Docker コンテナを磚き䞊げるずいう䞀時的な良い解決策を芋぀けたした。

その埌、ある情報が私の目に留たりたした。

「統蚈」を䞭心ずしたロスコムナゟヌルの州のダンスに぀いお。

「私たちは、firehol プロゞェクトのデヌタベヌスを䜿甚しお、サヌバヌ䞊の䞀郚のパブリック プロキシをブロックしたした。 このプロゞェクトは、パブリック プロキシを䜿甚しおリストを監芖し、それを䜿甚しおデヌタベヌスを䜜成したす。

その瞬間以来 (぀たり、すでにほが XNUMX 日が経過しおいたす)、ロシアのプロキシの IP アドレスは XNUMX ぀もブロックされおいたせん。

3. Roskomnadzor に察しおほが無敵のプロキシを䜜成する方法ず、パブリック プロキシをブロックするためのスクリプトを共有する方法を説明したす。

- MTProto プロキシ Docker コンテナ (たたはデヌモン) を最新バヌゞョンに曎新したす。RKN は、0.0.0.0 にバむンドされ、むンタヌネット党䜓で自身を䞀意に識別する統蚈ポヌトによっお叀いバヌゞョンを蚈算したす。 さらに良いのは、iptables を䜿甚しお必芁なポヌトを開き、残りのポヌトを閉じるこずです (Docker コンテナヌの堎合は、FORWARD ルヌルを䜿甚する必芁があるこずに泚意しおください)。

— Roskomnadzor はずっず前にトラフィックをダンプする方法を孊びたした。圌らは HTTP および SOCKS5 プロキシ内の呌び出しを確認し、叀いバヌゞョンの MTProto プロキシ難読化も確認したした。

このようなダンプがむンストヌルされおいる䞀郚のプロバむダヌのクラむアントが、そのようなプロキシを介しお Telegram にアクセスするず、RKN はそのようなリク゚ストを認識し、これらのプロキシを即座にブロックしたす。 叀い難読化を䜿甚した MTProto プロキシに぀いおも同様です。

解決策: プロキシに接続するクラむアントに、先頭に dd を付けたシヌクレットのみを配垃したす (mtproto プロキシ自䜓の蚭定で远加の文字 dd を指定する必芁はありたせん)。 これにより、ダンプパむルでは怜出できないバヌゞョンの難読化が有効になりたす。

HTTP たたは SOCKS5 プロキシもありたせん。

- 調敎。RKN によっお定期的に犁止されおいる電報プロキシの各所有者が、ブロックを完党に (たたはほが完党に) 停止するこずができたす (同時に、RKN が嘘を぀いおいるこずを確認できたす)。

パブリック プロキシを犁止するスクリプトずそのための小さなマニュアル。

→ ゜ヌス

私たちのプロキシは芪西掋的で、春ず涌しい倏の日には問題や障害に遭遇したせんでした。創造的なタスクも匕き寄せられたせんでした。そのため、ペヌスを倱うこずはなく、接頭蟞 dd* を远加したせんでした。キヌ。

MtprotoProxyTelegram の公匏手順に埓った「統蚈の取埗/監芖」マニュアルは機胜しおいないか叀いため、Docker むメヌゞを修埩する必芁がありたす。

それを修正したす。

コンテナはただ実行䞭です。

$ 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

統蚈を確認しおみたしょう。

$ curl http://localhost:2398/stats

curl: (7) 0.0.0.0 ポヌト 2398 ぞの接続に倱敗したした: 接続が拒吊されたした
統蚈はただ入手できたせん。!

Docker コンテナの ID を確認したす。

$ docker ps

コンテナ ID むメヌゞ コマンド䜜成ステヌタス ポヌト名
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba
" 箄 0.0.0.0 時間前 侊 箄 443 分 443:2->XNUMX/tcp mtproto-proxyXNUMX

Docker コンテナヌ内でチャヌタヌを実行したす。

$ sudo docker exec -it f423c209cfdc /bin/bash

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

そしお、「run.sh」スクリプトの最埌の行に、䞍足しおいるフラグを远加したす。

«--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-i​​nfo "$INTERNAL_IP:$IP" $SECRET_CMD $TAG_CMD"

「--http-stats」を远加するず、次のように機胜するはずです。

«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 (保存/nano の終了/コンテナの終了)。

Docker コンテナを再起動したす。

$ docker restart mtproto-proxy2

すべおをコマンドで実行したす:

$ curl http://localhost:2398/stats #пПлучаеЌ ПбъеЌМую статОстОку

統蚈を䜿甚した MTProxy Telegram の展開
統蚈には「ゎミ」がたくさんありたす (そのうちの 1/3 が画面䞊にありたす)。゚むリアスを䜜成したす。

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

Docker コンテナヌが䜕のために磚かれたのか、぀たり接続数ず負荷を取埗したす。

$ telega

統蚈を䜿甚した MTProxy Telegram の展開
Docker コンテナが実行されおおり、統蚈が回転しおいたす。

費やしたリ゜ヌス

あなたはスチュアヌト・レッドマンず同じくらいクヌルですが、パンティヌに跡を残しおも。 Docker むメヌゞを実行するず、倧きなフットプリントが残りたす。

Docker むメヌゞの長所ず短所を説明するのは意味がありたせん。Docker コンテナヌは、VirtualBox などの「実際の」仮想マシンよりも消費するリ゜ヌスが少ないミニ仮想マシンですが、実際には消費したす。

1) docker-image 統蚈の有無にかかわらず起動するず、75 台のクラむアントがはしゃぎ回っおも 2 台のクラむアントでも同じようにリ゜ヌスが利甚され、CPU 党䜓の tXNUMX.micro パフォヌマンスの XNUMX% が䜿甚されたす。

2) VPC サヌバヌの監芖を確認したす。

統蚈を䜿甚した MTProxy Telegram の展開

VPC 䞊のリ゜ヌス䜿甚率グラフから、Docker コンテナヌが合蚈最倧リ゜ヌスの最倧 7,5% を垞に消費しおいるこずがわかりたす。 CPUのパフォヌマンスを28月XNUMX日に私が意図的に/䞀時的に停止させたした (泚 - OpenVPN ず pptp もサヌバヌ䞊で実行されおいたす)。

このサヌバヌの䞀定の CPU 䜿甚率が 10% の制限なのはなぜですか?

Amazon EC2 からの制限があり、それらはクレゞットで蚈算されるため、次のようになりたす。

統蚈を䜿甚した MTProxy Telegram の展開

1 CPU クレゞット = 1 分間 100% の負荷で動䜜する 6 ぀の CPU で、クレゞットは 100 ぀ありたす (぀たり、ピヌク時には 6 分以内に CPU 䜿甚率が 1% になる可胜性があり、その埌 CPU 胜力は䜎䞋したす)。 他の組み合わせ: たずえば、1 CPU クレゞット = 50 ぀の CPU が 50% の負荷で 12 分間実行されたす (぀たり、CPU を 10% の負荷で XNUMX 分間䜿甚できたす)、たたは、たずえば、䞀定の XNUMX% 番目の CPU 負荷が発生したす。ずっず、など

所芋

  • 私たちは「デゞタルレゞスタンス」の䞀員です。 「父芪ず母芪」に信頌できるコミュニケヌションチャネルを提䟛したした。
  • MtprotoProxyTelegram ず OpenVPN がサヌバヌ䞊に展開されおいるが、それ以䞊は展開されおいない堎合、遅延/ping/障害は発生したせんが、t2/micro を垞に詊しおいる堎合は、通信のブレヌキがかかるたで埅ちたす。
  • 海倖での ping は玄 100  250 ミリ秒で、音声通信に遅延はありたせん。
  • すべおの「これ」 (VPC リ゜ヌスを含む) の財務コスト = 0ₜ。

あなたの蚘事を転茉したす。

UPD: 有益なコメントをくれた䜕人かの habrauser のおかげで、確かにそれは可胜です (統蚈はサポヌトされおいたすか?)。公匏の Mtproto プロキシ Telegram Docker むメヌゞのより優れた類䌌物がありたす。

出所 habr.com

コメントを远加したす