-
Notifications
You must be signed in to change notification settings - Fork 2
zztopper/rknget
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Описание (Description) 0. Весь код написан целиком на python3.6 с использованием библиотек из дистрибутивов. Временами возможна совместимость с python3.4. 1. Проект изначально предназначался для одного из московских провайдеров. При обнаружении конфиденциальной информации просьба сообщить автору. 2. Из-за кривых выгрузок РКН правила обработки могут содержать особую, уличную магию. 3. Для корректной выгрузки Вам нужно обладать подписанным request.xml на имя Вашей организации. (Логика РКН в этом плане абсолютно не понятна. Информация общедоступна, а для раздачи файла dump.xml.zip достаточно лишь содержать приличный вебсервер и хороший канал связи.) Требования (Requirements): zeep (rknget) urllib (rknget) xml (rknget) zipfile (rknget) pyYaml (для всех программ) json (для всех программ) psycopg2 (web api) sqlalchemy (web api) Установка серверной части: 0. Prerequisites 0.1. Из-за большой буферизации 3-уровневого приложения и питоньего жора сервер довольно требователен к ресурсам (см. документацию). 0.2. Минимальные требования: 2 vcpu 2.4 GHz, 3 GB RAM, 100 iops storage. 0.3. Желательные требования: 4 vcpu 2.6 GHz, 6 GB RAM, 500 iops storage. 1. DB 1.1. Разверните СУБД (например, postgres). 1 ГБ памяти и 5 ГБ хранилища будет достаточно. 1.2. Создайте БД и пользователя для неё, настройте права на подключение. 1.3. Загрузите дамп в БД (пока только postgres) для создания таблиц, индексов, ключей. 2. Application 2.1. Установите python3.4 или выше и библиотеки через pip. 2.2. Разверните вебсервер с поддержкой CGI. 2.3. Поднимите session timeout хотя бы 300 sec. 2.4. Загрузите из репозитория каталог rkn в каталог CGI. 3. Checkout 3.1. Настройте подключение к БД в файле rkn/dbconn.py 3.2. Можете проверить подключение запросом: http://hostname:port/cgi-bin/rknget/rkn/webapi.py?module=api.monitoring&method=testConn 3.3 Можете настроить SSL, хотя проверка сертификата клиентом принудительно игнорируется. Установка модулей: 1. Загрузите из репозитория каталог с модулем и rkn/webconn.py 2. Не забудьте поставить python и модули к нему. 3. Отредактируйте config.yml 4. Настройте запуск скрипта по cron. 5. Выдайте права пользователю скрипта, если это необходимо. Проблемы: - Скрипты съедают слишком много памяти. - Это возникает из-за тройной буферизации файла дампа: сначала он закачивается через сервис SOAP, затем передаётся на вебсервер, потом передаётся в парсер. - Что делать? На моём сервере нет столько памяти. - После перехода на трёхзвенную архитектуру я написал kngetdirect.py, бэкпортированный специально для работы с базой "локально". - Я дебажил скрипт, и теперь он не запускается. - Программа делает в таблице Log PID-подобную запись. Это сделано для избежания двойного запуска. Поставьте forcerun=True или переименуйте файл программы. - Слишком много ложных срабатываний АС Ревизор. - Вопрос имплементации блокировок сильно зависит от конфигурации ваших сети и сервисов. - В базе некорректные данные. - К сожалению, в дампе тоже много недочётов. Никто не фильтрует контент по ту сторону баррикад. Приходится изворачиваться с URL Encoding. - В базе не хватает данных. - Программа отбрасывает заведомо невалидные ip, ipsubnet, non-http(s) proto urls. - В выгрузке заведомо больше подсетей и доменов, чем в базе. - Методы делают склеивание подсетей и удаляют лишние домены при наличии wildcard уровнем выше. - На этапе парсинга вылазит ошибка. - На момент написания программа парсит всё то, что соответствует текущему формату дампа. - У меня не работает на SomethingDB. - Набор скриптов делался под PostgreSQL, извините. - Скрипт поломал ServiceName, и тот не запускается. - Дважды извините. Тыжпрограммист, сынтегрируй, побольше палок и фекалий. Дисклеймер (Disclaimer) 0. Вы можете использовать код в своих целях "как есть", на свой страх и риск. Автор не несёт ответственности за отстреленные ноги и заявления по собственному, а также не даёт гарантии, что полученные дампы будут благополучно съедены вашими DPI, MITM, проксями, резолверами, поделками на bash/perl/php/python/etc. Ссылки (References) http://vigruzki.rkn.gov.ru/docs/description_for_operators_actual.pdf
About
Выгрузка списка запрещённых сайтов с сайта Роскомнадзора в plain text файлы
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published