{"id":2175,"url":"\/distributions\/2175\/click?bit=1&hash=803b6e1bcbd9dfc4ba9456fda887a878c80d24df8d3a575913b14876e18923a5","title":"TJ \u0437\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f 10 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u2014\u00a0\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0430\u043d\u043e\u043d\u0441 \u0441 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438","buttonText":"\u0427\u0438\u0442\u0430\u0442\u044c","imageUuid":"d1d355d8-93a3-5140-aeae-14b03046b760","isPaidAndBannersEnabled":false}

MTProto сервер для каждого

Еще один способ в копилку путей обхода блокировки Telegram.

Еще несколько недель назад в тестовых версиях Telegram помимо привычных SOCKS5 и HTTP прокси появился протокол MTProto. Ранее не было информации о публичных серверах, которые предоставляют возможность подключиться к ним по новому протоколу, но команда MadelineProto представила решение для быстрого создания собственного MTProto сервера.

На данный момент, новый протокол доступен только в beta и alpha версиях приложений. Для подключения необходимо выбрать протокол MTPROTO в настройках и указать параметры тестового сервера от разработчиков MadelineProto.

Host: 163.172.167.189
Port: 6666
Secret: 4b3e3c2f99046f92a61bab6775848577
Ссылка для автоматического применения настроек.

Примечание: сервер может быть недоступен из-за большого наплыва подключений. Если тестовый сервер не работает, попробуйте один из вариантов, предложенных в Telegram канале @MTProtoProxies.

Любой пользователь linux может легко развернуть свой собственный MTProto сервер. Для этого нужно выполнить несколько команд:

Загружаем исполнительный файл сервера
wget https://phar.madelineproto.xyz/mtproxyd

Даем права на исполнение
chmod +x mtproxyd

Запускаем сервер
./mtproxyd pony 6666
Вместо pony можно указать любую строку. Этот параметр используется для генерации секретного ключа с помощью алгоритма md5.
Вместо 6666 можно указать любой порт, на ваше усмотрение.

После этого, на экране будет выведен секретный ключ, который вы укажете при подключении.

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

0
215 комментариев
Написать комментарий...
Вчерашний глобус

Короче. Раз уж это что-то делает на TJ, объясню что сейчас делает команда Telegram.

В общем если кто не знал сервера Telegram представляют из себя две сущности:
1. MTProto-сервера, к ним коннектится ваш телефон и именно их Дуров разворачивает тысячами в облаках Google, Amazon, Digital Ocean, etc.
2. Telegram-сервера. Собственно это сами сервера Telegram, где хранятся наши сообщения, картинки и всё остальное. Именно они последнее время и падают.

Что происходит сейчас: Команда Дурова внесла недавно в TL-схему (эта схема описывает структуру протокола MTProto) небольшое интересное изменение: в тело структуры dcOptions они добавили поле secret.

Выходит интересная вещь. Новый тип прокси и вовсе не прокси. Это MTProto-сервер, который отдали на откуп пользователям, но с одной интересной деталью: благодаря изменениям протокола и тому полю secret они сделали протокол неуязвимым для DPI провайдеров. Насколько я понял они маскируются под TLS (читай под HTTPS-трафик).

В итоге заблокировать Телеграм можно будет только двумя способами: по старинке вручную найти ссылку на новый MTProto-сервер и забанить его IP (это актуально для публичных прокси, их быстро найдут и переблочат, так что тут ничего нового) или полностью закрыть HTTPS-трафик (то есть практически отключить интернет).

Подытожив: текущие SOCKS-прокси имеют фатальный недостаток: при подключении они светят заголовок и любой активный DPI провайдера может классифицировать это как прокси, прикрыв лавочку. Было бы желание как, говорится. А оно я думаю у РКН ещё как будет.

Изменения же в протоколе MTProto не позволят отличить трафик Телеграма от обычного HTTPS-трафика.

Сейчас без прокси такая схема для всех клиентов:
Клиент <> МТПрото Сервер <> Телеграм Сервер
В случае использования прокси:
Клиент <> Прокси Сервер <> МТПрото Сервер <> Телеграм Сервер
Будет:
Клиент <> МТПрото Сервер с какой-то солью новой <> Телеграм Сервер

Теперь насчет самой статьи и собственно поделки MadelineProto:
1. Это велосипед, написанный за несколько дней чистым реверс-инженирингом.
2. Автор достаточно одиозный персонаж, его код зачастую диковат, про то что он пишет всё на PHP я молчу (писать реализацию MTProto на PHP это примерно как вилкой суп есть, имхо).
3. Рекомендую подождать анонса самого Telegram, скорее всего они представят свою версию MTProto-сервера, который любой желающий сможет развернуть с пол пинка.

Ответить
Развернуть ветку
Вчерашний глобус

Добавлю ещё чуток:
Из-за того что с такой схемой выходит на одну сущность Telegram будет работать ГОРАЗДО быстрее. Не будет дурацкой надписи Connecting to Proxy... и главное звонки будут работать всегда (увы, сейчас 90% прокси не настроены на команду UDP ASSOCIATE без которой звонки работать не будут)

Ответить
Развернуть ветку
Чудовищный торшер

На днях по приколу писала DPI, определяющий пакеты Telegram по содержимому:) Обфускация "anti-DPI" там простая. Генерят на клиенте случайный 32-байтовый ключ и 16-байтовый IV, ими шифруют пакет с AES CTR и отправляют. При этом сами ключ и IV отправляются перед зашифрованной нагрузкой.
В итоге, если вы провайдер, вам нужно ВСЕГО ЛИШЬ* брать от каждого исходящего пакета 8-40 байты (ключ) и 40-56 байты (IV), расшифровывать содержимое (64-... байты). В расшифрованном содержимом уже вполне стандартный mtproto-формат, где первые 8 байт — сигнатура авторизационного ключа. Поймали несколько пакетов, где первые 8 байт после расшифровки совпадают — смело вносим конечный адрес в реестр запрещённых ресурсов.

*насчёт ВСЕГО ЛИШЬ и почему я вообще об этом открыто говорю, не боясь дать подсказку РКН: сама идея слишком простая, глупая, а защиты-то по сути никакой, но вот только ни у одного провайдера не хватит мощностей __каждый__ пакет расшифровывать с AES-256 и какие-то проверки проводить на предмет наличия там Telegram.

Ответить
Развернуть ветку
3 комментария
Передовой пёс_анон

Спасибо за объяснение.

Что касается php, если мне не изменяет память, то серверная часть телеги на php тоже написана.

Ну и я не знаю, чем вдруг современный php хуже того же питона, и почему на нем так плохо писать. По мне, так это какие-то древние стереотипы, которые не совсем понятно, почему до сих пор живы. Сам пишу скрипты для личного пользования на php, потому что синтаксис питона меня несколько раздражает, никаких проблем в этом не вижу.

Ответить
Развернуть ветку
162 комментария
Печальный пришелец

Спасибо большое за понятное пояснение. Немного отредактировал статью.

Ответить
Развернуть ветку
Тесный Гоша

Комментарий недоступен

Ответить
Развернуть ветку
Удобный микрофон

Комментарий недоступен

Ответить
Развернуть ветку
6 комментариев
Немой месяц
Загружаем исполнительный файл сервера
Даем права на исполнение
Запускаем
Ответить
Развернуть ветку
Прошедший турник

Наконец-то твой скептицизм к месту, дед

Ответить
Развернуть ветку
Тесный Гоша

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Органический Гоша

Где-нибудь уже есть сравнение с SOCKS5?

Ответить
Развернуть ветку
Вчерашний глобус

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

Ответить
Развернуть ветку
Печальный пришелец

По ощущениям, картинки грузятся быстрее.

Ответить
Развернуть ветку
Удобный микрофон

Комментарий недоступен

Ответить
Развернуть ветку
Данный якорь

Возможно, вот это https://github.com/cjongseok/mtproto

Ответить
Развернуть ветку
4 комментария
Печальный пришелец

Они в самом файле mtproxyd, это php скрипт.

Ответить
Развернуть ветку
5 комментариев
Конечный историк

"А зачем вам сорцы, вы хотите наш сервер взломать?"

Ответить
Развернуть ветку
Данный якорь

Дубликат сообщения.

Ответить
Развернуть ветку
Специальный щит

Ссылку на гитхаб или зассал?

Ответить
Развернуть ветку
Студенческий мангал

Объясните идиоту, что на ubuntu 16.04 server, что на CentOS7 запускаю скрипт и выдает
/usr/bin/env: php: No such file or directory

Уже и создавал директорию, права вроде есть. Что делаю не так?

Ответить
Развернуть ветку
Печальный пришелец

У тебя php не установлен. Установи сначала его

Ответить
Развернуть ветку
3 комментария
Студенческий мангал

Еще забавный случай. Сервер один, но на SOCKS5 пинг меньше чем при использовании MTProto.

Ответить
Развернуть ветку
Конечный историк

Скорее всего из-за текущей неофициальной реализации mtproto proxy. Мож написана неоптимально. Думаю в официальном релизе пинг будет меньше.

Ответить
Развернуть ветку
Бесконечный файл

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Отдельный пёс_анон

Папн

Ответить
Развернуть ветку
Бесконечный файл

Комментарий недоступен

Ответить
Развернуть ветку
Печальный пришелец

Теоретически, тот скрипт, который в статье можно попробовать запустить и на Винде, он на php написан

Ответить
Развернуть ветку
1 комментарий
Читать все 215 комментариев
null