Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:modules:rkn:ru [2017/03/16 12:30]
diger [Примеры использования]
abills:docs:modules:rkn:ru [2017/07/21 12:37] (текущий)
diger
Строка 1: Строка 1:
 =====Rkn===== =====Rkn=====
  
-Данный модуль предназначен для настройки блокировок [[https://​eais.rkn.gov.ru|реестра запрещенных сайтов]]. +Модуль переименован в [[abills:​docs:​modules:​netblock:ru|Netblock]]
- +
-====Возможности==== +
- +
-  * Получение реестра запрещенных сайтов по расписанию (cron) +
-  * Формирование списков блокировки по типам ( ip, domain, domain-mask,​ url ) +
-  * Блокировка в "​реальном времени"​ +
-  * Оповещение,​ при неудачной выгрузке +
-  * Предупреждение о необходимости обновления сертификата с ЭП +
-  * "​Гибкая"​ работа с реестром(возможность определять политики блокировки доступа) +
- +
- +
-====Настройка==== +
- +
-^ $conf{RKN_OSSL_BIN} | **Полный путь к исполняемому файлу openssl** \\ Пример : $conf{RKN_OSSL_BIN} ='/​usr/​local/​bin/​openssl';​ | +
-^ $conf{RKN_DNS_TPL} | **Шаблон для формирования файла с блокировками типа "​domain"​** \\ Пример для unbound: $conf{RKN_DNS_TPL} = '​local-data:​ "%NAME A 10.0.0.7"';​ | +
-^ $conf{RKN_DNS_ADD_CMD} | **Шаблон команды для блокировки типа "​domain"​**\\ Пример для unbound: $conf{RKN_DNS_ADD_CMD} = '/​usr/​local/​sbin/​unbound-control -s 10.0.0.4 local_data %NAME A 10.0.0.7';​ | +
-^$conf{RKN_DNS_DEL_CMD} | **Шаблон команды для разблокировки типа "​domain"​**\\ Пример для unbound: $conf{RKN_DNS_DEL_CMD} = '/​usr/​local/​sbin/​unbound-control -s 10.0.0.4 local_data_remove %NAME';​ | +
-^ $conf{RKN_FW_ADD_CMD} | **Шаблон команды для блокировки типа "​ip"​**\\ Пример для ipfw: $conf{RKN_FW_ADD_CMD} = '/​sbin/​ipfw table 13 add %IP'; | +
-^ $conf{RKN_FW_DEL_CMD} | **Шаблон команды для разблокировки типа "​ip"​**\\ Пример для ipfw: $conf{RKN_FW_DEL_CMD} = '/​sbin/​ipfw table 13 delete %IP'; | +
-^ $conf{RKN_SKIP_NAME} ​ | **Список доменов,​ которым при обработке реестра будет автоматически присваиваться параметр ​[[abills:​docs:​modules:​rkn:ru#​vozmozhnosti|SKIP]]**\\ Пример $conf{RKN_SKIP_NAME} = '​www.youtube.com,​youtube.com,​ru.wikipedia.org';​ | +
-^ $conf{RKN_SKIP_IP} | **Список IP адресов,​ которым при обработке реестра будет автоматически присваиваться параметр [[abills:​docs:​modules:​rkn:​ru#​vozmozhnosti|SKIP]]**\\ Пример $conf{RKN_SKIP_IP} = '​64.233.161.198,​64.233.162.198,​64.233.163.198,​64.233.164.198'​ | +
-^ $conf{RKN_FW_SKIP_CMD} | **Шаблон команды для [[abills:​docs:​modules:​rkn:​ru#​vozmozhnosti|SKIP]] блокировки**\\ Пример $conf{RKN_FW_SKIP_CMD} = '/​sbin/​ipfw table 14 add %IP'; | +
- +
-====Начало работы==== +
-Предполагается,​ что у Вас уже имеется [[https://​commonworkspace.ru/​article.php?​id=35|выгруженный сертификат в формате PCKS#12]]. \\ +
-Сертификат (как правило файл p12.pfx) копируем на сервер,​ где вы планируете осуществлять выгрузку,​ в свою домашнюю папку.\\ +
-Проверяем установленный в системе OpenSSL на наличие поддержки GOST и сам сертификат:​ +
-<​code>​ +
-# cd ~  +
-# /​usr/​local/​bin/​openssl ciphers | tr ":"​ "​\n"​ | grep GOST +
-GOST2001-GOST89-GOST89 +
-GOST94-GOST89-GOST89 +
-# /​usr/​local/​bin/​openssl pkcs12 -in p12.pfx -nodes +
-Enter Import Password: +
-</​code>​ +
-Если все в порядке,​ конвертируем pkcs#12 в PEM формат:​ +
-<​code>​ +
-# /​usr/​local/​bin/​openssl pkcs12 -in p12.pfx -out certificate.pem -nodes -clcerts +
-Enter Import Password: +
-</​code>​ +
-Полученный в результате файл certificate.pem помещаем в папку /​usr/​abills/​var/​db/​rkn/​cfg +
- +
- +
- +
-Рекомендуется первый запуск системы произвести вручную,​ так как список очень большой и наполнении его "​вживую"​ займёт очень много времени. Для этого нужно запустить скрипт в режиме отладки:​ +
-<​code>​ +
-/​usr/​abills/​libexec/​billd rkn DEBUG=4 +
-</​code>​ +
-При этом будут сформированы списки для блокировки,​ а команды выполнятся не будут. После этого перезапускаем используемые службы и в переходим в автоматический режим, добавлем задание в cron:\\ +
-**/​etc/​crontab**\\ +
-<​code>​ +
-* 1,9,17 * * * root /​usr/​abills/​libexec/​billd rkn +
-</​code>​ +
-Если что-то пошло некорректно,​ можно произвести реинициализацию системы,​ выполнив последовательно 2 команды:​ +
-<​code>​ +
-/​usr/​abills/​libexec/​billd rkn INIT=1 +
-/​usr/​abills/​libexec/​billd rkn DEBUG=4 +
-</​code>​ +
- +
- +
- +
-====Примеры использования==== +
-=== Блокировка по имени домена с использованием unbound=== +
-В связке с DNS резолвером [[https://​www.unbound.net|unbound]] возможна как статичное,​ так и динамическое обновление записей в кеше DNS сервера. После [[http://​muff.kiev.ua/​content/​unbound-nastroika-keshiruyushchego-dns-servera|установки и настройки]] остается только добавить в файл //​unbound.conf//​ в секции ''​server:''​ следующую строку:​\\ +
-<​code>​include:​ "/​usr/​abills/​var/​db/​rkn/​domain_list"</​code>​ +
-Блокировки начнут работать после перезапуска сервера. Шаблон для формирования файла domain_list приведен в примерах настройки. +
-Для того чтобы в дальнейшем не перезагружать сервер,​ а только вносить изменения в его кеш, нужно в config.pl указать команды для блокировки и разблокировки в параметрах **$conf{RKN_DNS_ADD_CMD}** и **$conf{RKN_DNS_ADD_CMD}**. +
- +
-=== Блокировка по IP с использованием ipfw=== +
-Для блокировки по IP адресу удобно использовать таблицы в ipfw, например так: +
-<​code>​ +
-fwcmd="/​sbin/​ipfw"​ +
-nat_interface="​igb0"​ +
-... +
-... +
-${fwcmd} add deny all from any to "​table(13)"​ via ${nat_interface} +
-cat /​usr/​abills/​var/​db/​rkn/​ip_list | +
-+
-while read ip +
-do +
-${fwcmd} table 13 add $ip +
-done +
-+
-... +
-... +
-</​code>​ +
-В дальнейшем записи в таблицу будут добавляться и удаляться автоматически,​ без перечитывания правил. +
- +
-===="​Мягкая"​ блокировка====+