Фильтрация записей блэклиста по шаблонам - gSpotx2f/ruantiblock_openwrt GitHub Wiki

Применение описанного здесь метода возможно только для режимов обновления блэклиста использующих полный реестр (т.е. источники zapret-info и rublacklist) и являются функциональностью реализованной в модулях-парсерах. При использовании стандартного источника ruantiblock (без установки модуля-парсера) эти методы не работают.

При обновлении списка блокировок, механизм фильтрации позволяет отбирать в итоговые конфигурационные файлы (nftables и dnsmasq) записи по собственным шаблонам. Таким образом можно существенно сократить список доменов в конфиге dnsmasq (в режиме обновления блэклиста fqdn), исключив ненужные сайты, например: онлайн-казино, наркотики, порно и прочие не интересующие вас темы. Также можно применять шаблоны для фильтрации IP адресов и диапазонов CIDR. Исключение записей происходит на этапе первичного разбора, а поэтому благотворно сказывается на использовании оперативной памяти модулями-парсерами (исключённые записи не хранятся в памяти во время работы модуля). Есть отрицательный момент - процесс обновления выполняется медленнее.

Опции для фильтрации записей

  • uci set ruantiblock.config.bllist_fqdn_filter="1" - включение (1) / отключение (0) фильтрации записей FQDN. По умолчанию выключено.

  • uci set ruantiblock.config.bllist_fqdn_filter_type="0" - тип фильтра FQDN: 0 - все записи, кроме совпадающих с шаблонами; 1 - только записи, совпадающие с шаблонами. По умолчанию 0.

  • uci set ruantiblock.config.bllist_ip_filter="1" - включение (1) / отключение (0) фильтрации записей IP и CIDR. По умолчанию выключено.

  • uci set ruantiblock.config.bllist_ip_filter_type="0" - тип фильтра IP: 0 - все записи, кроме совпадающих с шаблонами; 1 - только записи, совпадающие с шаблонами. По умолчанию 0.

Файлы шаблонов /etc/ruantiblock/fqdn_filter и /etc/ruantiblock/ip_filter

Формат: каждый шаблон в отдельной строке, символ # в первой позиции строки - комментирует строку. Порядок шаблонов не имеет значения, т.е. нет приоритета, поэтому стоит избегать взаимоисключающих или перекрывающих шаблонов. Шаблон м.б. регулярным выражением, однако стоит учитывать, что формат регулярных выражений в Lua и Python различается! Лучше использовать простые выражения и подстановки, либо ориентироваться на конкрентный модуль-парсер...

Пример файла шаблонов FQDN /etc/ruantiblock/fqdn_filter:

poker
[ck]?a[sz]ino?
[vw]ulkan
slots?
# комментарий

Пример файла шаблонов IP /etc/ruantiblock/ip_filter (точка является спецсимволом в рег. выражениях):

128[.]199[.]0[.]0/16
34[.]217[.]90[.]52
162[.]13[.]190[.]
# комментарий

Применение фильтрации

1. Задайте параметры uci:

uci set ruantiblock.config.bllist_fqdn_filter="1"
uci commit ruantiblock

2. Выполните обновление блэклиста:

/usr/bin/ruantiblock update

При установке ruantiblock добавляется пример файла с шаблонами (/etc/ruantiblock/fqdn_filter), который исключает записи связанные с онлайн-казино и некоторые другие виды сайтов. Позволяет заметно сократить количество записей в конфиге dnsmasq...