Skip to content
This repository has been archived by the owner on Jan 2, 2023. It is now read-only.

Способы оптимизации и сокращения количества записей в списке блокировок

gSpotx2f edited this page Oct 4, 2019 · 4 revisions

Некоторые методы уменьшения количества записей в итоговых конфигах ipset и dnsmasq (переменные конфигурации находятся в /opt/etc/ruantiblock/ruantiblock.conf):

  1. Оптимизация списка доменов в конфиге dnsmasq, путём группировки субдоменов (3 ур-ня и выше) под одной записью 2-го уровня (SLD). Вместо нескольких записей субдоменов в конфиг dnsmasq добавляется всего одна запись второго уровня. Кол-во субдоменов в реестре необходимое для срабатывания этой группировки определяется переменной SD_LIMIT. По умолчанию: 16. Т.е. если в реестре встречается >16 субдоменов *.domain.com, то вместо них добавляется одна запись domain.com и весь трафик ко всем субдоменам domain.com проходит через прокси (включая и те сайты в зоне domain.com, которых нет в реестре). В переменной OPT_EXCLUDE_SLD определяется список SLD, которые никогда не оптимизируются. Например, в livejournal.com у пользователей свои субдомены, в реестре лишь незначительная их часть, а следовательно, нет смысла ходить на весь livejournal.com через прокси. Такая оптимизация довольно эффективна и позволяет сократить конфигурацию dnsmasq, но не заблокированные субдомены также попадают под правила обхода блокировок...

  2. Оптимизация списка ip-адресов для ipset. Принцип такой же, что и в предыдущем пункте, только группировка выполняется по принадлежности ip-адреса к подсети класса C (/24). Необходимое для срабатывания этой группировки кол-во ip-адресов (принадлежащих одной подсети) в реестре определяется переменной IP_LIMIT. Например, если значение 10, то при наличии в реестре >10 адресов одной подсети /24 (к примеру: 192.168.1.1, 192.168.1.2 ... 192.168.1.10) вместо них будет добавлена одна запись для всей подсети: 192.168.1.0/24. Таким образом, сокращается размер списка ipset, но под правила для блокировок попадает некоторое кол-во не заблокированных ip-адресов. Переменная OPT_EXCLUDE_NETS может содержать подсети (в виде: 68.183.221. 149.154.162. и пр.), адреса которых никогда не группируются. Также, довольно эффективный способ оптимизации...

  3. Фильтрация записей. Исключение из итоговых конфигов ipset и dnsmasq записей ненужных Вам хостов по шаблонам. К примеру, если Вы никогда не посещаете онлайн-казино, то можно добавить шаблоны для исключения подобных сайтов, дабы сократить размер конфигов и, как следствие, потребление оперативной памяти. Подробнее об этой функции...

  4. Отключение альтернативных DNS-серверов в конфиге dnsmasq сокращает кол-во строк конфигурации в 2 раза: ALT_NSLOOKUP=0. Вместо провайдерского DNS-сервера можно использовать сторонние (8.8.8.8 от google и пр.) в настройках WAN. Для провайдеров, которые блокируют сторонние DNS-серверы, есть dnscrypt-proxy2, https_dns_proxy и пр.

  5. Если Вы используете VPN сервис с приемлемым качеством коннекта и без ограничений по типу трафика, то можно попробовать вариант с режимом блокировок по ip BLOCK_MODE="ip" в совокупности с методом оптимизации списка ip-адресов (п.2). В этом случае, dnsmasq не участвует в обходе блокировок, а в ipset будет добавляться оптимизированный список всех ip-адресов из реестра. Такая конфигурация приведёт к избыточному использованию VPN-соединения, но позволит иcключить из схемы dnsmasq, т.е. в этой конфигурации нет зависимости от разрешения имён и службы DNS (в контексте именно обхода блокировок).

  6. Готовый конфиг для оптимизации. Источник блэклиста: zapret-info, режим обхода блокировок: hybrid. Включена фильтрация записей блэклиста по шаблонам и группировка ip-адресов (IP_LIMIT=10). Модуль-парсер: ruab_parser.py. Можно установить выполнив следующие шаги:

    Отключить ruantiblock:

     /opt/usr/bin/ruantiblock.sh destroy
    

    Установка python3 из Entware:

     opkg install python3 python3-setuptools python3-openssl
    

    Backup текущего конфигурационного файла:

     cp /opt/etc/ruantiblock/ruantiblock.conf /opt/etc/ruantiblock/ruantiblock.conf.bak
    

    Скачать файл с шаблонами для фильтрации доменов:

     wget --no-check-certificate -O /opt/etc/ruantiblock/ruab_entries_filter https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruab_entries_filter
    

    Далее установить новый конфиг. Для tor конфигурации:

     wget --no-check-certificate -O /opt/etc/ruantiblock/ruantiblock.conf https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruantiblock_tor_opt_optimize.conf
    

    Для VPN конфигурации:

     wget --no-check-certificate -O /opt/etc/ruantiblock/ruantiblock.conf https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruantiblock_vpn_opt_optimize.conf
    

    При использовании VPN конфигурации необходимо добавить ip-адрес подсети VPN-сервера в парметр OPT_EXCLUDE_NETS в конфиге (/opt/etc/ruantiblock/ruantiblock.conf), для исключения этой подсети из оптимизации списка ip-адресов (иначе, в случае присутствия заблокированных адресов в подсети, парсер может сгруппировать эти адреса в запись CIDR и VPN-клиент будет заворачивать своё соединение в себя). Например, если ip-адрес VPN-сервера 217.23.3.91: OPT_EXCLUDE_NETS="217.23.3.". Можно добавлять несколько подсетей через пробел: OPT_EXCLUDE_NETS="217.23.3. 209.58.142.".

    Запуск ruantiblock и обновление данных:

     /opt/usr/bin/ruantiblock.sh start
     /opt/usr/bin/ruantiblock.sh update