
E trashëguam këtë kaos,
duke filluar me Zello pa turp; LinkedIn
dhe duke përfunduar me «të tjerë» në platformën Telegram
në botën time.Dhe pastaj, duke u dridhur,
zyrtari shtoi me ngut dhe me zë të lartë:
por unë do të vendos rend (këtu në IT)“
(…).
Durov, ndjen se këto janë shtete autoritare që duhet ta friksojnë atë, shifropankun, ndërsa roskonadzorët dhe mbrojtësit e artë me filtrat e tyre DPI nuk e shqetësojnë shumë»
(Tehnika politike)
Politika ime teknike është më e thjeshtë, mund t'i shkruaj mendimet e mia rreth bllokimeve të papërgjegjshme në rrjetin rus, por mendoj se qytetarët progresivë të Rusisë Moderne dhe përdoruesit e Habrës e kanë ndjerë në lëkurën e tyre papërgjegjshmërinë e autoriteteve aktuale, prandaj do të kufizohem në një frazë të vetme: politika jonë teknike është «Rezistenca Digjitale». «sigurimi i një kanali komunikimi të qëndrueshëm për të afërmit dhe mikpritësit».
Distribuimi i MTProto proxy Telegram
- Niveli i vështirësisë teknike është «jo i komplikuar», nëse, për shembull, ndiqni këtë shënim.
- Niveli i besueshmërisë është «më i lartë se mesatarja»: imazhi docker punon me stabilitet, nuk kërkon rinisje çdo ditë, siç kanë shkruar zhvilluesit në dokumentacionin e tyre zyrtar të Telegram, por ndonjëherë ai container sigurisht që ka disa vulnerabilitete.
- Niveli i rezistencës/ankthit është 10, sepse 10 islamistë po pregatisin komplote «familja përdor», nuk ka pasur ndonjë ndalim nga RKN deri tani (që nga pranvera).
- Niveli i besimit është «publik ndrojtës», problemi është te klientët (disa miq janë të dyshimtë ndaj MtprotoProxy tim).
- Niveli i testosteronit është «nuk ka rritur».
- Shpenzimet financiare janë «0₽».
- Shpërblimi financiar është «nuk varet nga qytetari Durov». Inkurajimi është mundësia e imponimit të reklamave.
Do të ngremë TelegramProxy tonë në kapacitetet «falas/personal» të Amazon-ec2: t2.micro. Kam përdorur këtë makinë.
Ok, e shpërndamë falas, servertani kalojmë në faqen zyrtare dockerhub dhe shkarkojmë kontejnerin docker.
Nuk ka nevojë të kërkoni ndonjë figurë, skedar, apo buton të magjishëm — «nuk ka», çdo magji bëhet në CLI:
$ docker pull telegrammessenger/proxy #figura është shkarkuar.Por para «kësaj», instaloni docker për CLI:
sudo apt-get install docker.io dockerMë pas, në dokumentacionin zyrtar të MtprotoProxyTelegram na sugjerohet të bëjmë diçka të tillë, bëjmë:
$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #nisim kontejnerin tonë «mtproto-proxy».
Pas kësaj komande do të shfaqet një varg HEX në konsol, por kjo nuk na intereson.
Shkruajmë në CLI:
$ docker logs mtproto-proxyDhe marrim të dhënat e nevojshme:

Në këtë log na tregohen (i kam mbuluar):
A) IP-ja jonë e serverit (IP-ja e jashtme e serverit);
B) dhe një sekret rastësor — një varg rastësor në HEX.
Para se të registrojmë MtproProxy tonë, duhet të konfigurojmë firewall kryesor mbi iptables (pavarësisht se si e drejtoni trafikun në këtë VPC, ai do të jetë rebel, sepse firewalla kryesor në Amazon-EC2 ndodhet në ndërfaqen web dhe ka përparësi më të lartë se iptables).
Hymë në «konsolës Amazon-EC2» në Grupin e Sigurisë dhe hapim portin hyrës 443 (maskimi logjik i trafikut për momentin).

Marrim të dhënat tona nga logu «ip dhe sekret» dhe shkojmë në mesazherin Telegram, gjejmë Botin Zyrtar të MTProxy (@MTProxybot) dhe regjistrojmë MtproProxy tonë: nisnim komandën [/newproxy] dhe futim [ip_jonë:443], dhe pastaj edhe sekretin tonë [SECRET/HEX].
Nëse gaboni gjatë futjes së të dhënave, boti do të zemërohet dhe do t'ju dërgojë në...
Nëse mbushni dy rreshta pa gabime, do të merrni miratimin dhe një lidhje funksionale për MtprotoProxyTelegram-in tuaj, të cilin mund ta ndani me këdo.

Gjithashtu përmes këtij boti mund të shtoni kanal sponsori tuaj (por jo bisedë), ku do të impononi pikëpamjet tuaja ndaj përdoruesve që janë lidhur me servertua, ose mund të mos «spamoni», dhe mos shqetësoni klientët tuaj të mundshëm duke mos e treguar kanal në listën e ruajtur të mesazherit.
Një fjalë për botin, atje mund të kërkoni statistikën, por «edhe një rreth». Duket se «statistika» është e disponueshme kur pas jush është një «turmë e mangët» nga Maikachkala.
Monitorimi
Sa përdorues mund të lidhim në serverin tonë? Dhe në përgjithësi, kush/çfarë është atje? Çfarë? Dhe sa?
Shikojmë se çfarë thotë dokumentacioni zyrtar… Po, ja, bëni kështu:
$ curl http://localhost:2398/stats ose kështu $ docker exec mtproto-proxy curl http://localhost:2398/stats # dhe do të na japin statistikën direkt në CLI.«Mbaj portofolin gjerë» Sipas komandave të propozuara, ne gjithmonë do të marrim një gabim të ngjashëm:
«curl: (7) Dështoi lidhja me portin localhost 2398: Lidhja e refuzuar»
Proxyn tonë do të funksionojë. Por! Një rreth, e jo statistikë do të marrim.
Mund të merremi me punët për të zmadhuar sytë e kuq: kontrolloni
$ netstat -an | grep 2398 dhe...Fillimisht mendoja se ishte një tjetër gabim nga zhvilluesit e Telegram (dhe ende mendoj kështu), pastaj gjetëm një zgjidhje të përkohshme të këndshme: pastroni me faj dhe përmirësoni Docker-Container.
Më vonë m'u shfaq një informacion:
për kërcitjet shtetërore të Roskomnadzor rreth ‘statistikave’.
«Bllokuam në serverët tanë një pjesë të proxy-ve publik, duke shfrytëzuar bazat e projektit firehol. Ky projekt monitoron listat me proxy publikë dhe krijon baza me to.
Që nga ky moment (dmth, tashmë pothuajse dy ditë), nuk është bllokuar asnjë IP adresë e proxy-it tonë rus.
3. Po tregojmë si të krijoni një proxy pothuajse të paprekshëm për Roskomnadzor dhe po ndajmë skenarin për bllokimin e proxy-ve publik.
— Përditësoni docker-container (ose demon) MTProto proxy në versionin më të fundit: RKN e identifikon versionet e vjetra sipas portit të statistikave, i cili ishte lidhur në 0.0.0.0 dhe e identifikonte qartë për gjithë internetin. Sa më mirë — hapni portet e nevojshme me iptables, ndërsa mbyllni të tjerët (mbani mend se në rastin e docker-containerit duhet të përdorni rregullin FORWARD).
— Roskomnadzor ka mësuar prej kohësh të bllokojë trafikun: ata mund të shohin kërkesat brenda HTTP- dhe SOCKS5-proxy, si dhe shohin versionin e vjetër të obfuscation MTProto proxy.
Kur klientët e disa ofruesve, të cilët kanë instaluar këto bllokues, kërkojnë në Telegram përmes këtyre proxy-ve, atëherë RKN i sheh këto kërkesa dhe i bllokon menjëherë këto proxy. E njëjta gjë vlen për MTProto proxy me obfuscation të vjetër.
Zgjidhja: jepni klientëve që lidhen në proxy, secret vetëm me dd në fillim (nuk është e nevojshme të specifikohet shkronjat shtesë dd në cilësimet e vetë MTProto proxy). Kjo do të aktivizojë versionin e obfuscation që bllokuesit nuk mund ta identifikojnë.
Dhe asnjë HTTP- dhe SOCKS5-proxy.
— Një metodë që çdo pronar telegram-proxy, i cili bllokohet rregullisht nga RKN, mund të ndalojë plotësisht (ose pothuajse plotësisht) bllokimet (dhe gjithashtu të sigurohen se RKN gënjen).
Një skenar që bllokon proxy publikë dhe një manual të vogël për të.
→ Burimi
Proxy ynë është pro-perëndimor, nuk kam hasur probleme/bllokime gjatë ditëve të pranverës dhe verës, kështu që nuk kam merakosur për humbjen e ritmit dhe nuk kam shtuar prefix dd* në çelës.
Manuali ‘merr statistikë/monitorim’ sipas udhëzimeve zyrtare MtprotoProxyTelegram është jashtë funksionit/dhe është e vjetruar, do të duhet ta riparojmë docker-image.
Ta riparojmë.
Containeri ynë është ende në funksion:
$ docker stop mtproto-proxy #ndalojmë docker-containerin tonë të aktivizuar dhe fillojmë një imazh të ri me flamurin e statistikes të anashkaluar
$ docker run --net=host --name=mtproto-proxy2 -d -p443:443 -v proxy-config:/data -e SECRET=sekreti_your_previous_hex telegrammessenger/proxy:latest
Le të kontrollojmë statistikat:
$ curl http://localhost:2398/statscurl: (7) Dështoi të lidhet me portin 0.0.0.0 2398: Kërkesa u refuzua
Statistika është ende e paqartë .!..
Le të zbulojmë identifikuesin e docker-containerit:
$ docker psID KONTENIERI IMAGJIA KOMANDA KRIJUAR STATUSI PORTET EMRAT
f423c209cfdc telegrammessenger/proxy:latest '/bin/sh -c ‘/bin/ba...’ Rreth një orë më parë Aktiv 'Pothuajse një minutë 0.0.0.0:443->443/tcp mtproto-proxy2
Shkojmë me rregullat tona brenda docker-containerit:
$ sudo docker exec -it f423c209cfdc /bin/bash
$ apt-get update
$ apt-get install nano
$ nano -$ run.sh
Dhe në linjën e fundit të skenarit ‘run.sh’ shtojmë flamurin e anashkaluar:
«—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’
Shtoni ‘—http-stats’, diçka e ngjashme duhet të rezultojë:
‘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 (ruani/dilni nga nano/dilni nga containeri).
Rifillni docker-containerin tonë:
$ docker restart mtproto-proxy2Të gjitha, tani me komandën:
$ curl http://localhost:2398/stats #merrni statistikën e hollësishme
Në statistikë ka shumë ‘mbetje’ (në ekranin 1/3 e saj), krijoni alias:
$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bashMerrni atë për të cilin e rifilluam docker-containerin: numrin e lidhjeve dhe ngarkesën:
$ telega
Docker-containeri po punon, statistika është në rrotullim.
Burimet e shpenzuara
Sa do të ishe i shkëlqyer, Stuart Redman, edhe ti lë një gjurmë të dështimit në brekë. Një Docker-image funksional lë një gjurmë të konsiderueshme.
Të shpjegohet përparësitë dhe disavantazhet e docker-imageve nuk ka kuptim, docker-containeri është një mini-makina virtuale që konsumon burime më pak se një ‘mashinë’ virtuale, për shembull VirtualBox, por e konsumon.
1) Aktivizuar me statistikë docker-image ose pa të, dy klientë janë aktivë ose dhjetë - burimet përdoren ~ njëlloj: 75% e gjithë performancës së CPU t2.micro.
2) Shikoni monitorimin e serverit VPC:

Nga grafiku i konsumit të burimeve në VPC shohim se docker-containeri konsumon vazhdimisht ~7,5% të gjithë maksimaleve të performancës së CPU dhe më 28 maj u ndalua nga unë qëllimisht/përkohësisht (Shënim - në server po funksionojnë gjithashtu OpenVPN & pptp).
Pse 10% ngarkese të vazhdueshme të CPU është kufiri për këtë server?
Sepse ka kufizime nga Amazon EC2 dhe ato llogariten në kredi:

1 kredit CPU = 1 CPU që punon me 100% ngarkesë për një minutë, dhe ne kemi 6 kredi (dmth në kulmin e ngarkesës 100%-shit, përdorimi i CPU është i mundur për 6 minuta, dhe më pas fuqia e CPU do të ulet). Kombinime të tjera: për shembull, 1 kredit CPU = 1 CPU që punon me ngarkesë 50% për dy minuta (dmth ne mund të përdorim CPU me ngarkesë 50% për 12 minuta), ose, shembulli, ngarkesë constante 10% të CPU gjatë gjithë kohës.
Përfundimet
- Ne jemi një pjesë e "Rezistencës Digjitale". Siguruam "prindërit tanë" me një kanal të besueshëm komunikimi.
- Nëse në serverin tuaj keni instaluar MtprotoProxyTelegram dhe OpenVPN, por jo më shumë, nuk do të ketë vonesa/ping/rrëzime, por nëse eksperimentohet vazhdimisht me t2/micro tuaj, pritni ngadalësime në lidhje.
- Ping-u im përtej oqeanit është ~100-250ms, nuk ndjehen vonesa në komunikimin me zë.
- Shpenzimet financiare për të gjitha "këto" (përfshirë burimet VPC) = 0₽.
Rishkrimi i artikullit tuaj.
UPD: Faleminderit disa përdoruesve të Habra për komentet e dobishme, me të vërtetë, ndoshta (statistikat e mbështesin?), ka alternativa më të mira për imazhin zyrtar të docker-it Mtproto proxy Telegram.
Burimi: habr.com
