Особенности работы Netblock с DNS блокировкой
Убедитесь что у вас установлены модули Perl :
URI::UTF8::Punycode
SOAP::Lite
Netblock DNS работает с DNS сервером Unbound ( https://nlnetlabs.nl/projects/unbound/ )
Инструкция по настройке самого Unbound - https://nlnetlabs.nl/documentation/unbound/
Netblock в данном случае работает следующим образом :
- скрипт скачивает нужный список бан листа (uablock, rkn aka РосКомНадзор, и т.д.), который заносит в базу биллинга
- генерирует и активирует правила для Unbound DNS
- при внесении в крон, скачивает и перегенерирует правила
- статистика работы отображается в админ-панели > Обслуживание > Netblock
Установка и настройка
устанавливаем модули Perl
URI::UTF8::Punycode SOAP::Lite
скачиваем список блокировки
# UABlock /usr/abills/libexec/billd netblock TYPE=uablock FETCH=1 # Роскомнадзор /usr/abills/libexec/billd netblock TYPE=rkn FETCH=1 # Список ограниченного доступа, BY list (Беларусь) /usr/abills/libexec/billd netblock TYPE=byblock FETCH=1
активируем правила, в данном случае все все ответы пользователям будут возвращаться на 127.0.0.1
/usr/abills/libexec/billd netblock ACTIVE_BLOCK=1 TYPE=uablock UNBOUND=1 DOMAIN_REDIRECT=127.0.0.1
Для других систем блокировки получить список можно следующим образом :
Роскомнадзор - https://rkn.gov.ru/
Беларусь - https://belgie.by/ru/lists_access
Добавляем список хостов для Unbound
Нужно создать hard link на файл domain_list в директории unbound.conf.dln /usr/abills/var/db/netblock/domain_list /etc/unbound/unbound.conf.d/domain_list.conf
Проверяем
unbound-control reload drill @127.0.0.1 calendar.yandex.ru | grep calendar.yandex.ru
;; calendar.yandex.ru. IN A calendar.yandex.ru. 3600 IN A 127.0.0.1
Добавляем в конфиг биллинга дополнительные опции для Netblock
В зависимости от системы, unbound может быть установлен в другой директории.
Смотрим так :
which unbound || whereis unbound
Соответсвенно меняем путь для настроек
nano /usr/abills/libexec/config.pl$conf{UNBOUND_RESTART}='/usr/local/sbin/unbound-control reload'; $conf{NETBLOCK_DNS_TPL} = 'local-data: "%NAME A 127.0.0.1"'; $conf{NETBLOCK_DNS_ADD_CMD} = '/usr/local/sbin/unbound-control local_data %NAME A 127.0.0.1'; $conf{NETBLOCK_DNS_DEL_CMD} = '/usr/local/sbin/unbound-control local_data_remove %NAME';