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

При обновлении списка блокировок, механизм фильтрации позволяет отбирать в итоговые конфигурационные файлы (ipset и 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...