Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:modules:rkn:ru [2017/03/16 12:07]
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 ) 
-  * Блокировка в "​реальном времени"​ 
- 
-====Как работает==== 
-Работа с реестром возможна,​ как в полностью автоматическом,​ так и в ручном режиме. Для получения выгрузки в автоматическом режиме нужно включить запуск в кроне: \\ \\ 
-**/​etc/​crontab**\\ 
- 
-<​code>​ 
-* 1,9,17 * * * root /​usr/​abills/​libexec/​billd rkn 
-</​code>​ 
- 
-====Настройка==== 
- 
-^ $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} ​ | Пример $conf{RKN_SKIP_NAME} = '​www.youtube.com,​youtube.com,​ru.wikipedia.org';​ | 
-^ $conf{RKN_SKIP_IP} | Пример $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} | Пример $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>​ 
-При этом будут сформированы списки для блокировки,​ а команды выполнятся не будут. После этого перезапускаем используемые службы и в переходим в автоматический режим.\\ 
-Если что-то пошло некорректно,​ можно произвести реинициализацию системы,​ выполнив последовательно 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>​ 
-В дальнейшем записи в таблицу можно добавлять и удалять автоматически,​ без перечитывания правил.