Implantando seu MTProxy Telegram com estatísticas

Implantando seu MTProxy Telegram com estatísticas

"Eu herdei essa bagunça,
começando pelo desavergonhado Zello; LinkedIn
e terminando com "todo mundo" na plataforma Telegram
no meu mundo.

E então soluço,
O funcionário acrescentou apressadamente e em voz alta:
mas vou colocar as coisas em ordem (aqui na TI)"
(...).

Durov acredita, com razão, que são os estados autoritários que deveriam ter medo dele, um cypherpunk, e Roskomnadzor e escudos dourados com seus filtros DPI realmente não o incomodam.
(técnica política)

Minha política técnica é mais simples, posso descrever aqui meus pensamentos sobre o bloqueio descuidado em Runet, mas acredito que os cidadãos progressistas do russo moderno e os usuários do Habr sentiram a falta de profissionalismo do atual governo em sua própria pele, então vou me limitar a uma única frase: nossa política técnica é “Resistência Digital”. "oferecendo a parentes e amigos um canal de comunicação estável."

Implantando o proxy MTProto Telegram

  • O nível técnico de complexidade é “fácil”, se, por exemplo, você seguir esta cábula.
  • O nível de confiabilidade é “acima da média”: a imagem do docker funciona de forma estável, não precisa ser reiniciada todos os dias, como os desenvolvedores escreveram em sua documentação oficial do Telegram, mas o contêiner provavelmente contém algumas vulnerabilidades.
  • O nível de resistência / ansiedade - 10 membros do ISIS tecem suas conspirações "uso de parentes", a proibição não veio do RKN nem uma vez o tempo todo (desde a primavera).
  • O nível de confiança é "desconfiança pública do bebê", um problema do lado do cliente (alguns amigos suspeitam do meu MtprotoProxy).
  • Os níveis de testosterona - "não aumentaram".
  • Custos financeiros - "0₽".
  • Recompensa financeira - "não depende do cidadão Durov". Promoção - a capacidade de impor publicidade.

Aumentaremos nosso TelegramProxy nas capacidades “livre / pessoal” do Amazon-ec2: t2.micro. eu usei este um carro

Pronto, implantado seu servidor gratuito, acesse o site oficial dockerhub e baixe o contêiner do docker.

Não há necessidade de procurar alguma imagem, arquivo ou botão mágico - "eles não estão lá", toda a mágica é feita na CLI:

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

Mas antes de "isso", instale o docker para CLI:

sudo apt-get install docker.io docker

Além disso, na documentação oficial do MtprotoProxyTelegram, nos é oferecido algo como o seguinte, fazemos:

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

Após este comando, uma string HEX aparecerá na saída do terminal, mas não estamos interessados ​​nela.

Escrevemos no CLI:

$ docker logs mtproto-proxy

E obtemos os dados necessários:

Implantando seu MTProxy Telegram com estatísticas
Na saída deste log, somos mostrados (manchados):

A) nosso ip do servidor (ip do servidor externo);
B) e um segredo aleatório - uma string aleatória em HEX.

Antes de registrar nosso MtproProxy, você precisa configurar o firewall principal no iptables (não importa como você redirecione o tráfego para este VPC, será impertinente, pois o firewall principal no Amazon-EC2 está localizado na interface da web e tem uma prioridade maior sobre iptables).

Nós vamos para "console Amazon-EC2" no grupo de segurança e abra a porta de entrada 443 (mascaramento lógico tráfego pela primeira vez).

Implantando seu MTProxy Telegram com estatísticas

Pegamos nossos dados de “ip e segredo” do log e vamos para o Telegram messenger, encontramos o MTProxy Admin Bot oficial (@MTProxybot) e registramos nosso MtproProxy: execute o comando [/newproxy] e digite [nosso_ip:443] e então nosso [secret /HEX].

Se você errar ao inserir os dados, o bot ficará bravo e o enviará para ...

Se você preencher duas linhas sem erros, receberá aprovação e um link de trabalho para seu MtprotoProxyTelegram atual, que você pode compartilhar com qualquer pessoa.

Implantando seu MTProxy Telegram com estatísticas

Além disso, através deste bot, você pode adicionar seu canal de patrocínio (mas não um chat), onde você imporá suas opiniões aos usuários que se conectaram ao seu servidor, ou você não pode "spam" e não incomodar seus clientes em potencial sem mostrando o canal na lista de mensageiros fixados.

Mais algumas palavras sobre o bot, onde você pode solicitar estatísticas, mas “também um donut”. Aparentemente, "estatísticas" estão disponíveis quando você tem "uma multidão de aproveitadores" atrás de você Makhachkala.

Monitoramento

Quantos usuários podemos conectar ao nosso servidor? E de qualquer maneira, quem / o que está aí? O que? E quantos?

A gente olha o que tem de acordo com a documentação oficial ... Sim, aqui, faça assim:

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

“Mantenha seu bolso mais largo” De acordo com os comandos propostos, sempre receberemos um erro semelhante:

«curl: (7) Falha ao conectar à porta localhost 2398: Conexão recusada»

Nosso proxy funcionará. Mas! Bagel, não estatísticas que obtemos.

Você pode fazer coisas para os olhos vermelhos: confira

$ netstat -an | grep 2398 и...

A princípio pensei que esse era outro batente atrás dos desenvolvedores do Telegram (e ainda acho), então encontrei uma boa solução temporária: polir o Docker Container com um arquivo.

Mais tarde, um infa chamou minha atenção:

sobre as danças estaduais de Roskomnadzor em torno de "estatísticas".

“Bloqueamos alguns dos proxies públicos em nossos servidores usando os bancos de dados do projeto firehol. Este projeto monitora listas com proxies públicos e faz bancos de dados com eles.

Desde aquele momento (ou seja, quase dois dias), nem um único endereço IP do nosso proxy russo foi bloqueado.

3. Nós dizemos a você como fazer um proxy quase invulnerável ao Roskomnadzor e compartilhar um script para bloquear proxies públicos.

- Atualize o contêiner do docker proxy MTProto (ou daemon) para a versão mais recente: RKN calcula as versões antigas pela porta de estatísticas, que foi vinculada a 0.0.0.0 e se identificou exclusivamente para toda a Internet. Melhor ainda, abra as portas necessárias usando o iptables e feche o resto (lembre-se que no caso de um docker container, você deve usar a regra FORWARD).

— Roskomnadzor aprendeu como despejar o tráfego há muito tempo: eles veem solicitações dentro dos proxies HTTP e SOCKS5 e também veem a versão antiga da ofuscação do proxy MTProto.

Quando os clientes de alguns provedores que possuem esses dumps instalados acessam o Telegram por meio desses proxies, o RKN vê essas solicitações e bloqueia imediatamente esses proxies. O mesmo vale para o proxy MTProto com ofuscação antiga.

Solução: distribuir secret apenas com dd no início para clientes que se conectam ao proxy (não é necessário especificar letras adicionais dd nas configurações do próprio proxy mtproto). Isso habilitará uma versão da ofuscação que os dumppiles não podem detectar.

E sem proxies HTTP ou SOCKS5.

- Ajuste, com a ajuda do qual cada proprietário de um proxy de telegrama, que é regularmente banido pelo RKN, pode parar completamente (ou quase completamente) o bloqueio (e ao mesmo tempo certificar-se de que o RKN está mentindo).

Um script que bane proxies públicos e um pequeno manual para isso.

Fonte

Nosso proxy é pró-ocidental, não encontrei nenhum problema / bloqueio durante a primavera e os dias frios de verão, também não atraiu uma tarefa criativa, então não perdi o ritmo e não adicionei o prefixo dd* ao a chave.

O manual “obtendo estatísticas/monitoramento” de acordo com as instruções oficiais do MtprotoProxyTelegram não está funcionando/desatualizado, você terá que reparar a imagem do docker.

Nós consertamos.

O contêiner ainda está em execução:

$ 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

Vamos verificar as estatísticas:

$ curl http://localhost:2398/stats

curl: (7) Falha ao conectar à porta 0.0.0.0 2398: Conexão recusada
As estatísticas ainda não estão disponíveis.!..

Descubra o ID do contêiner docker:

$ docker ps

COMANDO DE IMAGEM DE ID DE CONTÊINER CRIADO NOMES DE PORTOS DE STATUS
f423c209cfdc telegrammessenger/proxy:latest "/bin/sh -c '/bin/ba…" Cerca de uma hora atrás Up Cerca de um minuto 0.0.0.0:443->443/tcp mtproto-proxy2

Seguimos com nosso fretamento dentro do container docker:

$ sudo docker exec -it f423c209cfdc /bin/bash

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

E na última linha do script "run.sh", adicione o sinalizador ausente:

«--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"

Adicione "--http-stats", algo assim deve funcionar:

«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 (salvar/sair do nano/sair do contêiner).

Reinicie nosso contêiner docker:

$ docker restart mtproto-proxy2

Tudo, agora no comando:

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

Implantando seu MTProxy Telegram com estatísticas
Tem muito “lixo” nas estatísticas (1/3 dele está na tela), crie um alias:

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

Obtemos para o que o contêiner docker foi polido: o número de conexões e a carga:

$ telega

Implantando seu MTProxy Telegram com estatísticas
O contêiner do Docker está em execução, as estatísticas estão girando.

Recursos gastos

Por mais legal que você seja Stuart Redman, até você deixa uma marca na calcinha. Uma imagem do Docker em execução deixa uma grande pegada.

Não faz sentido descrever as vantagens e desvantagens das imagens docker, um docker container é uma mini-máquina virtual que consome menos recursos do que uma máquina virtual “real”, como o VirtualBox, mas consome.

1) Lançado com ou sem estatísticas de imagem do docker, dois clientes brincam ou dez - os recursos são utilizados ~ da mesma forma: 75% de todo o desempenho da CPU t2.micro.

2) Observamos o monitoramento do servidor VPC:

Implantando seu MTProxy Telegram com estatísticas

No gráfico de utilização de recursos na VPC, vemos que o contêiner docker consome constantemente ~ 7,5% do máximo total. Desempenho da CPU e em 28 de maio foi interrompido por mim intencionalmente/temporariamente (Nota - OpenVPN e pptp também estão em execução no servidor).

Por que 10% de uso constante da CPU é o limite para este servidor?

Porque existem restrições do Amazon EC2 e são calculadas em créditos:

Implantando seu MTProxy Telegram com estatísticas

1 crédito de CPU = 1 CPU trabalhando com 100% de carga por um minuto e temos 6 créditos (ou seja, em picos, 100% de utilização da CPU é possível em 6 minutos e, então, a potência da CPU diminuirá). Outras combinações: por exemplo, 1 crédito de CPU = 1 CPU rodando a 50% de carga por dois minutos (ou seja, podemos usar a CPU a 50% de carga por 12 minutos), ou, por exemplo, uma carga constante de 10% da CPU durante o tempo todo, etc

Descobertas

  • Fazemos parte da "Resistência Digital". Forneceu a seus "pais e mães" um canal de comunicação confiável.
  • Se você tiver MtprotoProxyTelegram e OpenVPN implantados no servidor, mas não mais, não haverá atrasos / pings / falhas, mas se você estiver constantemente experimentando seu t2 / micro, aguarde os freios de comunicação.
  • Meu ping internacional é de aproximadamente 100-250ms, não há atrasos na comunicação de voz.
  • Custos financeiros para tudo "isso" (incluindo recursos VPC) = 0₽.

Reimpressão do seu artigo.

UPD: Obrigado a alguns habrausers por comentários úteis, de fato, é possível (as estatísticas são suportadas?). Existem análogos melhores da imagem oficial do docker do Telegram do proxy Mtproto.

Fonte: habr.com

Adicionar um comentário