Force tcp Telegram что такое

Я расскажу о том, как Telegram защищается от правительственных блокировок, а также о методах обхода, которые предоставлены пользователям, и как они работают.

Куда и как ходит Telegram?

Начнём с простого. Telegram-клиенты общаются с Telegram-серверами по собственному протоколу MTProto поверх TCP. Для соединения используются несколько адресов, которые не изменялись годами и продолжают являться основными точками подключения. Возьмём для примера один из адресов европейского региона: 149.154.167.40.

Обычно используется порт 443, но никакого отношения к SSL/TLS это не имеет.

На приведённой схеме видно, из чего состоит каждый пакет. Открытые пакеты используются только при первых коммуникациях с целью обменяться ключами, дальше вся связь зашифрована.

Обратите внимание, что даже в зашифрованных пакетах есть постоянные заголовки: первые 8 байт будут одинаковыми в пределах сессии, так как представляют из себя отпечаток авторизационного ключа. К этому моменту мы скоро вернёмся.

Что такое TCP/IP: Объясняем на пальцах

Роскомнадзор, мать его

И тут в игру вступает злое государство и его орган, регулирующий интернет, который начинает блокировку Telegram! В нашем случае это Роскомнадзор, который добавляет в выгрузку для провайдеров все подсети Telegram, в том числе ту, в которой находится наш 149.154.167.40. Провайдеры получают выгрузку и закрывают доступ пользователям к указанным адресам.

Команда Telegram, конечно, не оставила нас в беде. Ребята запустили множество серверов у разных хостинг-провайдеров, которые стали принимать пакеты и переадресовывать их на основные Telegram-сервера, попавшие под блокировку.

Откуда же приложение на вашем телефоне/компьютере узнает адреса этих новых серверов? Используются два метода.

Как доставить новые адреса серверов клиентам?

DC_UPDATE

Это первый способ, которым адреса новых серверов доставляются на устройства пользователей. Подходит он только для мобильных клиентов на iOS и Android, потому что использует Apple Push Notification Service и Google Cloud Messaging соответственно. Команда Telegram отправляет вам на устройства push-уведомления, внутри которых содержится список новых адресов. Приложение Telegram считывает их и начинает использовать эти адреса для связи.

  1. Помешать затее можно только заблокировав APNS и GCM полностью, что лишит вас всех уведомлений от всех приложений, даже если вы никогда не пользовались Telegram. На это власти не пойдут (?).
  2. В теории этот способ позволяет отправлять разным группам пользователей разные адреса, что может отсрочить блокировку новых серверов и помочь команде Telegram вычислить шпионов. На практике эта хитрость, насколько я знаю, не используется.

  1. Подходит только для мобильных устройств, так как на десктопных операционных системах нет единого механизма доставки уведомлений.
  2. Может работать нестабильно. Если уведомление по каким-то причинам до вас не дошло, приложение Telegram не узнает о новых адресах. Особенно актуально для iOS, где приложения сильно ограничены в фоновой обработке уведомлений. Именно поэтому на iOS такие push видны пользователю и требуют нажатия для активации.

TCP и UDP | Что это такое и в чем разница?

Роскомнадзор выслеживает новые адреса, приходящие в DC_UPDATE и блокирует их.

Domain fronting

Этот способ доставки адресов не так широко известен, а многие вовсе не понимают, как он работает.

Для начала рекомендую прочитать общее описание. Telegram же просто помещает зашифрованный список в TXT-записи своих сервисных доменов и на платформе Azure. Затем клиенты запрашивают эти данные с адресов dns.google.com и tcdnb.azureedge.net/prodv2/config.txt. Техника domain fronting позволяет сделать так, что провайдерские системы фильтрации и блокировок видят это как запросы к google.com и software-download.microsoft.com.

Плюсы domain fronting:

  1. Для блокировки этого способа придётся заблокировать весь google.com и сервис доставки обновлений Windows. Роскомнадзор на такое пойти не может. Однажды они блокировали google.com, но дали заднюю.
  2. Может работать и работает на любых платформах, включая десктопные.

obfuscated2: Защита от более продвинутого DPI

Что, если регулирующий интернет орган вроде Роскомнадзора станет чуть умнее? Если ещё не забыли, в начале статьи я упомянула, что даже в зашифрованных пакетах Telegram всегда есть постоянные заголовки. При желании провайдер может отслеживать эти заголовки и блокировать соединения на основании содержимого пакета, а не адресов серверов. Тогда все вышеописанные техники защиты станут бесполезными, подумаете вы, и окажетесь правы. Почти правы.

Telegram ещё как минимум в начале 2017 года реализовал защиту от подобных «лишних глаз», заглядывающих в пакеты.

Несмотря на то, что протокол MTProto открыт и описан на официальном сайте Telegram, официальные же клиенты используют дополнительный слой обфускации, нигде не документированный. Товарищ Tomas Susanka уже максимально подробно описал используемый метод обфускации пакетов, поэтому расписывать всё не буду.

Клиент придумывает случайный 32-байтовый ключ и случайный 16-байтовый Initialization Vector, которыми шифрует каждый пакет с помощью AES CTR, а чтобы сервер узнал, как это расшифровать. ключ и IV добавляются в начало пакета перед зашифрованным содержимым.

Вы назовёте это глупостью, ведь какой смысл отправлять зашифрованные пакеты и сразу прикладывать к ним ключ для расшифровки? Конечно, это абсолютно бесполезная защита в логическом смысле, но она имеет большой смысл на практике.

После обфускации все пакеты выглядят как случайный мусор, поэтому для определения, Telegram-трафик это или нет, провайдеру придётся расшифровывать каждый непонятный пакет по методике obfuscated2, прежде чем проводить дальнейшие проверки. Такие действия требуют неоправданное количество вычислительных мощностей, которых у провайдеров попросту нет.

Подключение к Telegram через прокси

Как уже было сказано выше, команда Telegram прикладывает много усилий, чтобы обойти государственные блокировки, но это не всегда работает. Временные сервера быстро блокируются Роскомнадзором и мы снова теряем доступ к мессенджеру.

Дальнейшая борьба с блокировками отдаётся на откуп пользователям. Telegram предоставляет целых два способа подключения через прокси в своих приложениях. Оба способа не предполагают раскрытия ваших переписок и прочих данных держателям прокси-серверов, так как трафик Telegram изначально зашифрован и передаётся через промежуточные звенья в нечитаемом виде.

SOCKS5-прокси

Очень банальный, но действенный способ. Если сможете осилить технический английский, почитайте вот этот RFC-документ.

Клиент Telegram подключается к заданному вами SOCKS5-серверу и уже через него устанавливает соединение с Telegram-серверами. Так как SOCKS5-сервер находится вне страны, которая ввела блокировки, соединения между ним и Telegram устанавливаются успешно.

Простая лазейка будет работать до тех пор, пока сам прокси-сервер не будет отслежен и заблокирован.

  1. Очень быстро и очень просто.
  2. Всем известный протокол, серверные реализации которого существуют под все платформы и ОС.
  1. Протокол очень легко детектируется с помощью DPI, государство может легко в принципе запретить использование SOCKS5 и заблокировать его.
  2. Логин и пароль для авторизации передаются в открытом виде. Никогда не используйте для авторизации в SOCKS5 пароли, которые используете где-либо ещё.
  3. Если ваше Telegram-приложение получало с помощью ранее описанных методов IP-адреса временных серверов, то при включении SOCKS5-прокси, приложение будет пытаться подключаться именно туда. Так как владельцы прокси, специализирующихся на Telegram, обычно блокируют соединения со всеми адресами, кроме основных подсетей Telegram, у пользователя могут иногда возникнуть проблемы с подключением.
Еще по теме:  Как поменять надпись сообщение в Телеграмме на телефоне Андроид

MTPROTO-прокси

Наконец-то мы подошли к тому, чего вы так долго ждали.

Начнём с того, что любой MTPROTO-прокси — самый что ни на есть реверс-прокси. Это значит, что в отличие от SOCKS5, клиент не просит прокси достучаться до какого-то Telegram-сервера. Клиент общается с MTPROTO-прокси так, будто это уже Telegram-сервер.

Официальной документации по MTPROTO-прокси нет до сих пор, хотя в клиентах функциональность реализована давно. Некоторые умельцы написали свои реализации серверов, изучив исходный код клиентов. Вот, например, одна из них (C#).

MTPROTO-прокси-сервер просто принимает пакеты от клиента и отправляет Telegram-серверу. Обманула, не так просто. Давайте разберёмся.

Во-первых, клиент общается с MTPROTO-прокси только с обфускацией obfuscated2.

Во-вторых, obfuscated2 здесь используется чуть модифицированный. Перед зашифрованной частью всё так же открыто передаются ключ и IV, только вот шифруется сам пакет не этим ключом, а sha256(key+secret). Secret — это тот самый 16-байтовый параметр, который вы заполняете при подключении к MTPROTO-прокси.

Secret нигде не передаётся в процессе связи. Его использует клиент для шифрования пакета и MTPROTO-прокси-сервер для расшифрования.

MTPROTO-прокси-сервер получает от вас пакет, деобфусцирует его ключом sha256(key+secret), затем снова обфусцирует, но уже используя обычный obfuscated2 без дополнительных параметров.

Таким образом получается, что сторонний человек никак не может деобфусцировать и классифицировать трафик между клиентом и MTPROTO-прокси-сервером.

  1. Трафик между клиентом и промежуточным звеном выглядит как случайный мусор, который при всём желании и наличии вычислительных мощностей не может быть деобфусцирован провайдерами.
  2. Это реверс-прокси, поэтому клиентам не нужно реализовывать никаких новых протоколов. Только obfuscated2 и поле для ввода secret. Клиент присоединяется к MTPROTO-прокси как к обычному Telegram-серверу.
  1. Каждый пакет должен быть дешифрован и зашифрован снова на стороне прокси-сервера. В Vee Security мы используем самописную реализацию SOCKS5-сервера, которая позволяет нам держать миллионы одновременных подключений. Ещё не проводила оценку, но уверена, что в самой идеальной реализации MTPROTO-прокси-сервера результаты будут в разы хуже. Этот минус убивает очень многое. Не ждите такого большого количества стабильных публичных прокси-серверов, как в случае с SOCKS5.
  2. От команды Telegram до сих пор нет никакой официальной документации, примеров реализации и прочих объяснений происходящему. Возможно, ещё не пришло время. Ждём.
  3. Невозможность проксировать голосовой трафик в звонках. Голосовой трафик при отключенном P2P передаётся через relay-сервера, которые не работают по протоколу MTProto, поэтому узкоспециализированный MTPROTO-прокси не подходит для передачи таких данных.

Кстати, в идею MTPROTO-прокси заложена возможность насильного отображения у пользователей вашего сервера так называемого «канала-спонсора». Это поможет держателям серверов с MTPROTO-прокси монетизировать свои начинания. Лично я к таким штукам отношусь негативно, но кушать всем надо.

Пока!

Спасибо за внимание. Надеюсь, было интересно и понятно, а вопросов больше не осталось. Если всё же остались, можете попытаться задать их мне, а я дополню статью. Контактов не дам. Найдёте, если нужно 🙂

А вот на мой канал подписывайтесь ещё как!

Также надеюсь на распространение заметки, чтобы прекратить споры о работе вышеописанных методов в различных технических сообществах.

Источник: telegra.ph

Делаем шпионскую флешку с защищенной операционкой Tails

Tor, безусловно, одно из самых нужных средств защиты личных данных. Но чтобы обезопасить себя со всех сторон и работать, не оставляя вообще никаких следов, нужно намного больше. Tails — операционная система семейства Debian Linux, основанная на серьезных принципах защиты данных. Используя флешку с Tails, ты можешь не опасаться не только слежки в интернете, но и обыска в квартире.

Справочник анонима

Статьи из этого цикла публикуются бесплатно и доступны всем. Мы убеждены, что каждый имеет право на базовые знания о защите своих данных.

Другие статьи цикла:

  • «Как работают токены аутентификации и в чем их отличия от паролей»;
  • «Теория и практика шифрования почты»;
  • «Виды шифрования и защиты трафика, выбор софта»;
  • «Как шифровать переписку в Jabber: пошаговая инструкция».

Если для тебя эти материалы тривиальны — отлично! Но ты сделаешь доброе дело, отправив ссылку на них своим друзьям, знакомым и родственникам, менее подкованным в технических вопросах.

Вступление

Tails — не единственный дистрибутив Linux, который ставит защиту данных во главу угла. Но, на мой взгляд, это на сегодняшний день лучший выбор для человека, желающего сохранить конфиденциальность переписки, защищенность личных данных и сохранность важной информации от любопытных глаз. И раз уж я заговорил о принципах защиты данных в Tails, то нелишне будет их перечислить.

  1. Сохранение конфиденциальности информации. Здесь все просто, нам необходимо защитить нашу информацию от посторонних. Для этого мы будем шифровать всё, использовать криптостойкие алгоритмы и длинные ключи. Что-то даже будем шифровать по нескольку раз. Ничто не должно храниться в открытом виде, ничто не передается в открытом виде.
  2. Сокрытие наличия информации (стеганографическая защита). Нам необходимо скрыть сам факт хранения или передачи данных. Мы будем использовать скрытые криптоконтейнеры, заполнять свободные места на дисках случайными данными, эвристически неотличимыми от зашифрованных данных.
  3. Скрытие адресата передачи информации. Иногда может потребоваться скрыть от чужих глаз не только саму информацию, но и адресата. В этом нам поможет многослойное шифрование и «луковая» маршрутизация.
  4. Правдоподобный отказ (plausible deniability). Может возникнуть необходимость направить настойчивых любопытствующих (к примеру, при досмотре) на ложный след. Поверх скрытых контейнеров с важными данными мы создадим ложные, но очень правдоподобные зашифрованные разделы, в которых будем хранить поваренную книгу и картинки с котами из интернета.
  5. Возможность отказаться от факта передачи информации, отозвать свои цифровые подписи и так далее. В этом нам поможет протокол OTR и использование HMAC вместо ЭЦП.
  6. Работа на компьютере без следов. Все, что может остаться в оперативной памяти, на жестком диске или даже в памяти видеокарты, необходимо тщательно зачистить. Все важное должно сохраниться только на надежно зашифрованном, скрытом и оберегаемом нами носителе, риск утечек должен быть сведен к минимуму.

Все эти принципы дополняют друг друга. Если ты действительно озабочен защитой своих данных и сохранением конфиденциальности, не пренебрегай ни одним из них.

Установка

Для установки Tails нам понадобится две флешки. Почему две? Чтобы понять, что такое рекурсия, нужно сначала понять, что такое рекурсия. А Tails можно установить, только используя Tails. Скачиваем ISO с официального сайта tails.boum.org. Образ рекомендуется сразу проверить с помощью OpenPGP, подробная инструкция о том, как это сделать, есть на сайте.

Скачанный образ записываем на первую, промежуточную флешку с помощью Universal Usb Installer. После этого можно выключать компьютер и загружаться с флешки. Когда ОС загрузится, нужно будет вставить вторую (основную) флешку и выбрать Applications → Tails → Tails Installer Install by Cloning.

Если все получилось, то система готова к работе.

Начало работы

После загрузки с рабочей флешки нам потребуется создать постоянный (persistent) защищенный раздел, своеобразный «жесткий диск на флешке». Это делается через Application → Tails → Configure Persistence.

Перезагружаем компьютер и на загрузочном экране выбираем Use Persistence и More Options, после чего вводим пароль для нашего хранилища.

Из меню внизу экрана выбираем регион. Это важно, поскольку от региона зависят входные узлы Tor. Здесь следует поэкспериментировать. В моем случае лучшим выбором оказалась Дания.

Еще по теме:  Виджет Telegram канала или группы для сайта

В меню расширенных настроек задаем пароль для программ, которым нужны права администратора. Можешь поставить любой, он работает в рамках сессии и ни на что больше не влияет.

Имей в виду, что загрузка занимает некоторое время, а потом Tails еще несколько минут будет подключаться к Tor. Отслеживать процесс можно, щелкнув по иконке Onion Circuits — луковичке в верхнем правом углу экрана.

Спустя некоторое время Tails проинформирует об успешном подключении к Tor. По умолчанию сеть сконфигурирована так, что весь трафик будет проходить через него. Теперь можно скачать все, что нам нужно для работы.

Дополнительное ПО, сохранение файлов и настроек

По умолчанию Tails не рассчитана на сохранение установленного ПО, настроек и файлов после выключения компьютера. Однако создатели предусмотрели возможность хранить некоторые данные в персистентном разделе. Настроить, что именно будет храниться, можно в разделе Settings → Persistent.

Большинство пунктов меню очевидны, поэтому я остановлюсь на последних трех. Второй и третий с конца отвечают за хранение APT-пакетов. Tails основана на Debian, поэтому большинство нужного нам ПО можно установить при помощи apt-get. И хотя сами программы при отключении компьютера не сохранятся, пакеты APT при соответствующих настройках останутся в персистентном разделе. Это позволяет развертывать все нужное ПО в процессе загрузки системы.

Последний пункт меню Dotfiles позволяет создать в персистентном разделе папку с файлами, ссылки на которые будут создаваться в домашней папке Tails при загрузке. Выглядит это следующим образом.

Вот пример структуры файлов в постоянном разделе.

/live/persistence/TailsData_unlocked/dotfiles ├── file_a ├── folder │ ├── file_b │ └── subfolder │ └── file_c └── emptyfolder

В домашней папке при таком раскладе будет следующая структура ссылок:

/home/amnesia ├── file_a → /live/persistence/TailsData_unlocked/dotfiles/file_a └── folder ├── file_b → /live/persistence/TailsData_unlocked/dotfiles/folder/file_b └── subfolder └── file_c → /live/persistence/TailsData_unlocked/dotfiles/folder/subfolder/file_c

Защищаем данные, отбрасываем хвост

Сам по себе наш персистентный раздел уже зашифрован.

Однако у него есть существенный недостаток: он не обеспечивает правдоподобное отрицание наличия зашифрованных данных. Чтобы обеспечить правдоподобное отрицание, я предложу решение, которое отличается от рекомендаций создателей Tails. Как поступить тебе — решай сам.

Создатели Tails рекомендуют использовать cryptsetup, основанный на LUKS. Эта программа позволяет создавать скрытые разделы, однако такой раздел скрыт не до конца. Насколько мне известно, существует возможность обнаружить заголовок скрытого раздела, что позволяет установить его наличие.

Детально описывать процесс создания двойного криптоконтейнера я не стану, отмечу лишь важный нюанс. Поскольку скрытый раздел TrueCrypt по-настоящему скрытый, о его существовании не догадывается даже сама программа, пока ты не введешь нужный пароль. Из-за этого при записи файлов в ложный раздел скрытый раздел может быть поврежден. Чтобы этого не произошло, при монтировании ложного раздела для записи на него картинок котиков нужно выбрать Mount Options → Protect hidden volume when mounting outer volume.

Подобно ящерице, которая при опасности отбрасывает свой хвост, мы теперь в случае необходимости сможем ввести пароль от фальшивого раздела и продемонстрировать всем фотографии котиков вместо конфиденциальной информации.

Общение

Теперь, когда мы обезопасили нашу информацию, можно приступить к ее передаче, то есть к общению. Начнем с Pidgin. Он отлично годится в качестве клиента IRC, а в Tails его еще и немного усилили. В состав ОС включен Pidgin с установленным плагином для протокола OTR. Именно он нам интересен больше всего.

Избегая сложной математики, можно сказать, что этот протокол обеспечивает защищенную передачу данных с возможностью отречения, то есть доказать, что конкретное сообщение написано конкретным человеком, невозможно.

Прежде чем начать общаться с кем-то по протоколу OTR, нужно подключиться к серверу IRC. При этом очень важно удостовериться в использовании SSL. Tor шифрует трафик при передаче его между узлами, но, если ты не будешь использовать SSL, твой трафик будет передаваться в открытом виде до входного узла Tor и от выходного узла адресату. Некоторые узлы Tor забанены на серверах IRC, поэтому может потребоваться перезапуск Tor. Сделать это можно командой /etc/init.d/tor restart .

После того как соединение с сервером установлено, выбираем Buddies → New Instant Message.

В открывшемся окне диалога выбираем Not Private → Start Private Conversation.

Будет предложено три варианта для аутентификации: ввести ответ на секретный вопрос, который вы обсудили с собеседником заранее (в этом случае необходимо ввести один и тот же ответ, пробелы и регистр считаются); ввести общую «секретную» фразу; проверить fingerprint — это сорокасимвольная последовательность, идентифицирующая пользователя OTR.

Теперь можно переписываться по OTR. Но как насчет голосового общения? Тут, увы, не все гладко. Поскольку Tails направляет весь трафик через Tor, возникает ряд проблем для голосового общения. Во-первых, большинство VoIP-программ используют UDP, в то время как через Tor возможна передача только пакетов TCP.

Во-вторых, Tor не отличается скоростью и пакеты иногда приходят с сильной задержкой. Так что возможны задержки и разрывы связи.

Тем не менее существует OnionPhone, специальный плагин для TorChat. Неплохо справляется и Mumble, хотя этот вариант и менее безопасен. Чтобы Mumble работал через Tor, необходимо запускать его командой torify mumble , а также выбрать пункт Force TCP в сетевых настройках программы.

Электронная почта

Почту в Tails можно использовать точно так же, как и в других ОС. В стандартную сборку входит почтовый клиент Icedove, его настройки и ключи можно хранить в персистентном разделе. Важный нюанс, который следует иметь в виду при отправке писем, состоит в том, что заголовки (subject) не шифруются. Это не ошибка, а особенность реализации протокола, о которой нужно просто знать. Кроме того, файлы, передаваемые по электронной почте, рекомендуется шифровать.

Итого

Я описал лишь некоторые возможности Tails, но базовая сборка содержит внушительный набор дополнительных программ, которые тебе предстоит изучить самостоятельно. Рекомендую, к примеру, посмотреть софт для стирания метаданных файлов — он поможет тебе обезопасить себя еще лучше.

Тарас Татаринов

Эксперт по ИБ АО «Монитор Безопасности»

Источник: xakep.ru

Развёртывание своего MTProxy Telegram со статистикой

„Я унаследовал эту неразбериху,
начиная с бессовестных Zello; LinkedIn
и кончая «всеми прочими» на платформе Telegram
в моём мире.

А потом икнув,
чиновник торопливо и громко добавил:
но я наведу (здесь в IT) порядок“
(. ).

Дуров, справедливо полагает, что это авторитарные государства должны его, шифропанка, бояться, а роскомнадзоры и золотые щиты со своим DPI-фильтрами его не очень-то беспокоят»
(Политическая техника)

Моя техническая политика — проще, я могу тут расписать свои размышления по беспечным блокировкам в рунете, но полагаю, что прогрессивные граждане Modern Russian и юзеры Хабра ощутили на своей шкуре непрофессионализм действующей власти, поэтому ограничусь единственной фразой: наша техническая политика — «Цифровое Сопротивление». «обеспечение родных и близких устойчивым каналом связи».

Развертывание MTProto proxy Telegram

  • Технический уровень сложности — «несложно», если, например, следовать данной шпаргалке.
  • Уровень надежности — «выше среднего»: docker-образ работает стабильно, перезапускать его не требуется каждый день, как писали разработчики в своей официальной документации Telegram, но какие-то уязвимости контейнер наверняка содержит.
  • Уровень сопротивления/тревоги — 10 игиловцев плетут свои заговоры «родня пользуется», бан не прилетал от РКН ни разу за все время (с весны).
  • Уровень доверия — «public baby distrust», проблема на стороне клиентов (некоторые друзья подозрительно относятся к моему MtprotoProxy).
  • Уровень тестостерона — «выше не стал».
  • Финансовые затраты — «0₽».
  • Финансовое вознаграждение — «от гражданина Дурова не зависит». Поощрение — возможность навязывание рекламы.
Еще по теме:  Устройства в Телеграмме что это такое

Окей, развернули свой бесплатный сервер, переходим на официальный сайт dockerhub и скачиваем docker-контейнер.

Не нужно искать какой-то образ, файл, или волшебную кнопку — «их нет», вся магия делается в CLI:

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

Но перед «этим» установите docker для CLI:

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».

После этой команды в выводе терминала появится HEX-строка, но она нам не интересна.

$ docker logs mtproto-proxy

И получаем нужные данные:

В выводе данного лога нам показывают (замазал):

А) наш ip сервера (внешний ip сервера);
Б) и случайный секрет — случайная строка в HEX.

Перед тем, как зарегать наш MtproProxy, нужно настроить главный файрволл над iptables (как бы вы не перенаправляли трафик на данной VPC, он будет непослушный, так как самый главный файрволл в Amazon-EC2 находится в web-интерфейсе и имеет более высокий приоритет над iptables).

Заходим в «консоль Amazon-EC2» в Security Group и открываем входящий 443 порт (логичная маскировка трафика на первое время).

Если накосячите при вводе данных, бот будет сердиться и слать вас на…

Если две строчки заполните без ошибок, то получите одобрение и рабочую ссылку, на ваш действующий MtprotoProxyTelegram, которым вы можете поделиться с кем угодно.

Также через данного бота можно добавить Ваш спонсоркий канал (но не чат), где Вы будете ваши взгляды навязывать пользователям, которые подключились к вашему серверу, а можно не «спамить», и не беспокоить своих будучи-потенциальных клиентов, не показывая канал в закрепленном списке мессенджера.

Еще пару слов о боте, там можно запрашивать статистику, но «тоже бублик». Видимо «статистика» доступна, когда за тобой Махачкала «толпа нахлебников».

Мониторинг

А сколько мы можем подключить юзеров на наш сервер? И вообще, кто/что там? Чего? И сколько?

Смотрим, что там по официальной документации… Ага, вот, сделать так:

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

«Держи карман шире» По предложенным командам мы всегда будем получать подобную ошибку:

«curl: (7) Failed to connect to localhost port 2398: В соединении отказано»

Прокси наш будет работать. Но! Бублик, а не статистику мы получим.

Можно заняться делами для красноглазиков: проверить

$ netstat -an | grep 2398 и.

Сначала я подумал, что это очередной косяк за разработчиками Telegram (и я до сих пор так думаю), потом нашёл временное неплохое решение: полирнуть напильником Docker-Контейнер.

Позже на глаза попалась инфа:

о государственных плясках Роскомнадзора вокруг «статистики».

«Мы заблокировали на своих серверах часть публичных прокси, воспользовавшись базами проекта firehol. Этот проект мониторит списки с публичными прокси и делает базы с ними.

С этого момента (то есть уже почти двое суток) не было заблокировано ни одного IP-адреса нашего российского прокси.

3. Рассказываем, как сделать почти неуязвимый для Роскомнадзора прокси и делимся скриптом блокировки публичных прокси.

— Обновите docker-контейнер (или демон) MTProto proxy до последней версии: РКН вычисляет старые версии по порту статистики, который биндился на 0.0.0.0 и однозначно себя идентифицировал для всего интернета. А лучше — откройте нужны порты с помощью iptables, а остальные — закройте (помните, что в случае с docker-контейнером следует использовать правило FORWARD).

— Роскомнадзор давно научился дампить трафик: они видят обращения внутри HTTP- и SOCKS5-прокси, а так же видят старую версию обфускации MTProto proxy.

Когда клиенты некоторых провайдеров, у которых установлены такие дампилки, обращаются к Telegram через такие прокси, то РКН видит такие обращения и сразу блокируют эти прокси. Тоже самое касается MTProto proxy со старой обфускацией.

Решение: раздавайте клиентам, которые подключаются к прокси, secret только с dd в начале (не нужно указывать дополнительные буквы dd в настройках самого mtproto proxy). Это включит версию обфускации, которую не умеют определять дампилки.

И никаких HTTP- и SOCKS5-прокси.

— Подгон, с помощью которого каждый владелец телеграм-прокси, который регулярно банится РКН, может полностью (или почти полностью) прекратить блокировки (а заодно и убедиться в том, что РКН лжёт).

Скрипт, который банит публичные прокси и небольшой мануал к нему».

Наш прокси прозападный, ни каких проблем/блокировок за весенние и прохладные летние деньки я не встретил, на творческую задачку это тоже не тянуло, поэтому потерей темпа не занимался и префикс 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) Failed to connect to 0.0.0.0 port 2398: В соединении отказано
Статистика всё еще недоступна .

Узнаем идентификатор docker-контейнера:

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f423c209cfdc telegrammessenger/proxy:latest «/bin/sh -c ‘/bin/ba…» About an hour ago Up About a minute 0.0.0.0:443->443/tcp mtproto-proxy2

Идём со своим уставом внутрь 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-info «$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 #получаем объемную статистику

В статистике много «мусора» (на скрине 1/3 её часть), создаём alias:

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

Получаем то, ради чего полировали docker-контейнер: кол-во подключений и нагрузку:

$ telega

Docker-контейнер работает, статистика крутится.

Затраченные ресурсы

Как бы ты не был крут Стюарт Редман даже ты оставляешь след от го.на на своих трусах. Работающий Docker-образ оставляет немаленький след.

Расписывать преимущества и недостатки docker-образов не имеет смысла, docker-контейнер — это мини-виртуальная машина, потребляющая ресурсы менее, чем «реальная» виртуальная машина, например VirtualBox, но потребляющая.

1) Запущен со статистикой docker-образ или без неё, два клиента резвятся или десять — ресурсы утилизируются ~одинаково: 75% от всей производительности CPU t2.micro.

2) Смотрим мониторинг VPC-сервера:

Из графика утилизации ресурсов на VPC видим, что docker-контейнер потребляет постоянно ~7,5% от общей макс. производительности CPU и 28 мая был остановлен мною намеренно/временно (Примечание — на сервере так же крутятся OpenVPN https://temofeev.ru/info/articles/razvyertyvanie-svoego-mtproxy-telegram-so-statistikoy/» target=»_blank»]temofeev.ru[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...