"Olen perinyt tämän sotkun,
alkaen häpeämättömästä Zellosta; LinkedIn
ja päättyen "kaikkiin muihin" Telegram-alustalla
minun maailmassani.Ja sitten hikka,
Virkamies lisäsi hätäisesti ja äänekkäästi:
mutta laitan asiat järjestykseen (täällä IT:ssä)"
(...).
Durov uskoo oikeutetusti, että autoritaaristen valtioiden pitäisi pelätä häntä, cypherpunk, ja Roskomnadzor ja kultaiset kilvet DPI-suotimeineen eivät todellakaan häiritse häntä.
(Poliittinen tekniikka)
Tekninen politiikkani on yksinkertaisempi, voin kuvailla tässä ajatuksiani huolimattomasta estämisestä Runetissa, mutta uskon, että Modernin Venäjän ja Habr-käyttäjien edistykselliset kansalaiset ovat tunteneet nykyisen hallituksen epäammattimaisuuden omalla ihollaan, joten rajoitan vain yksi lause: tekninen politiikkamme on "Digital Resistance" . "tarjoamalla sukulaisille ja ystäville vakaa viestintäkanava."
MTProto-välityspalvelimen Telegramin käyttöönotto
- Tekninen monimutkaisuusaste on "helppo", jos esimerkiksi seuraat tätä huijauslehteä.
- Luotettavuustaso on "keskiarvon yläpuolella": docker-kuva toimii vakaasti, sitä ei tarvitse käynnistää uudelleen joka päivä, kuten kehittäjät kirjoittivat virallisessa Telegram-dokumentaatiossaan, mutta kontti sisältää todennäköisesti joitain haavoittuvuuksia.
- Vastustuksen/ahdistuneisuuden taso - 10 ISIS-jäsentä kutovat salaliittojaan "sukulaisten käyttöön", kielto ei ole tullut RKN:ltä kertaakaan koko ajan (keväästä lähtien).
- Luottamustaso on "julkinen vauvan epäluottamus", ongelma asiakaspuolella (jotkut ystävät epäilevät MtprotoProxyani).
- Testosteronitasot - "ei noussut korkeammalle".
- Rahoituskulut - "0₽".
- Taloudellinen palkkio - "ei riipu Durovin kansalaisesta". Promotion - kyky määrätä mainontaa.
Lisäämme TelegramProxymme Amazon-ec2:n "vapaisiin / henkilökohtaisiin" kapasiteeteihin: t2.micro. käytin
Okei, ota ilmainen palvelin käyttöön, siirry viralliselle verkkosivustolle
Ei tarvitse etsiä kuvaa, tiedostoa tai taikapainiketta - "ne eivät ole siellä", kaikki taika tehdään CLI:ssä:
$ docker pull telegrammessenger/proxy #образ скачан.
Mutta ennen "setä" asenna docker CLI:lle:
sudo apt-get install docker.io docker
Lisäksi MtprotoProxyTelegramin virallisessa dokumentaatiossa meille tarjotaan jotain seuraavanlaista, teemme:
$ sudo su && docker run -d -p443:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest #запускаем наш контейнер «mtproto-proxy».
Tämän komennon jälkeen HEX-merkkijono ilmestyy päätteen ulostuloon, mutta emme ole kiinnostuneita siitä.
Kirjoitamme CLI:ssä:
$ docker logs mtproto-proxy
Ja saamme tarvittavat tiedot:
Tämän lokin tulosteessa meille näytetään (tahreina):
A) palvelimemme ip (ulkoisen palvelimen ip);
B) ja satunnainen salaisuus - satunnainen merkkijono HEX.
Ennen kuin rekisteröit MtproProxymme, sinun on määritettävä pääpalomuuri iptablesin yli (riippumatta siitä, kuinka ohjaat liikennettä tälle VPC:lle, se on tuhma, koska Amazon-EC2:n pääpalomuuri sijaitsee verkkoliittymässä ja sillä on korkeampi prioriteetti. iptables).
Menemme "
Otamme "ip and secret" -tietomme lokista ja siirrymme Telegram Messengeriin, etsimme virallisen MTProxy Admin Botin (@MTProxybot) ja rekisteröimme MtproProxymme: suorita [/newproxy] komento ja kirjoita [our_ip:443] ja sitten meidän [salainen /HEX].
Jos sotket syöttäessäsi tietoja, botti suuttuu ja lähettää sinut ...
Jos täytät kaksi riviä ilman virheitä, saat hyväksynnän ja toimivan linkin nykyiseen MtprotoProxyTelegramiisi, jonka voit jakaa kenen tahansa kanssa.
Tämän botin kautta voit myös lisätä sponsorointikanavasi (mutta ei chattia), jossa kohdistat näkemyksesi käyttäjiin, jotka ovat muodostaneet yhteyden palvelimeesi, mutta et voi "roskapostittaa" etkä häiritä potentiaalisia asiakkaitasi ilman näyttää kanavan kiinnitetyssä messenger-luettelossa.
Muutama sana lisää botista, josta voi pyytää tilastoja, mutta "myös donitsi". Ilmeisesti "tilastot" ovat saatavilla, kun sinulla on "joukko freeloadereja" takanasi Makhachkala.
seuranta
Kuinka monta käyttäjää voimme muodostaa yhteyden palvelimeemme? Ja joka tapauksessa, kuka/mikä siellä on? Mitä? Ja kuinka monta?
Katsomme mitä siellä on virallisen dokumentaation mukaan... Joo, tee se näin:
$ curl http://localhost:2398/stats или вот так $ docker exec mtproto-proxy curl http://localhost:2398/stats # и нам выдадут статистику прямо в CLI.
"Pidä tasku leveämpänä" Ehdotettujen komentojen mukaan saamme aina samanlaisen virheen:
«curl: (7) Yhteyden muodostaminen localhost-porttiin 2398 epäonnistui: Yhteys estetty»
Välityspalvelimemme toimii. Mutta! Bagel, ei tilastoja, joita saamme.
Voit tehdä asioita punasilmäisille: tarkista
$ netstat -an | grep 2398 и...
Aluksi ajattelin, että tämä on toinen jamb Telegram-kehittäjien takana (ja olen edelleen sitä mieltä), sitten löysin väliaikaisen hyvän ratkaisun: kiillota Docker Container tiedostolla.
Myöhemmin silmään osui infa:
Roskomnadzorin valtiontansseista "tilastojen" ympärillä.
”Olemme estäneet joitakin julkisia välityspalvelimia palvelimillamme Firehol-projektin tietokantoja käyttämällä. Tämä projekti valvoo luetteloita julkisilla välityspalvelimilla ja tekee niistä tietokantoja.
Siitä hetkestä lähtien (eli jo melkein kaksi päivää) yhtäkään venäläisen välityspalvelimemme IP-osoitetta ei ole estetty.
3. Kerromme, kuinka voit tehdä välityspalvelimen, joka on melkein haavoittumaton Roskomnadzorille, ja jakaa komentosarja julkisten välityspalvelinten estämiseksi.
- Päivitä MTProto-välityspalvelimen telakointikontti (tai daemon) uusimpaan versioon: RKN laskee vanhat versiot tilastoportin avulla, joka oli sidottu 0.0.0.0:aan ja tunnisti itsensä yksilöllisesti koko Internetissä. Vielä parempi, avaa tarvittavat portit iptablesilla ja sulje loput (muista, että telakkakontin tapauksessa sinun tulee käyttää FORWARD-sääntöä).
— Roskomnadzor oppi tyhjentämään liikennettä kauan sitten: he näkevät puhelut HTTP- ja SOCKS5-välityspalvelinten sisällä, ja he näkevät myös vanhan version MTProto-välityspalvelimen hämärtymisestä.
Kun joidenkin palveluntarjoajien asiakkaat, joilla on tällaisia kaatotiedostoja, käyttävät Telegramia tällaisten välityspalvelinten kautta, RKN näkee tällaiset pyynnöt ja estää välittömästi nämä välityspalvelimet. Sama pätee MTProto-välityspalvelimeen, jossa on vanha hämärtäminen.
Ratkaisu: jaa salaisuus vain dd:n alussa asiakkaille, jotka muodostavat yhteyden välityspalvelimeen (ei tarvitse määrittää muita kirjaimia dd itse mtproto-välityspalvelimen asetuksissa). Tämä mahdollistaa hämärtymisen version, jota kaatopaikat eivät pysty havaitsemaan.
Eikä HTTP- tai SOCKS5-välityspalvelimia.
- Säätö, jonka avulla jokainen sähkevälityspalvelimen omistaja, jonka RKN on säännöllisesti kieltänyt, voi kokonaan (tai melkein kokonaan) lopettaa eston (ja samalla varmistaa, että RKN valehtelee).
Skripti, joka kieltää julkiset välityspalvelimet ja pieni ohjekirja sitä varten.
→
Välityspalvelimemme on länsimielinen, en havainnut ongelmia/tukoksia keväisinä ja viileinä kesäpäivinä, se ei myöskään houkutellut luovaa tehtävää, joten en menettänyt vauhtia enkä lisännyt dd*-etuliitettä avain.
MtprotoProxyTelegramin virallisten ohjeiden mukainen manuaali “tilastojen/seuranta” ei toimi/vanhentunut, joudut korjaamaan telakointikuvan.
Korjaamme sen.
Kontti on edelleen käynnissä:
$ 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
Katsotaanpa tilastoja:
$ curl http://localhost:2398/stats
curl: (7) Yhteyden muodostaminen 0.0.0.0-porttiin 2398 epäonnistui: Yhteys evätty
Tilastot eivät ole vielä saatavilla!...
Selvitä telakointikontin tunnus:
$ docker ps
SÄILIÖN TUNNUS KUVAKOMENTO LUOTI TILAN PORTIEN NIMET
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Noin tunti sitten Ylös Noin minuutti 0.0.0.0:443->443/tcp mtproto-proxy2
Kuljemme charterimme kanssa telakkakontin sisällä:
$ sudo docker exec -it f423c209cfdc /bin/bash
$ apt-get update
$ apt-get install nano
$ nano -$ run.sh
Ja "run.sh"-skriptin aivan viimeiselle riville lisää puuttuva lippu:
«--http-tilastot»
"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"
Lisää "--http-stats", jotenkin tämän pitäisi toimia:
«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 (tallenna/poistu nanosta/poistu säilöstä).
Käynnistä telakointisäiliömme uudelleen:
$ docker restart mtproto-proxy2
Kaikki, nyt käskystä:
$ curl http://localhost:2398/stats #получаем объемную статистику
Tilastoissa on paljon "roskaa" (1/3 siitä on näytöllä), luo alias:
$ echo "alias telega='curl localhost:2398/stats | grep -e total_special -e load_average_total'" >> .bashrc && bash
Saamme sen, mitä varten telakointikontti on kiillotettu: liitäntöjen lukumäärä ja kuorma:
$ telega
Docker-säilö on käynnissä, tilastot pyörivät.
Resurssit käytetty
Niin siisti kuin oletkin Stuart Redman, vaikka sinä jätät jäljen housuisiisi. Käynnissä oleva Docker-kuva jättää suuren jalanjäljen.
Docker-kuvien etuja ja haittoja ei ole järkevää kuvata, telakointikontti on minivirtuaalikone, joka kuluttaa vähemmän resursseja kuin "todellinen" virtuaalikone, kuten VirtualBox, mutta se tekee.
1) Käynnistetty docker-kuvatilastoilla tai ilman niitä, kaksi asiakasta leikkii tai kymmenen - resursseja hyödynnetään ~ samalla tavalla: 75% koko CPU t2.micro -suorituskyvystä.
2) Tarkastelemme VPC-palvelimen valvontaa:
VPC:n resurssien käyttökaaviosta näemme, että telakointikontti kuluttaa jatkuvasti ~ 7,5 % kokonaismäärästä max. Prosessorin suorituskyky ja 28. toukokuuta pysäytin tarkoituksella/väliaikaisesti (Huomaa - OpenVPN ja pptp ovat myös käynnissä palvelimella).
Miksi 10 % jatkuva prosessorin käyttö on raja tälle palvelimelle?
Koska Amazon EC2:lla on rajoituksia ja ne lasketaan krediiteillä:
1 CPU krediitti = 1 prosessori, joka toimii 100 % kuormituksella yhden minuutin ajan, ja meillä on 6 krediittiä (eli huipuilla 100 % prosessorin käyttöaste on mahdollista 6 minuutissa, ja sitten prosessorin teho laskee). Muut yhdistelmät: esimerkiksi 1 prosessorin saldo = 1 prosessori, joka toimii 50 %:n kuormituksella kahden minuutin ajan (eli voimme käyttää prosessoria 50 %:n kuormituksella 12 minuuttia), tai esimerkiksi jatkuva 10 %:n prosessorikuormitus käytön aikana. koko ajan jne.
Tulokset
- Olemme osa "Digital Resistancea". Tarjosivat "isilleen ja äideilleen" luotettavan viestintäkanavan.
- Jos MtprotoProxyTelegram ja OpenVPN on otettu käyttöön palvelimella, mutta ei enempää, viiveitä / pingiä / virheitä ei tapahdu, mutta jos kokeilet jatkuvasti t2:ta / mikroa, odota viestintäjarruja.
- Ulkomaan pingini on ~100-250ms, puheviestinnässä ei ole viiveitä.
- Kaiken "tämän" taloudelliset kustannukset (mukaan lukien VPC-resurssit) = 0₽.
Tulosta artikkelisi uudelleen.
UPD: Kiitos joillekin habrausereille hyödyllisistä kommenteista, se on todellakin mahdollista (tuetaanko tilastoja?), Viralliselle Mtproto-välityspalvelimelle Telegram docker -kuvalle on parempia analogeja.
Lähde: will.com