Git Product home page Git Product logo

rkndownloader's Introduction

RKN Downloader

Приложение для выгрузки реестров РосКомНадзора операторами связи.

Поддерживаются:

  • Единый реестр доменных имён, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено - Приказ Роскомнадзора от 14.12.2017 № 249, Приказ Роскомнадзора от 21.02.2013 № 170
  • Перечень отечественных социально значимых информационных ресурсов в информационно-телекоммуникационной сети «Интернет» — Приказ Минкомсвязи России от 31.03.2020г. № 148

How-to

Потребуется любой Linux (Centos, Ubuntu, etc) с установленным docker или Windows с Docker Desktop. Для Windows путь к каталогу с данными указывается через «\».

  1. Создать каталог для данных, например /opt/rknd/data, куда положить файлы request.xml и request.xml.p7s - запрос на выгрузку и цифровая подпись к нему. Цифровую подпись можно сделать в Крипто-Про или Крипто-АРМ.
  2. Собрать docker-образ (команда ниже)
  3. Запустить docker-контейнер в режиме отладки, проверить что реестры выгружаются, остановить и запустить уже в режиме демона для постоянной работы

Приложение проверяет доступность нового файла реестра раз в 30 минут. Если доступна новая версия реестра - она скачивается и помещается в каталог data.

В результате в каталоге data появятся файлы:

  • latest.zip - Запрещённые сайты
  • latest-soc.zip - Социально значимые сайты
  • social-ips.txt - Текстовый список IP-адресов сетей социально значимых сайтов
  • mikrotik-social.rsc - Скрипт для Mikrotik RouterOS, обновляющий address-list в фаерволе

Возможен запуск нескольких контейнеров, если у вас несколько организаций-операторов, просто запустите несколько экземпляров контейнера, указав разные каталоги data в опции -v

Сборка образа

Скачиваем исходники в виде ZIP-архива или git'ом:

git clone https://github.com/k0ldbl00d/rkndownloader.git

Переходим в каталог rkndownloader и собираем образ:

docker build -t rknloader .

Примеры запуска

Запуск в интерактивном режиме:

docker run -it --rm -v /opt/rknd/data:/app/data rknloader

Запуск в режиме демона:

docker run -d --restart=always -v /opt/rknd/data:/app/data rknloader

Запуск в режиме демона в Windows:

docker run -d --restart=always -v D:\rknd\data:/app/data rknloader

Просмотр журнала событий

Для начала, выясняем container id запущенного контейнера, либо можем обратиться к нему по имени, если задали его при запуске с помощью опции --name

$ docker ps
CONTAINER ID   IMAGE        COMMAND               
b3a85085d43e   rknloader    "sh docker-entrypoin…"

Просмотр журнала:

$ docker logs b3a85085d43e

Обновление

  1. Подтянуть свежую версию (git pull в каталоге с исходниками)
  2. Остановить и удалить старый контейнер
  3. Повторить сборку образа
  4. Запустить

Функции, которые планируется реализовать

  1. Формирование plain-text списка IP-адресов и подсетей для реестра социально значимых ресурсов
  2. Формирование скрипта для Mikrotik RouterOS
  3. Уведомления в Telegram об ошибках обновления
  4. Уведомление об истечении срока действия цифровой подписи

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.