Фильтрация записей блэклиста по шаблонам - 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...