rkn:blocking_rkn_list_by_domain

План статьи

Введение

В Российской Федерации действует ряд законов и постановлений, согласно которому операторы связи обязаны блокировать доступ к ряду ресурсов, нарушающих законы РФ и размещающие у себя пиратский контент, экстремистскую и сепаратистскую информацию. Для этого создан специальный регуляционный орган - Роскомнадзор. Этот государственный регулятор, помимо прочей своей деятельности, ведет реестр запрещенных сайтов на территории РФ. Каждый оператор связи обязан блокировать доступ к ресурсам из этого списка своими техническими средствами. В случае невыполнения такого предписания, операторам связи грозит немалый штраф или последующее лишении их лицензии. Для выполнения требований Роскомнадзора мы, команда MikBiLL, составили для вас небольшой план действий и программных средств, которые позволят вам автоматизировать процесс выгрузки, обработки и блокировки ресурсов, нарушающих законы РФ.

Настройка выгрузки РКН

У нас уже есть статья по настройке автоматизированной выгрузки данных из реестра запрещенных сайтов. Ознакомиться с ней вы можете здесь. Получение выгрузки РосКомНадзор средствами MikBiLL

Повторюсь, что для работы этой выгрузки вам понадобится электронный ключ - eToken или другой, но с разрешенным его экспортом. Закрытые ключи не подходят, т.к. вам необходимо будет экспортировать ваш ключ с носителя, сконвертировать в другой контейнер и использовать его вместе с openssl на вашем сервере Linux.

Также, согласно инструкции вам необходимо будет собрать openssl с поддержкой алгоритмов GOST. Как это сделать - описано в нашей инструкции здесь. Настройка OpenSSL + GOST

2) Блокировка по доменам.

Так как блокировка должна производиться путем запрещения доступа к определенным доменам, мы рекомендуем использовать для этого собственные ДНС сервера. В качестве производительного резолвера, мы рекомендуем Unbound DNS, который в три раза быстрее стандартного Bind и тратит куда меньше ресурсов на обработку запросов. Однако, вы можете использовать и любой другой ДНС сервер, по аналогии с алгоритмом, описанным далее. Базовая настройка Unbound описана здесь Установка Unbound DNS

Свежую версию программы, а также официальную документацию вы можете посмотреть здесь Официальный сайт Unbound

3) Настроим авторизацию по ключу между серваками с выгрузкой (биллингом) и днсами. Если у вас ДНС и биллинг на разных серверах, то вам понадобиться настроить авторизацию без пароля между сервером биллинга и этим ДНС, потому что файл выгрузки будет скачиваться туда с помощью rsync Если же у вас все на одном сервере, то пропустите этот шаг.

Итак, приступим к настройке.

1) На сервере ДНС создадим ключ.

 $ ssh-keygen -t rsa 

Ключ паролем не защищаем, в этом нет необходимости!

2)Копируем ключ с ДНС сервера на биллинг

 ssh-copy-id -i ~/.ssh/id_rsa ЮЗЕР_ДЛЯ_RSYNC@IP биллинга 

В команде не забудьте верно указать ваши данные!

3) Коннектимся к биллингу с ДНСа с тем именем, что указали в предыдущем шаге. Не забывайте, что пользователи сами не создаются, поэтому вам необходимо создать его самому на обоих серверах перед генерацией ключа.

ssh ЮЗЕР_ДЛЯ_RSYNC@IP_Билинга 

4) Скриптами забираем и преобразовываем выгрузку в формат local-zone для unbound

Заглушка для запрещенных сайтов

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

Итак, приступим.

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

для Centos yum install nginx

для Debian apt-get install nginx

Укажем правильно пользователя, от которого запускается nginx

Centos - apache Debian - www-data

Укажем количество потоков, в которое будет работать nginx

Рекомендуется использовать от 2 потоков но не более, чем ядер CPU*2 Базовая настройка Nginx закончена.

6) Перехватим весь трафик 53 порта и отправим его на свои днсы чтобы абоненты не подменяли его

7) Выдадим абонентам свои днсы, которые будут блокировать список РКН показывая клиенту заглушку.

  • rkn/blocking_rkn_list_by_domain.txt
  • Последнее изменение: 9 лет назад
  • dh