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