РКН заблокировал большинство казино

4 лучших онлайн казино за 2020 год с лицензией:
  • РОКС Казино
    РОКС Казино

    1 место в рейтинге по отдаче денег, бонусам и Джекпотам!

  • СОЛ Казино
    СОЛ Казино

    Приветственный бонус 30 000 руб + 100 000 руб за каждый деп!

  • Фрэш Казино
    Фрэш Казино

    Свежий весенний дизайн и моментальные выплаты!

  • Пинап Казино
    Пинап Казино

    Горячие девочки и огромные Джекпоты! Ретро-дизайн.

Битва с непричастными: как блокировка Telegram стала угрозой для Рунета

Как только Роскомнадзор запустил техническую процедуру блокировки ресурсов Telegram, начался принципиально новый этап в развитии политики блокировки интернет-ресурсов в России, а «битва за Telegram» между Павлом Дуровым, поддерживающей его частью технического сообщества (разработчики и администраторы VPN и прокси-сервисов) и, с другой стороны, РКН де-факто переросла в атаку государственного надзорного ведомства на инфраструктуру Рунета. Что позволяет об этом говорить?

Погоня за бесконечностью

Для начала — беспрецедентная не только в истории Рунета, но в мировой практике массовость блокировок. По состоянию на 12:00 московского времени 19 апреля общее число блокированных IP, по данным официального реестра РКН, превышало 18 млн — до начала блокировки Telegram их было всего около 38 тыс. Надо отметить, что подавляющее большинство сервисов и инфраструктуры Рунета пока используют для своего функционирования IP-адреса четвертой версии протокола (IPv4), которых всего в глобальной сети примерно 4,3 млрд. Таким образом, российские операторы связи уже блокируют более 0,3% от всего глобального пула адресов IPv4, и эта доля еще может вырасти. Для сравнения: европейская региональная интернет-регистратура RIPE NCC делегировала российским пользователям 45,2 млн адресов IPv4, то есть всего в три раза больше количества ресурсов, которые заблокированы из-за Telegram.

Отдельно стоит заметить, что мессенджер Дурова работает над полноценным использованием следующей версии протокола — IPv6, в которой число возможных адресов стремится к бесконечности — 2 в 128-й степени. К их блокировке Роскомнадзор технически не готов. Система «Ревизор», установленная на сетях операторов связи и позволяющая РКН контролировать блокировку интернет-ресурсов провайдерами, неспособна фильтровать трафик IPv6. Правда, перейти на новый протокол будет не так просто, доступ через IPv6 для конечных пользователей до сих пор предоставляют лишь немногие российские операторы связи. Из крупных провайдеров такую возможность реализовали только «ЭР-Телеком» и МТС.

Причина перехода к практике «ковровых блокировок» со стороны Роскомнадзора проста. РКН стремится не заблокировать Telegram «на бумаге», сквозь пальцы глядя на повсеместное применение прокси-сервисов и VPN, как было раньше, а разворачивает многовекторную атаку на всю экосистему, которую использует Telegram для обеспечения доступности на территории России. Сервис, обладая достаточно развитой виртуальной инфраструктурой (собственные автономные системы и сети IP-адресов) и немалыми финансовыми и техническими ресурсами, может динамически менять IP-адреса, используемые для обеспечения доступа пользователей. Telegram пользуется услугами крупнейших глобальных облачных платформ виртуального хостинга — Amazon Web Services (AWS), Google Cloud Platform. Эти платформы предоставляют свои услуги тысячам различных сервисов, располагают многими миллионами IP-адресов (19,7 млн только у AWS), и, главное, в силу особенностей их распределенной архитектуры блокировка отдельных адресов из их пула заведомо бессмысленна. Поэтому Роскомнадзор быстро перешел к блокировке «по площадям», то есть начал вносить в реестр целые подсети ресурсов платформы Amazon, а чуть позже и G-Cloud.

Теоретически РКН может и дальше наращивать число заблокированных подсетей и адресов. В первые часы блокировок разговоры об 1 млн адресов IPv4 звучали невероятно, сегодня же речь может идти и о 20–30 млн адресов, вплоть до почти полной блокировки ресурсов AWS, G Cloud и других крупнейших платформ облачного хостинга.

Роскомнадзор пытается не давать Дурову времени на передышку и блокирует любые подсети, в которых Telegram начинает использовать хотя бы несколько десятков IP-адресов. Кроме того, РКН начал активно рассылать уведомления о предстоящих блокировках владельцам VPN и прокси-сервисов, наиболее популярных среди российских пользователей. Причем в качестве нормативной базы госрегулятор использует все доступные инструменты — как поправки в № 149-ФЗ, запрещающие использовать VPN и прокси-сервисы для доступа к заблокированным ресурсам, так и судебное решение по делу Telegram, в котором обязанность прекратить доступ к мессенджеру возлагается не только на РКН, но и на «иных лиц», в качестве которых могут выступать владельцы VPN и прокси-сервисов, позволяющих обойти блокировку.

Еще один важный вектор атаки надзорного ведомства на экосистему, обеспечивающую работу Telegram, — давление на Apple и Google, владельцев магазинов приложений, через которые мобильная версия мессенджера доступна для установки. Уже 17 апреля регулятор потребовал от корпораций удалить мессенджер из российских магазинов App Store и Google Play Store. И в этой части у Роскомнадзора есть шансы на успех — в 2020 году обе компании подчинились требованию удалить приложение LinkedIn, заблокированное в России. Второй потенциальный вектор воздействия РКН на экосистему Google и Apple — блокировка IP-адресов пуш-уведомлений, которые приходят на устройства пользователей соответствующих ОС (Android и iOS). Через такие пуш-уведомления приложение Telegram обновляет сетевые настройки и переходит на новые сервера, IP-адреса которых еще не заблокированы РКН. Однако регулятор не может избирательно заблокировать адреса, с которых направляются пуш-уведомления только для Telegram. Придется блокировать сервис пуш-уведомлений для iOS и Android полностью, а значит, лишить таких уведомлений практически всех пользователей мобильных устройств в России.

Сейчас для решения задачи по эффективной блокировке мессенджера используются любые методы по принципу «на войне все средства хороши». Отсюда весьма неприятный для российской ИТ-отрасли, частного сектора в целом да и всех пользователей вывод — ведомство не считается с «сопутствующими потерями», которые неизбежны при такой атаке. Оценить масштаб потерь позволяет тот факт, что из всего количества заблокированных на данный момент IP-адресов мессенджер по разным оценкам использует никак не более 5%.

Перечень лучших онлайн казино на русском языке:
  • РОКС Казино
    РОКС Казино

    1 место в рейтинге по отдаче денег, бонусам и Джекпотам!

  • СОЛ Казино
    СОЛ Казино

    Приветственный бонус 30 000 руб + 100 000 руб за каждый деп!

  • Фрэш Казино
    Фрэш Казино

    Свежий весенний дизайн и моментальные выплаты!

  • Пинап Казино
    Пинап Казино

    Горячие девочки и огромные Джекпоты! Ретро-дизайн.

Но остальные адреса также используются различными сервисами и пользователями. Бизнес-процессы этих сервисов и пользователей и есть те щепки, которые «летят», когда Роскомнадзор «рубит лес» по всему мировому пулу IPv4 в погоне за Telegram. По состоянию на 19 апреля сообщения о пострадавших сервисах исчислялись десятками, речь шла о мессенджере Viber, социальной сети «Одноклассники», видеоагентстве Ruptly, игровых сервисах Xbox Live и Playstation Network, потоковом аудиосервисе Spotify, онлайн-школе английского SkyEng, курьерской службе «Птичка», некоторых банках и розничных сетях.

Особенно важно, что в зоне риска оказались элементы платежной и банковской инфраструктуры. Парадоксальным образом надзорное ведомство, де-юре выполняющее нормы антитеррористического законодательства, на практике вплотную приблизилось к нарушению функционирования жизненно важной, критической инфраструктуры. Сегодня такая инфраструктура косвенно зависит от распределенных интернет-экосистем, будь то перенос в облако инфраструктуры крупных банков, виртуализация сегментов сетевой инфраструктуры крупных промышленных предприятий или стремительный рост промышленного сегмента Интернета вещей (IoT), который тянет за собой развитие «индустриального облака». Когда глава РКН заявляет о том, что специалисты его ведомства перед блокировкой «разбирают» каждую подсеть, анализируя, какие сервисы используют ее ресурсы, он явно лукавит — такую работу для подсетей облачных хостинг-платформ из сотен тысяч и миллионов IP нельзя проделать за считаные часы. В теории возможен вариант наличия у РКН некоего «белого списка» IP-адресов, используемых критически важными сервисами на территории России; тогда «под нож» блокировок пускаются ресурсы любых сервисов, которые в этом списке отсутствуют. Но такого списка, насколько известно, не существует, поэтому ситуация еще проще — блокируются любые сервисы, которым не повезло делить пул адресов с Telegram.

На данный момент Telegram вполне функционален и даже получает дополнительную аудиторию, как и наиболее популярные VPN и прокси-сервисы. Но о чем вся эта история в конечном счете? Не о кинематографически яркой победе одиночки-криптоанархиста над репрессивным ведомством и не о том, что Роскомнадзор, возможно, просто «разминается» перед грядущими атаками на Facebook или на сервисы Google. Она о том, как фрагментация глобального интернета из неуклюжих теоретических построений технических экспертов и дипломатов становится сутью технической политики российского государства.

Вот только блокировка инфраструктуры глобальных распределенных платформ и других сервисов обрекает Россию на весьма причудливую, кустарную версию реализации программы «цифровая экономика в отдельно взятой стране» — то есть в отрыве от глобальных трендов. А «соревнование снаряда и брони», о котором говорит Жаров, — не столько гонка РКН за Telegram, сколько борьба государства за границы своего суверенитета в сети, попытка силовым методом «достать» сервисы, действующие в России, из глобально распределенной облачной экосистемы. Последствия этой борьбы пока ощущают на себе не столько ее участники, сколько пользователи и бизнес: в соревновании снаряда и брони проигрывают прежде всего мирные жители. А значит, нет никаких оснований ждать ее скорого окончания.

Почему онлайн-казино обходят запрет Роскомнадзора

На протяжении всего времени, что ведется борьба с распространением игорного бизнеса на просторах Рунета, оставался не охваченный запретами сегмент – онлайн-казино. Правда, в 2020 году Дмитрий Медведев подписал закон о запрете азартных игр в интернете, за нарушение которого можно было получить срок до шести лет.

ПО ТЕМЕ

Роскомнадзор объяснил блокировку Qiwi

Россияне потратят $500 миллионов на игры в Интернете

Онлайн ставки пока приоткрыты

Однако эта мера реально так и работала до 2020 года, когда заработал закон о блокировке онлайн-казино и букмекерских контор. Благодаря ужесточению правил работы на рынке остались единицы. Казалось бы, цель достигнута. Ан, нет – все, кто не смог встроиться в новую правовую систему, ушли в тень. При этом, блокировка стала самой эффективной мерой борьбы с конкурентами.

С октября 2020 года Роскомнадзор заблокировал свыше шести тысяч сайтов. Но, как оказывается, ряд из них продолжают работать. Причем, не только сохраняют, но и увеличивают число игроков. Так, по данным агентства «Московский монитор», после закрытия сайтов-нарушителей закона, многие из них продолжают работать. Например, за июль Роскомнадзор заблокировал свыше двух тысяч сайтов с азартными играми. При этом, больше всего «зеркал» было закрыто у конторы Fonbet и 1xBet. При этом, портал обращает внимание на то, что еще один игрок этого рынка интернет-услуг – Liga Stavok – потеряло лишь одно «зеркало».

Как утверждает издание, на дублерах основного сайта конторы легко можно найти подробные инструкции, как обходить блокировки, ставить себе специальные программы и даже пользоваться скандальной закрытой сетью ТОР. «И ничего, данный ресурс живет и процветает, не попадая под внимание Роскомнадзора, – констатирует агентство. – Хотя найти в поисковике его может любой школьник, поскольку сайт находится на первом месте выдачи».

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

Те, кто хорошо знаком с онлайн-сегментом азартных игр, выражают недоумение: как Liga Stavok каждый раз остается на плаву. Экспертное сообщество опасается, что борьба с азартными играми, начавшаяся десять лет назад, могла поднадоесть и ее инициаторам, и борцам.

Обход блокировок РКН с помощью DNSTap и BGP

Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.

В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные «Ревизорро» — сопутствующие потери от блокировок довольно велики. Да и среди «правомерно» заблокированных сайтов много полезных (привет, rutracker)

Я живу вне юрисдикции РКН, но на родине остались родители, родственники и друзья. Так что было решено придумать легкий для далеких от ИТ личностей способ обхода блокировок, желательно вовсе без их участия.

В этой заметке я не буду расписывать базовые сетевые вещи по шагам, а опишу общие принципы как можно реализовать эту схему. Так что знания как работает сеть вообще и в Linux в частности — must have.

Типы блокировок

Для начала освежим в памяти что же блокируется.

В выгружаемом XML от РКН несколько типов блокировок:

Мы их сведем для простоты к двум: IP и домен, а из блокировок по URL будем просто вытаскивать домен (точнее за нас это уже сделали).

Хорошие люди из Роскомсвободы реализовали прекрасный API, через который можно получать то, что нам нужно:

Доступ к заблокированным сайтам

Для этого нам нужен какой-нибудь маленький зарубежный VPS, желательно с безлимитным траффиком — таких много по 3-5 баксов. Брать нужно в ближнем зарубежье чтобы пинг был не сильно большой, но опять-таки учитывать, что интернет и география не всегда совпадают. А так как никакого SLA за 5 баксов нет — лучше взять 2+ штуки у разных провайдеров для отказоустойчивости.

Далее нам необходимо настроить зашифрованный туннель от клиентского роутера до VPS. Я использую Wireguard как самый быстрый и простой в настройке т.к. клиентские роутеры у меня тоже на базе Linux (APU2 или что-то на OpenWRT). В случае каких-нибудь Mikrotik/Cisco можно использовать доступные на них протоколы вроде OpenVPN и GRE-over-IPSEC.

Идентификация и перенаправление интересующего траффика

Можно, конечно, завернуть вообще весь интернет-траффик через зарубеж. Но, скорее всего, от этого сильно пострадает скорость работы с локальным контентом. Плюс требования к полосе пропускания на VPS будут сильно выше.

Поэтому нам нужно будет каким-то образом выделять траффик к заблокированным сайтам и выборочно его направлять в туннель. Даже если туда попадёт какая-то часть «лишнего» траффика, это всё равно гораздо лучше, чем гонять всё через тоннель.

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

С блокировками по IP всё понятно: просто анонсируем все заблокированные IP с VPS. Проблема в том, что подсетей в списке, который отдает API, около 600 тысяч, и подавляющее большинство из них — это хосты /32. Такое количество маршрутов может смутить слабые клиентские роутеры.

Поэтому было решено при обработке списка суммировать до сети /24 если в ней 2 и более хоста. Таким образом количество маршрутов сократилось до

100 тысяч. Скрипт для этого будет дальше.

Домены

Тут сложнее и способов есть несколько. Например, можно поставить прозрачный Squid на каждом клиентском роутере и делать там перехват HTTP и подглядывание в TLS-хендшейк с целью получения запрашиваемого URL в первом случае и домена из SNI во втором.

Но из-за всяких новомодных TLS1.3+eSNI анализ HTTPS с каждым днем становится всё менее реальным. Да и инфраструктура со стороны клиента усложняется — придется использовать как минимум OpenWRT.

Поэтому я решил пойти по пути перехвата ответов на DNS-запросы. Тут тоже над головой начинает витать всякий DNS-over-TLS/HTTPS, но эту часть мы можем (пока что) контролировать на клиенте — либо отключить, либо использовать свой сервер для DoT/DoH.

Как перехватывать DNS?

Тут тоже может быть несколько подходов.

  • Перехват DNS-траффика через PCAP или NFLOG
    Оба эти способа перехвата реализованы в утилите sidmat. Но она давно не поддерживается и функционал очень примитивен, так что к ней нужно всё равно нужно писать обвязку.
  • Анализ логов DNS-сервера
    К сожалению, известные мне рекурсоры не умеют логгировать ответы, а только запросы. В принципе это логично, так как в отличии от запросов ответы имеют сложную структуру и писать их в текстовой форме трудновато.
  • DNSTap
    К счастью, многие из них уже поддерживает DNSTap для этих целей.

Что такое DNSTap?

Это клиент-серверный протокол, основанный на Protocol Buffers и Frame Streams для передачи с DNS-сервера на некий коллектор структурированных DNS-запросов и ответов. По сути DNS-сервер передает метаданные запросов и ответов (тип сообщения,IP клиента/сервера и так далее) плюс полные DNS-сообщения в том (бинарном) виде в котором он работает с ними по сети.

Важно понимать, что в парадигме DNSTap DNS-сервер выступает в роли клиента, а коллектор — в роли сервера. То есть DNS-сервер подключается к коллектору, а не наоборот.

На сегодняшний день DNSTap поддерживается во всех популярных DNS-серверах. Но, например, BIND во многих дистрибутивах (вроде Ubuntu LTS) часто собран почему-то без его поддержки. Так что не будем заморачиваться пересборкой, а возьмём более легкий и быстрый рекурсор — Unbound.

Чем ловить DNSTap?

Есть некоторое количество CLI-утилит для работы с потоком DNSTap-событий, но для решения нашей задачи они подходят плохо. Поэтому я решил изобрести свой велосипед, который будет делать всё что необходимо: dnstap-bgp

  • При запуске загружает из текстового файла список доменов, инвертирует их (habr.com -> com.habr), исключает битые строки, дубликаты и поддомены (т.е. если в списке есть habr.com и www.habr.com — будет загружен только первый) и строит префиксное дерево для быстрого поиска по этому списку
  • Выступая в роли DNSTap-сервера ждет подключения от DNS-сервера. В принципе он поддерживает как UNIX- так и TCP-сокеты, но известные мне DNS-сервера умеют только в UNIX-сокеты
  • Поступающие DNSTap-пакеты десериализуются сначала в структуру Protobuf, а затем само бинарное DNS-сообщение, находящееся в одном из Protobuf-полей, парсится до уровня записей DNS RR
  • Проверяется есть ли запрашиваемый хост (или его родительский домен) в загруженном списке, если нет — ответ игнорируется
  • Из ответа выбираются только A/AAAA/CNAME RR и из них вытаскиваются соответствующие IPv4/IPv6 адреса
  • IP-адреса кешируются с настраиваемым TTL и анонсируются во все сконфигурированные BGP-пиры
  • При получении ответа, указывающего на уже закешированный IP — его TTL обновляется
  • После истечения TTL запись удаляется из кеша и из BGP-анонсов

  • Перечитывание списка доменов по SIGHUP
  • Синхронизация кеша с другими экземплярами dnstap-bgp через HTTP/JSON
  • Дублирование кеша на диске (в базе BoltDB) для восстановление его содержимого после перезапуска
  • Поддержка переключения в иной network namespace (зачем это нужно будет описано ниже)
  • Поддержка IPv6

  • IDN домены пока не поддерживаются
  • Мало настроек BGP

Я собрал RPM и DEB пакеты для удобной установки. Должны работать на всех относительно свежих OS с systemd, т.к. зависимостей у них никаких нет.

Схема

Итак, приступим к сборке всех компонентов воедино. В результате у нас должна получиться примерно такая сетевая топология:

Логика работы, думаю, понятна из диаграммы:

  • У клиента настроен наш сервер в качестве DNS, причем DNS запросы тоже должны ходить по VPN. Это нужно для того чтобы провайдер не мог использовать перехват DNS для блокировки.
  • Клиент при открытии сайта посылает DNS-запрос вида «а какие IP у xxx.org»
  • Unbound резолвит xxx.org (или берет из кеша) и отправляет ответ клиенту «у xxx.org такие-то IP», параллельно дублируя его через DNSTap
  • dnstap-bgp анонсирует эти адреса в BIRD по BGP в том случае если домен есть в списке заблокированных
  • BIRD анонсирует маршрут до этих IP с next-hop self клиентскому роутеру
  • Последующие пакеты от клиента к этим IP идут уже через туннель

На сервере для маршрутов к заблокированным сайтам у меня внутри BIRD используется отдельная таблица и с ОС она никак не пересекается.

В этой схеме есть недостаток: первый SYN пакет от клиента, скорее всего, успеет уйти через отечественного провайдера т.к. маршрут анонсируется не мгновенно. И тут возможны варианты в зависимости от того как провайдер делает блокировку. Если он просто дропает траффик, то проблем нет. А если он редиректит его на какой-то DPI, то (теоретически) возможны спецэффекты.

Также возможны чудеса с несоблюдением клиентами DNS TTL, что может привести к тому что клиент будет юзать какие-то устаревшие записи из своего протухшего кеша вместо того чтобы спросить Unbound.

На практике у меня ни первое ни второе не вызывало проблем, but your mileage may vary.

Настройка сервера

Для удобства раскатывания я написал роль для Ansible. Она может настраивать как сервера, так и клиенты на базе Linux (рассчитано на deb-based дистрибутивы). Все настройки достаточно очевидны и задаются в inventory.yml. Эта роль вырезана из моего большого плейбука, поэтому может содержать ошибки — pull requests welcome 🙂

Пройдёмся по основным компонентам.

При запуске двух BGP-демонов на одном хосте возникает фундаментальная проблема: BIRD никак не хочет поднимать BGP-пиринг с локалхостом (или с любым локальным интерфейсом). От слова совсем. Гугление и чтение mailing-lists не помогло, там утверждают что это by design. Возможно есть какой-то способ, но я его не нашёл.

Можно попробовать другой BGP-демон, но мне нравится BIRD и он используется везде у меня, не хочется плодить сущности.

Поэтому я спрятал dnstap-bgp внутрь network namespace, которое связано с корневым через veth интерфейс: это как труба, концы которой торчат в разных namespace. На каждый из этих концов мы вешаем приватные p2p IP-адреса, которые за пределы хоста не выходят, поэтому могут быть любыми. Это тот же механизм который используется для доступа к процессам внутри любимого всеми Docker и других контейнеров.

Для этого был написан скрипт и в dnstap-bgp был добавлен уже описанный выше функционал перетаскивания себя за волосы в другой namespace. Из-за этого его необходимо запускать под root либо выдать бинарнику CAP_SYS_ADMIN через команду setcap.

Список казино с самыми вкусными бонусами:
  • РОКС Казино
    РОКС Казино

    1 место в рейтинге по отдаче денег, бонусам и Джекпотам!

  • СОЛ Казино
    СОЛ Казино

    Приветственный бонус 30 000 руб + 100 000 руб за каждый деп!

  • Фрэш Казино
    Фрэш Казино

    Свежий весенний дизайн и моментальные выплаты!

  • Пинап Казино
    Пинап Казино

    Горячие девочки и огромные Джекпоты! Ретро-дизайн.

Добавить комментарий