mirror of
https://github.com/gSpotx2f/ruantiblock_openwrt.git
synced 2026-05-14 14:40:58 +00:00
Updated
+51
-31
@@ -1,15 +1,21 @@
|
|||||||
## Описание
|
## Описание
|
||||||
|
|
||||||
Ruantiblock - решение для обхода блокировок (при помощи Tor, VPN-соединения или других решений для проксификации трафика поддерживающих локальные прозрачные прокси (Shadowsocks + ss-redir, Redsocks и пр.)) с выборочной проксификацией трафика к заблокированным ресурсам (при этом доступ к остальным ресурсам осуществляется напрямую). В качестве источника списка блокировок поддерживаются выгрузки с сайтов: [https://rublacklist.net](http://rublacklist.net), [zapret-info](https://github.com/zapret-info/z-i) и [https://antifilter.download](https://antifilter.download), а также список созданный самим пользователем. Включает в себя функции управления правилами iptables, списками ipset и парсер списка блокировок. Доступны конфигурации с использованием доменных имен (dnsmasq) и IP адресов (включая диапазоны CIDR).
|
Ruantiblock - решение для обхода блокировок (при помощи Tor, VPN-соединения или других решений для проксификации трафика поддерживающих локальные прозрачные прокси (Shadowsocks + ss-redir, Redsocks и пр.)) с выборочной проксификацией трафика к заблокированным ресурсам (при этом доступ к остальным ресурсам осуществляется напрямую). В качестве источника списка блокировок поддерживаются выгрузки с сайтов: [https://rublacklist.net](http://rublacklist.net), [zapret-info](https://github.com/zapret-info/z-i) и [https://antifilter.download](https://antifilter.download), а также список созданный самим пользователем. Включает в себя функции управления правилами nftables и парсер списка блокировок. Доступны конфигурации с использованием доменных имен (dnsmasq) и IP адресов (включая диапазоны CIDR).
|
||||||
|
|
||||||
Данная версия решения предназначена для OpenWrt. В отличии от других решений подобного типа не имеет жёсткой интеграции и привязки исключительно к OpenWrt (при этом поддерживает конфигурацию через UCI, а также имеется функциональное LuCI-приложение) и может быть перенесено на другие Linux. Вся конфигурация находится в одном месте, все операции выполняются с помощью одного скрипта (`/usr/bin/ruantiblock`), широкие возможности конфигурации. Помимо прочего, данное решение предлагает опции для собственной тонкой настройки оптимизации списка блокировок: группировка и суммаризация IP, объединение поддоменов, фильтрация записей по шаблонам...
|
Данная версия решения предназначена для OpenWrt. В отличии от других решений подобного типа не имеет жёсткой интеграции и привязки исключительно к OpenWrt (при этом поддерживает конфигурацию через UCI, а также имеется функциональное LuCI-приложение) и может быть перенесено на другие Linux. Вся конфигурация находится в одном месте, все операции выполняются с помощью одного скрипта (`/usr/bin/ruantiblock`), широкие возможности конфигурации. Помимо прочего, данное решение предлагает опции для собственной тонкой настройки оптимизации списка блокировок: группировка и суммаризация IP, объединение поддоменов, фильтрация записей по шаблонам...
|
||||||
|
|
||||||
|
Текущая актуальная ветка ruantiblock (для OpenWrt >= 23.05) [v1.x](https://github.com/gSpotx2f/ruantiblock_openwrt). Старая ветка (для OpenWrt <= 22.03, более не развивается) [v0.9](https://github.com/gSpotx2f/ruantiblock_openwrt/tree/0.9).
|
||||||
|
|
||||||
## [Автоматическая установка с помощью скрипта](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0)
|
|
||||||
|
|
||||||
## [Самостоятельная установка и настройка](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0)
|
## [Автоматическая установка с помощью скрипта - ruantiblock v1.x (OpenWrt >= 23.05)](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0)
|
||||||
|
|
||||||
## [Самостоятельная установка и настройка v1.1 (OpenWrt 23.05 и snapshot)](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-v1.1)
|
## [Самостоятельная установка и настройка ruantiblock v1.x (OpenWrt >= 23.05)](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0)
|
||||||
|
|
||||||
|
## [Автоматическая установка с помощью скрипта - ruantiblock v0.9 (OpenWrt 21.02, 22.03)](https://github.com/gSpotx2f/ruantiblock_wiki_v0.9/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0)
|
||||||
|
|
||||||
|
## [Самостоятельная установка и настройка ruantiblock v0.9 (OpenWrt 21.02, 22.03)](https://github.com/gSpotx2f/ruantiblock_wiki_v0.9/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0)
|
||||||
|
|
||||||
|
## [Старая вики для ruantiblock v0.9 (OpenWrt 21.02, 22.03)](https://github.com/gSpotx2f/ruantiblock_wiki_v0.9/wiki)
|
||||||
|
|
||||||
## [Использование бесплатных Shadowsocks прокси проекта Outline](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D1%85-Shadowsocks-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0-Outline)
|
## [Использование бесплатных Shadowsocks прокси проекта Outline](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D1%85-Shadowsocks-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0-Outline)
|
||||||
|
|
||||||
@@ -21,7 +27,7 @@ Ruantiblock - решение для обхода блокировок (при п
|
|||||||
uci set ruantiblock.config.proxy_mode="2"
|
uci set ruantiblock.config.proxy_mode="2"
|
||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
|
|
||||||
Данный параметр влияет, в первую очередь, на процесс создания правил iptables. В конфигурациях Tor и прозрачного прокси правила создаются в цепочке `nat`, при VPN конфигурации - в `mangle`. Соответственно, и удаление правил при выключении ruantiblock зависит от выбранного типа прокси. Поэтому, перед изменением данного параметра следует отключить ruantiblock (`/usr/bin/ruantiblock stop`), для корректного удаления правил предыдущей конфигурации!
|
Данный параметр влияет, в первую очередь, на процесс создания правил nftables.
|
||||||
|
|
||||||
|
|
||||||
## Режимы обновления блэклиста и модули-парсеры
|
## Режимы обновления блэклиста и модули-парсеры
|
||||||
@@ -47,14 +53,14 @@ Ruantiblock - решение для обхода блокировок (при п
|
|||||||
|
|
||||||
Обход блокировок может выполняться в одном из двух вариантов:
|
Обход блокировок может выполняться в одном из двух вариантов:
|
||||||
|
|
||||||
1. `ip` - модули загружают из блэклиста все IP адреса и диапазоны CIDR, которые содержатся в записях, и они сразу помещаются в соответствующие ipset'ы. Данный вариант не задействует в своей работе dnsmasq, т.е список блокировок статичен и формируется только при обновлении.
|
1. `ip` - модули загружают из блэклиста все IP адреса и диапазоны CIDR, которые содержатся в записях, и они сразу помещаются в соответствующие nftset'ы. Данный вариант не задействует в своей работе dnsmasq, т.е список блокировок статичен и формируется только при обновлении.
|
||||||
|
|
||||||
2. `fqdn` - из блэклиста извлекаются доменные имена (FQDN). Из записей, в которых отсутствует доменное имя, извлекаются IP адреса и CIDR диапазоны. Домены заносятся в конфиг dnsmasq и, далее, dnsmasq формирует временный список ipset по мере обращения к этим доменам, записи добавляются и удаляются динамически на основе DNS-запросов и таймаута. Т.е. домены обрабатывает dnsmasq, а CIDR диапазоны и IP адреса помещаются сразу в ipset. В этом варианте разрешение доменного имени в IP адрес происходит при обращении к заблокированному сайту, следовательно IP адрес сайта всегда будет актуальным (даже если устарел в самом списке блокировок).
|
2. `fqdn` - из блэклиста извлекаются доменные имена (FQDN). Из записей, в которых отсутствует доменное имя, извлекаются IP адреса и CIDR диапазоны. Домены заносятся в конфиг dnsmasq и, далее, dnsmasq формирует временный список nftset по мере обращения к этим доменам, записи добавляются и удаляются динамически на основе DNS-запросов и таймаута. Т.е. домены обрабатывает dnsmasq, а CIDR диапазоны и IP адреса помещаются сразу в nftset. В этом варианте разрешение доменного имени в IP адрес происходит при обращении к заблокированному сайту, следовательно IP адрес сайта всегда будет актуальным (даже если устарел в самом списке блокировок).
|
||||||
|
|
||||||
**Источники блэклиста:**
|
**Источники блэклиста:**
|
||||||
|
|
||||||
`ruantiblock` - [https://github.com/gSpotx2f/ruantiblock_blacklist](https://github.com/gSpotx2f/ruantiblock_blacklist). Заранее созданные конфиги для ipset и dnsmasq. Загружаются уже готовые файлы, без выполнения каких-либо оптимизаций и обработок. Обновляется раз в сутки. Этот источник даёт блэклист для стандартной конфигурации ruantiblock и ваш роутер не выполняет никакой тяжёлой работы по обработке данных. Включен по умолчанию и не требует установки модуля-парсера.
|
`ruantiblock` - [https://github.com/gSpotx2f/ruantiblock_blacklist](https://github.com/gSpotx2f/ruantiblock_blacklist). Заранее созданные конфиги для nftables и dnsmasq. Загружаются уже готовые файлы, без выполнения каких-либо оптимизаций и обработок. Обновляется раз в сутки. Этот источник даёт блэклист для стандартной конфигурации ruantiblock и ваш роутер не выполняет никакой тяжёлой работы по обработке данных. Включен по умолчанию и не требует установки модуля-парсера.
|
||||||
Можно [организовать собственный источник](https://github.com/gSpotx2f/ruantiblock_blacklist) заранее подготовленных конфигов со своими настройками, которые формируются вне роутера (например, на выделенном сервере или ПК и загружаются на GitHub). Это может быть полезно при наличии нескольких роутеров (использующих данное решение для обхода блокировок), где формирование конфигов ipset и dnsmasq происходит один раз на одной машине, а другие получают уже готовые сформированные конфиги (не выполняя повторно одну и ту же работу).
|
Можно [организовать собственный источник](https://github.com/gSpotx2f/ruantiblock_blacklist) заранее подготовленных конфигов со своими настройками, которые формируются вне роутера (например, на выделенном сервере или ПК и загружаются на GitHub). Это может быть полезно при наличии нескольких роутеров (использующих данное решение для обхода блокировок), где формирование конфигов nftables и dnsmasq происходит один раз на одной машине, а другие получают уже готовые сформированные конфиги (не выполняя повторно одну и ту же работу).
|
||||||
|
|
||||||
`zapret-info` - [https://github.com/zapret-info/z-i](https://github.com/zapret-info/z-i). Содержит много лишних данных для каждой записи, что увеличивает размер файла (к тому же в кодировке CP1251). Очень надёжный источник, сбоев практически не бывает, расположен на GitHub (есть зеркала).
|
`zapret-info` - [https://github.com/zapret-info/z-i](https://github.com/zapret-info/z-i). Содержит много лишних данных для каждой записи, что увеличивает размер файла (к тому же в кодировке CP1251). Очень надёжный источник, сбоев практически не бывает, расположен на GitHub (есть зеркала).
|
||||||
|
|
||||||
@@ -86,11 +92,11 @@ Ruantiblock - решение для обхода блокировок (при п
|
|||||||
|
|
||||||
uci set ruantiblock.config.proxy_local_clients="0"
|
uci set ruantiblock.config.proxy_local_clients="0"
|
||||||
|
|
||||||
+ **Очистка ipset перед обновлением блэклиста (`IPSET_CLEAR_SETS=1`):**
|
+ **Очистка сетов nftables перед обновлением блэклиста (`NFTSET_CLEAR_SETS=1`):**
|
||||||
|
|
||||||
Включение этой опции позволяет освободить некоторое количество оперативной памяти (зависит от текущего размера списка блокировок) перед обновлением блэклиста. Недостаток в том, что во время обновления не применяются правила отбора трафика в Tor или VPN, т.е. обход блокировок не работает до завершения обновления блэклиста. Следует применять лишь в случае проблем со свободной оперативной памятью. Включить:
|
Включение этой опции позволяет освободить некоторое количество оперативной памяти (зависит от текущего размера списка блокировок) перед обновлением блэклиста. Недостаток в том, что во время обновления не применяются правила отбора трафика в Tor или VPN, т.е. обход блокировок не работает до завершения обновления блэклиста. Следует применять лишь в случае проблем со свободной оперативной памятью. Включить:
|
||||||
|
|
||||||
uci set ruantiblock.config.ipset_clear_sets="1"
|
uci set ruantiblock.config.nftset_clear_sets="1"
|
||||||
|
|
||||||
+ **Режим фильтра хостов (ALLOWED_HOSTS_MODE=0):**
|
+ **Режим фильтра хостов (ALLOWED_HOSTS_MODE=0):**
|
||||||
|
|
||||||
@@ -112,18 +118,6 @@ Ruantiblock - решение для обхода блокировок (при п
|
|||||||
|
|
||||||
ruantiblock.config.if_vpn="tun0"
|
ruantiblock.config.if_vpn="tun0"
|
||||||
|
|
||||||
+ **Запись событий в syslog (`ENABLE_LOGGING=1`):**
|
|
||||||
|
|
||||||
Опция включает запись событий в системный лог. Отключить:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.enable_logging="0"
|
|
||||||
|
|
||||||
+ **Отправлять в Tor UDP-трафик (`TOR_ALLOW_UDP=0`):**
|
|
||||||
|
|
||||||
В режиме проксификации трафика с использованием Tor, UDP-трафик также отправляется в Tor. При отключении этой опции в Tor попадает только TCP, а UDP идёт напрямую, без обхода блокировок. Включить:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.tor_allow_udp="1"
|
|
||||||
|
|
||||||
+ **UDP-порт прозрачного прокси (`T_PROXY_PORT_UDP=10053`):**
|
+ **UDP-порт прозрачного прокси (`T_PROXY_PORT_UDP=10053`):**
|
||||||
|
|
||||||
В режиме проксификации трафика с использованием прозрачного прокси, определяет порт на который может перенаправляться UDP-трафик. Прозрачный прокси должен поддерживать UDP! Изменить порт:
|
В режиме проксификации трафика с использованием прозрачного прокси, определяет порт на который может перенаправляться UDP-трафик. Прозрачный прокси должен поддерживать UDP! Изменить порт:
|
||||||
@@ -136,7 +130,33 @@ Ruantiblock - решение для обхода блокировок (при п
|
|||||||
|
|
||||||
uci set ruantiblock.config.t_proxy_allow_udp="1"
|
uci set ruantiblock.config.t_proxy_allow_udp="1"
|
||||||
|
|
||||||
+ **Оптимизации записей в итоговых конфигах ipset и masq: группировка субдоменов и IP адресов, суммаризация IP адресов (`BLLIST_SD_LIMIT`, `BLLIST_IP_LIMIT`, `BLLIST_GR_EXCLUDED_SLD`, `BLLIST_GR_EXCLUDED_NETS`, `BLLIST_SUMMARIZE_IP`, `BLLIST_SUMMARIZE_CIDR`):**
|
+ **Запись событий в syslog (`ENABLE_LOGGING=1`):**
|
||||||
|
|
||||||
|
Опция включает запись событий в системный лог. Отключить:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.enable_logging="0"
|
||||||
|
|
||||||
|
+ **Включение режима полного прокси (ENABLE_FPROXY=0):**
|
||||||
|
|
||||||
|
При включении этой опции, весь трафик хостов заданных в переменной `FPROXY_LIST` будет отправляться в прокси, без применения правил блэклиста. Включить:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.enable_fproxy="1"
|
||||||
|
|
||||||
|
+ **Список IP адресов для режима полного прокси (FPROXY_LIST=""):**
|
||||||
|
|
||||||
|
Добавление хостов в список:
|
||||||
|
|
||||||
|
uci add_list ruantiblock.config.fproxy_list="192.168.0.10"
|
||||||
|
uci add_list ruantiblock.config.fproxy_list="192.168.0.15"
|
||||||
|
и т.д.
|
||||||
|
|
||||||
|
+ **Скачивание блэклиста через прокси при обновлении (ENABLE_BLLIST_PROXY=0):**
|
||||||
|
|
||||||
|
Во время обновления блэклист скачивается через прокси. Необходимо, если источник блэклиста заблокирован. Включить:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.enable_bllist_proxy="1"
|
||||||
|
|
||||||
|
+ **Оптимизации записей в итоговых конфигах nftables и dnsmasq: группировка субдоменов и IP адресов, суммаризация IP адресов (`BLLIST_SD_LIMIT`, `BLLIST_IP_LIMIT`, `BLLIST_GR_EXCLUDED_SLD`, `BLLIST_GR_EXCLUDED_NETS`, `BLLIST_SUMMARIZE_IP`, `BLLIST_SUMMARIZE_CIDR`):**
|
||||||
|
|
||||||
[Подробнее здесь](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B-%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%81%D0%BE%D0%BA%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B2-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5-%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA)...
|
[Подробнее здесь](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B-%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%81%D0%BE%D0%BA%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B2-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5-%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA)...
|
||||||
|
|
||||||
@@ -180,18 +200,18 @@ Tor также имеет свой собственный резолвер, ко
|
|||||||
|
|
||||||
## Параметры запуска:
|
## Параметры запуска:
|
||||||
|
|
||||||
ruantiblock start # Включение ruantiblock. Создаются списки ipset, правила iptables и пр.
|
ruantiblock start # Включение ruantiblock. Создаются правила nftables и пр.
|
||||||
ruantiblock stop # Выключение ruantiblock. Очищаются все списки ipset, удаляются правила iptables. Трафик идет стандартным способом, Tor или VPN не используется
|
ruantiblock stop # Выключение ruantiblock. Очищаются все списки nftset, удаляются правила nftables. Трафик идет стандартным способом, Tor или VPN не используется
|
||||||
ruantiblock destroy # То же, что и stop + удаление всех списков ipset и очистка файлов ruantiblock.dnsmasq и ruantiblock.ip
|
ruantiblock destroy # То же, что и stop + удаление всех списков nftset, удаление таблицы nftables и очистка файлов ruantiblock.dnsmasq и ruantiblock.ip
|
||||||
ruantiblock restart # Рестарт
|
ruantiblock restart # Рестарт
|
||||||
ruantiblock reload # Пересоздание цепочки и правил iptables (а также таблицы маршутизации при VPN-конфигурации)
|
ruantiblock reload # Пересоздание цепочки и правил nftables (а также таблицы маршутизации при VPN-конфигурации)
|
||||||
ruantiblock update # Обновление блэклиста и списков ipset
|
ruantiblock update # Обновление блэклиста и списков nftset
|
||||||
ruantiblock force-update # Принудительное обновление блэклиста (может потребоваться если предыдущее обновление выполнено некорректно или было прервано в процессе выполнения)
|
ruantiblock force-update # Принудительное обновление блэклиста (может потребоваться если предыдущее обновление выполнено некорректно или было прервано в процессе выполнения)
|
||||||
ruantiblock data-files # Создание файлов ruantiblock.dnsmasq и ruantiblock.ip, без обновления сетевой конфигурации
|
ruantiblock data-files # Создание файлов ruantiblock.dnsmasq и ruantiblock.ip, без обновления сетевой конфигурации
|
||||||
ruantiblock status # Вывод текущего статуса, а также общей инфо (кол-во записей в списках ipset, дата последнего обновления блэклиста и пр.)
|
ruantiblock status # Вывод текущего статуса, а также общей инфо (кол-во записей в списках nftset, дата последнего обновления блэклиста и пр.)
|
||||||
|
|
||||||
|
|
||||||
Перед изменением конфигурации ruantiblock необходимо обязательно выполнить удаление всех сетов и правил iptables:
|
Перед изменением конфигурации ruantiblock необходимо обязательно выполнить удаление всех сетов и правил nftables:
|
||||||
|
|
||||||
/usr/bin/ruantiblock destroy
|
/usr/bin/ruantiblock destroy
|
||||||
|
|
||||||
|
|||||||
+4
-8
@@ -10,18 +10,14 @@
|
|||||||
|
|
||||||
**3. Скачивание файлов и установка:**
|
**3. Скачивание файлов и установка:**
|
||||||
|
|
||||||
OpenWrt <= 22.03:
|
OpenWrt >= 23.05:
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_0.9.7-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/22.03/ruantiblock-mod-lua_0.9.7-1_all.ipk
|
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_1.3-2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-lua_1.3-2_all.ipk
|
||||||
opkg install /tmp/ruantiblock-mod-lua_0.9.7-1_all.ipk
|
|
||||||
rm /tmp/ruantiblock-mod-lua_0.9.7-1_all.ipk
|
|
||||||
|
|
||||||
OpenWrt 23.05 и snapshot:
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_1.3-2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/23.05/ruantiblock-mod-lua_1.3-2_all.ipk
|
|
||||||
opkg install /tmp/ruantiblock-mod-lua_1.3-2_all.ipk
|
opkg install /tmp/ruantiblock-mod-lua_1.3-2_all.ipk
|
||||||
rm /tmp/ruantiblock-mod-lua_1.3-2_all.ipk
|
rm /tmp/ruantiblock-mod-lua_1.3-2_all.ipk
|
||||||
|
|
||||||
|
[OpenWrt < 23.05](https://github.com/gSpotx2f/ruantiblock_wiki_v0.9/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)
|
||||||
|
|
||||||
**4. Включение модуля:**
|
**4. Включение модуля:**
|
||||||
|
|
||||||
uci set ruantiblock.config.bllist_module="/usr/libexec/ruantiblock/ruab_parser.lua"
|
uci set ruantiblock.config.bllist_module="/usr/libexec/ruantiblock/ruab_parser.lua"
|
||||||
|
|||||||
+4
-20
@@ -7,30 +7,14 @@
|
|||||||
|
|
||||||
**2. Скачивание файлов и установка:**
|
**2. Скачивание файлов и установка:**
|
||||||
|
|
||||||
OpenWrt 19.07:
|
OpenWrt >= 23.05:
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_0.9.0-2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/19.07/ruantiblock-mod-py_0.9.0-2_all.ipk
|
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_1.3-2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-py_1.3-2_all.ipk
|
||||||
opkg install /tmp/ruantiblock-mod-py_0.9.0-2_all.ipk
|
|
||||||
rm /tmp/ruantiblock-mod-py_0.9.0-2_all.ipk
|
|
||||||
|
|
||||||
OpenWrt 21.02:
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_0.9.4-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/21.02/ruantiblock-mod-py_0.9.4-1_all.ipk
|
|
||||||
opkg install /tmp/ruantiblock-mod-py_0.9.4-1_all.ipk
|
|
||||||
rm /tmp/ruantiblock-mod-py_0.9.4-1_all.ipk
|
|
||||||
|
|
||||||
OpenWrt 22.03:
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_0.9.7-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/22.03/ruantiblock-mod-py_0.9.7-1_all.ipk
|
|
||||||
opkg install /tmp/ruantiblock-mod-py_0.9.7-1_all.ipk
|
|
||||||
rm /tmp/ruantiblock-mod-py_0.9.7-1_all.ipk
|
|
||||||
|
|
||||||
OpenWrt 23.05 и snapshot:
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_1.3-2_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/23.05/ruantiblock-mod-py_1.3-2_all.ipk
|
|
||||||
opkg install /tmp/ruantiblock-mod-py_1.3-2_all.ipk
|
opkg install /tmp/ruantiblock-mod-py_1.3-2_all.ipk
|
||||||
rm /tmp/ruantiblock-mod-py_1.3-2_all.ipk
|
rm /tmp/ruantiblock-mod-py_1.3-2_all.ipk
|
||||||
|
|
||||||
|
[OpenWrt < 23.05](https://github.com/gSpotx2f/ruantiblock_wiki_v0.9/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)
|
||||||
|
|
||||||
**3. Включение модуля:**
|
**3. Включение модуля:**
|
||||||
|
|
||||||
uci set ruantiblock.config.bllist_module="/usr/libexec/ruantiblock/ruab_parser.py"
|
uci set ruantiblock.config.bllist_module="/usr/libexec/ruantiblock/ruab_parser.py"
|
||||||
|
|||||||
@@ -8,14 +8,6 @@ luci-app-ruantiblock - web-приложение (служба в термино
|
|||||||
+ OpenWrt >= 19.07. LuCI, начиная с версии OpenWrt 19.07, перходит на новый формат приложений. Старый формат с Lua-бэкэндом ещё поддерживается, но новые приложения необходимо писать с использованием другой библиотеки (на клиентской стороне, JS + JSON-RPC). Данное приложение написано в новом формате, а поэтому работа на более старых версиях не гарантируется.
|
+ OpenWrt >= 19.07. LuCI, начиная с версии OpenWrt 19.07, перходит на новый формат приложений. Старый формат с Lua-бэкэндом ещё поддерживается, но новые приложения необходимо писать с использованием другой библиотеки (на клиентской стороне, JS + JSON-RPC). Данное приложение написано в новом формате, а поэтому работа на более старых версиях не гарантируется.
|
||||||
|
|
||||||
|
|
||||||
## Использование
|
|
||||||
|
|
||||||
Есть одно замечание по настройкам: опции режимов прокси (Tor, VPN и прозрачный прокси), на вкладке "Настройки", доступны только в выключенном состоянии ruantiblock.
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## Сообщение "Ошибка маршрутизации VPN"
|
## Сообщение "Ошибка маршрутизации VPN"
|
||||||
|
|
||||||
См. [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
См. [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
||||||
|
|||||||
@@ -3,21 +3,13 @@
|
|||||||
|
|
||||||
## Начальные требования
|
## Начальные требования
|
||||||
|
|
||||||
+ Для скрипта-инсталлятора необходим полноценный wget, умеющий работать с https:
|
|
||||||
|
|
||||||
opkg install wget
|
|
||||||
|
|
||||||
+ Для версий OpenWrt >= 22.03 необходимо установить пакет iptables-legacy:
|
|
||||||
|
|
||||||
opkg install iptables-legacy kmod-ipt-nat kmod-ipt-nat-extra
|
|
||||||
|
|
||||||
+ Для VPN конфигурации необходимо настроенное и работающее VPN-соединение. В случае OpenVPN, помимо конфигурирования самого клиента, в настройках сети нужно создать интерфейс (например, с названием `VPN`) для устройства `tun0` и добавить его в зону `wan` межсетевого экрана. При использовании Wireguard или PPtP необходимо, чтобы VPN-интерфейс был добавлен в зону `wan` межсетевого экрана.
|
+ Для VPN конфигурации необходимо настроенное и работающее VPN-соединение. В случае OpenVPN, помимо конфигурирования самого клиента, в настройках сети нужно создать интерфейс (например, с названием `VPN`) для устройства `tun0` и добавить его в зону `wan` межсетевого экрана. При использовании Wireguard или PPtP необходимо, чтобы VPN-интерфейс был добавлен в зону `wan` межсетевого экрана.
|
||||||
+ В стандартной конфигурации конфиги ipset и dnsmasq со списками блокировок пишутся при обновлении в tmpfs, т.е. в оперативную память (`/tmp/ruantiblock` и `/tmp/dnsmasq.d` соответственно). При старте системы после перезагрузки происходит автоматическое обновление блэклиста. При недостаточном количестве памяти (128Мб и менее) или просто для удобства, можно [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C) после установки.
|
+ В стандартной конфигурации конфиги nftset и dnsmasq со списками блокировок пишутся при обновлении в tmpfs, т.е. в оперативную память (`/tmp/ruantiblock` и `/tmp/dnsmasq.d` соответственно). При старте системы после перезагрузки происходит автоматическое обновление блэклиста. При недостаточном количестве памяти (128Мб и менее) или просто для удобства, можно [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C) после установки.
|
||||||
|
|
||||||
|
|
||||||
## Зависимости
|
## Зависимости
|
||||||
|
|
||||||
+ wget, ipset, kmod-ipt-ipset, dnsmasq-full
|
+ dnsmasq-full
|
||||||
+ Tor конфигурация: tor, tor-geoip
|
+ Tor конфигурация: tor, tor-geoip
|
||||||
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
||||||
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, Shadowsocks + ss-redir и пр.)
|
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, Shadowsocks + ss-redir и пр.)
|
||||||
@@ -27,7 +19,7 @@
|
|||||||
|
|
||||||
**1. Необходимо скачать скрипт `autoinstall.sh` в `/tmp`, разрешить выполнение и запустить:**
|
**1. Необходимо скачать скрипт `autoinstall.sh` в `/tmp`, разрешить выполнение и запустить:**
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/autoinstall.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock_openwrt/0.9/autoinstall/autoinstall.sh && chmod +x /tmp/autoinstall.sh && /tmp/autoinstall.sh
|
wget --no-check-certificate -O /tmp/autoinstall.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock_openwrt/master/autoinstall/current/autoinstall.sh && chmod +x /tmp/autoinstall.sh && /tmp/autoinstall.sh
|
||||||
|
|
||||||
**2. После запуска скрипт задаст несколько вопросов по конфигурации:**
|
**2. После запуска скрипт задаст несколько вопросов по конфигурации:**
|
||||||
|
|
||||||
@@ -88,7 +80,13 @@
|
|||||||
|
|
||||||
иначе Redsocks не сможет подключиться к локальному сервису!
|
иначе Redsocks не сможет подключиться к локальному сервису!
|
||||||
|
|
||||||
Создаваемые при обновлениях конфиги со списком блокировок ipset и dnsmasq будут располагаться в `/tmp/ruantiblock` и `/tmp/dnsmasq.d`. При наличии у роутера USB (или eSATA и пр.) настоятельно рекомендуется [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C).
|
В конфигурациях VPN и прозрачного прокси имеет смысл добавить IP адрес вашего VPN-сервера (или прокси-сервера) в список IP адресов исключаемых из обхода блокировок. Это гарантирует что служебный трафик самого VPN-тунеля (или соединения с прокси) всегда будет проходить напрямую, не попадая в правила ruantiblock. Например, если IP адрес VPN-сервера 217.23.3.91:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.bypass_ip_mode="1"
|
||||||
|
uci add_list ruantiblock.config.bypass_ip_list="217.23.3.91"
|
||||||
|
uci commit ruantiblock
|
||||||
|
|
||||||
|
Создаваемые при обновлениях конфиги со списком блокировок nftables и dnsmasq будут располагаться в `/tmp/ruantiblock` и `/tmp/dnsmasq.d`. При наличии у роутера USB (или eSATA и пр.) настоятельно рекомендуется [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C).
|
||||||
|
|
||||||
Стоит упомянуть, что при вызове скрипта `/usr/bin/ruantiblock` с параметрами: `start`, `update` или `destroy` - всегда выполняется перезапуск dnsmasq.
|
Стоит упомянуть, что при вызове скрипта `/usr/bin/ruantiblock` с параметрами: `start`, `update` или `destroy` - всегда выполняется перезапуск dnsmasq.
|
||||||
|
|
||||||
@@ -108,10 +106,10 @@
|
|||||||
|
|
||||||
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с вашего ПК или др. устройства в локальной сети. Обратите внимание, что после запуска Tor может инициализироваться на протяжении нескольких минут...
|
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с вашего ПК или др. устройства в локальной сети. Обратите внимание, что после запуска Tor может инициализироваться на протяжении нескольких минут...
|
||||||
|
|
||||||
Можно проверить идут ли пакеты через правила iptables в выводе статуса ruantiblock в консоли:
|
Можно проверить идут ли пакеты через правила nftables в выводе статуса ruantiblock в консоли:
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
/usr/bin/ruantiblock status
|
||||||
|
|
||||||
Блок `Iptables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
Блок `Nftables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
||||||
|
|
||||||
Если возникли проблемы, смотрите [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
Если возникли проблемы, смотрите [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
**1. Убедитесь, что ruantiblock включен**
|
**1. Убедитесь, что ruantiblock включен**
|
||||||
|
|
||||||
Выполните в консоли :
|
Выполните в консоли:
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
/usr/bin/ruantiblock status
|
||||||
|
|
||||||
Вывод статуса не должен содержать ошибок. Если есть ошибки связанные с iptables или ipset - выполните:
|
Вывод статуса не должен содержать ошибок. Если есть ошибки связанные с nftables - выполните:
|
||||||
|
|
||||||
/usr/bin/ruantiblock destroy
|
/usr/bin/ruantiblock destroy
|
||||||
rm /var/run/ruantiblock*
|
rm /var/run/ruantiblock*
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
/usr/bin/ruantiblock start
|
/usr/bin/ruantiblock start
|
||||||
/usr/bin/ruantiblock update
|
/usr/bin/ruantiblock update
|
||||||
|
|
||||||
При перезапуске службы "firewall" в OpenWrt удаляется вся конфигурация iptables и, соответственно, ruantiblock приходит в выключенное состояние. Поэтому, если в системе используются какие-либо скрипты с перезапуском "firewall", в них следует прописать и перезапуск ruantiblock: `/usr/bin/ruantiblock restart`.
|
При перезапуске службы "firewall" в OpenWrt удаляется вся конфигурация nftables и, соответственно, ruantiblock приходит в выключенное состояние. Поэтому, если в системе используются какие-либо скрипты с перезапуском "firewall", в них следует прописать и перезапуск ruantiblock: `/usr/bin/ruantiblock restart`.
|
||||||
|
|
||||||
|
|
||||||
**2. Проверьте запущен ли Tor или VPN клиент**
|
**2. Проверьте запущен ли Tor или VPN клиент**
|
||||||
@@ -66,28 +66,26 @@
|
|||||||
Провайдеры на своих DNS-серверах часто ограничивают или изменяют сторонний DNS-трафик (DNS-спуфинг). Поэтому необходима замена провайдерского DNS-сервера на сторонний и обязательное применение DNS-шифрования (dnscrypt-proxy, [https-dns-proxy](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-https%E2%80%91dns%E2%80%91proxy) и пр.). Очень желательно настроить [перехват стороннего DNS-трафика](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%D0%B3%D0%BE-DNS-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0) хостов локальной сети (в последних версиях https-dns-proxy такая опция уже встроена).
|
Провайдеры на своих DNS-серверах часто ограничивают или изменяют сторонний DNS-трафик (DNS-спуфинг). Поэтому необходима замена провайдерского DNS-сервера на сторонний и обязательное применение DNS-шифрования (dnscrypt-proxy, [https-dns-proxy](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-https%E2%80%91dns%E2%80%91proxy) и пр.). Очень желательно настроить [перехват стороннего DNS-трафика](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%D0%B3%D0%BE-DNS-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0) хостов локальной сети (в последних версиях https-dns-proxy такая опция уже встроена).
|
||||||
|
|
||||||
|
|
||||||
**6. Проверьте попадает ли трафик к заблокированным сайтам в цепочку ruantiblock в iptables**
|
**6. Проверьте попадает ли трафик к заблокированным сайтам в цепочку blacklist в таблице r nftables**
|
||||||
|
|
||||||
Выполните в консоли :
|
Выполните в консоли:
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
/usr/bin/ruantiblock status
|
||||||
|
|
||||||
Блок `Iptables rules:` содержит счётчики правил для CIDR-диапазонов (`rc`), IP адресов (`ri`) и IP адресов, которые добавляет dnsmasq (`rd`). При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
Блок `Nftables rules` содержит счётчики правил для CIDR-диапазонов (`c`), IP адресов (`i`) и IP адресов, которые добавляет dnsmasq (`d`). При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
||||||
|
|
||||||
|
|
||||||
**7. Проверьте добавляет ли dnsmasq IP адреса заблокированных доменов из своего конфига в ipset `rd`**
|
**7. Проверьте добавляет ли dnsmasq IP адреса заблокированных доменов из своего конфига в nftset `d`**
|
||||||
|
|
||||||
Выполните в консоли :
|
При запросе заблокированного домена dnsmasq разрешает доменное имя в IP адрес и помещает его в nftset. Далее, спустя некоторое время, этот IP адрес удаляется из сета.
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
Выполните в консоли:
|
||||||
|
|
||||||
В блоке `Ip sets:` сет с именем `rd`. При запросе заблокированного домена dnsmasq разрешает доменное имя в IP адрес и помещает его в ipset. Счётчик `Number of entries:` у сета `rd` должен увеличиваться при запросе новых заблокированных ресурсов. Далее, спустя некоторое время, этот IP адрес удаляется из сета.
|
nft list set ip r d
|
||||||
|
|
||||||
Можно увидеть сами IP адреса (если они есть в данный момент):
|
В выводе можно увидеть эти IP адреса (в блоке `elements = { ... }`), если они есть в данный момент. Также, можно смотреть добавляемые dnsmasq IP адреса в веб-интерфейсе на странице статистике в таблице `Dnsmasq` в реальном времени.
|
||||||
|
|
||||||
ipset list rd
|
Если при обращении к заблокированному домену dnsmasq не добавляет его IP адрес в свой nftset, то причиной может быть отсутствие обращений к dnsmasq (DNS-серверу) со стороны ОС вашего ПК (или другого устройства). Локальный резолвер ОС часто кэширует полученные адреса и не делает запрос, следовательно, dnsmasq не добавляет IP адрес в nftset и вы получаете "заглушку" от провайдера для данного сайта. По истечении таймаута записи в кэше всё опять работает правильно. В этой ситуации можно либо подождать пока запись будет удалена из кэша по таймауту, либо очистить DNS-кэш ОС. Для Windiows всё просто: `ipconfig /flushdns`, для других ОС сложнее - ищите в Google. Также, не повредит очистить кэш браузера. Попробуйте больше разных заблокированных сайтов для тестирования...
|
||||||
|
|
||||||
Если при обращении к заблокированному домену dnsmasq не добавляет его IP адрес в свой ipset, то причиной может быть отсутствие обращений к dnsmasq (DNS-серверу) со стороны ОС вашего ПК (или другого устройства). Локальный резолвер ОС часто кэширует полученные адреса и не делает запрос, следовательно, dnsmasq не добавляет IP адрес в ipset и вы получаете "заглушку" от провайдера для данного сайта. По истечении таймаута записи в кэше всё опять работает правильно. В этой ситуации можно либо подождать пока запись будет удалена из кэша по таймауту, либо очистить DNS-кэш ОС. Для Windiows всё просто: `ipconfig /flushdns`, для других ОС сложнее - ищите в Google. Также, не повредит очистить кэш браузера. Попробуйте больше разных заблокированных сайтов для тестирования...
|
|
||||||
|
|
||||||
|
|
||||||
**8. Если возникают проблемы с нехваткой оперативной памяти**
|
**8. Если возникают проблемы с нехваткой оперативной памяти**
|
||||||
@@ -99,7 +97,7 @@
|
|||||||
Killed
|
Killed
|
||||||
Module run attempt 1: failed [/usr/libexec/ruantiblock/ruab_parser.lua]
|
Module run attempt 1: failed [/usr/libexec/ruantiblock/ruab_parser.lua]
|
||||||
|
|
||||||
и приводит к краху интерпретатора. Или же роутер просто зависает. Если при обновлении блэклиста в логе роутера появляются ошибки `Module error!` или `kernel: Out of memory` с трэйсами ядра, попробуйте выполнить в консоли команду (создание конфигов без перезагрузки dnsmasq и без изменения конфигурации ipset):
|
и приводит к краху интерпретатора. Или же роутер просто зависает. Если при обновлении блэклиста в логе роутера появляются ошибки `Module error!` или `kernel: Out of memory` с трэйсами ядра, попробуйте выполнить в консоли команду (создание конфигов без перезагрузки dnsmasq и без изменения конфигурации nftables):
|
||||||
|
|
||||||
/usr/bin/ruantiblock.sh data-files
|
/usr/bin/ruantiblock.sh data-files
|
||||||
|
|
||||||
@@ -107,7 +105,7 @@
|
|||||||
|
|
||||||
Следующая конфигурация даёт самый минимальный размер списка блокировок (и требует менее всего памяти):
|
Следующая конфигурация даёт самый минимальный размер списка блокировок (и требует менее всего памяти):
|
||||||
|
|
||||||
uci set ruantiblock.config.ipset_clear_sets="1"
|
uci set ruantiblock.config.nftset_clear_sets="1"
|
||||||
uci set ruantiblock.config.bllist_preset="antifilter-ip"
|
uci set ruantiblock.config.bllist_preset="antifilter-ip"
|
||||||
uci set ruantiblock.config.bllist_ip_limit="0"
|
uci set ruantiblock.config.bllist_ip_limit="0"
|
||||||
uci set ruantiblock.config.bllist_summarize_ip="0"
|
uci set ruantiblock.config.bllist_summarize_ip="0"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
uci set ruantiblock.config.add_user_entries="1"
|
uci set ruantiblock.config.add_user_entries="1"
|
||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
|
|
||||||
Нужно создать текстовый файл с записями (IP, CIDR или FQDN, каждая запись в новой строке) `/etc/ruantiblock/user_entries`. В записях FQDN можно задать DNS-сервер для разрешения данного домена (через пробел). Также можно комментировать строки (`#` - первый символ строки).
|
Записи нужно добавить в текстовый файл `/etc/ruantiblock/user_entries` (IP, CIDR или FQDN, каждая запись в новой строке). В записях FQDN можно задать DNS-сервер для разрешения данного домена (через пробел). Также можно комментировать строки (`#` - первый символ строки).
|
||||||
|
|
||||||
Пример файла `/etc/ruantiblock/user_entries`:
|
Пример файла `/etc/ruantiblock/user_entries`:
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
# CIDR
|
# CIDR
|
||||||
74.125.0.0/16
|
74.125.0.0/16
|
||||||
|
|
||||||
Есть возможность задать общий DNS-сервер только для пользовательских записей:
|
Есть возможность задать общий DNS-сервер только для пользовательских FQDN-записей:
|
||||||
|
|
||||||
uci set ruantiblock.config.user_entries_dns="1.1.1.1#53" # значение в виде пустой строки отключает опцию
|
uci set ruantiblock.config.user_entries_dns="1.1.1.1#53" # значение в виде пустой строки отключает опцию
|
||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
@@ -39,4 +39,4 @@
|
|||||||
uci set ruantiblock.config.bllist_preset=""
|
uci set ruantiblock.config.bllist_preset=""
|
||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
|
|
||||||
то для создания правил ipset и dnsmasq будут применяться лишь записи пользователя, без загрузки списка блокировок. При этом, благодаря использованию dnsmasq, записи FQDN будут всегда актуальны (ибо резолвятся в IP адреса в момент запроса). Применение правил из списка пользователя происходит при выполнении команды обновления, как описано выше (`/usr/bin/ruantiblock update`). Также, можно удалить из cron задание для регулярного обновления блэклиста, ибо оно не имеет смысла при ручном формировании списка блокировок...
|
то для создания правил nftables и dnsmasq будут применяться лишь записи пользователя, без загрузки списка блокировок. При этом, благодаря использованию dnsmasq, записи FQDN будут всегда актуальны (ибо резолвятся в IP адреса в момент запроса). Применение правил из списка пользователя происходит при выполнении команды обновления, как описано выше (`/usr/bin/ruantiblock update`). Также, можно удалить из cron задание для регулярного обновления блэклиста, ибо оно не имеет смысла при ручном формировании списка блокировок...
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
Можно исключить из обхода блокировок некоторые адреса, диапазоны или сайты. Это может быть полезно, например, если в блэклисте находится целая подсеть (диапазон), а вам необходим прямой доступ к одному из хостов этой сети и т.п. Записи, которые указаны в файле `/etc/ruantiblock/bypass_entries` будут всегда игнорироваться при обходе блокировок (т.е. всегда доступны напрямую, без проксификации, вне зависимости от того находятся ли они в блэклисте или нет). Данная опция реализована при помощи отдельных правил nftables (которые применяются перед правилами отбора пакетов в блэклист), т.е. не зависит от выбранного блэклиста и его содержимого. Включение опции:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.bypass_mode="1"
|
||||||
|
uci commit ruantiblock
|
||||||
|
|
||||||
|
Записи нужно добавить в текстовый файл `/etc/ruantiblock/bypass_entries` (IP, CIDR или FQDN, каждая запись в новой строке). В записях FQDN можно задать DNS-сервер для разрешения данного домена (через пробел). Также можно комментировать строки (`#` - первый символ строки).
|
||||||
|
|
||||||
|
Пример файла `/etc/ruantiblock/bypass_entries`:
|
||||||
|
|
||||||
|
# FQDN
|
||||||
|
domain.net
|
||||||
|
# FQDN с DNS-сервером
|
||||||
|
sub.domain.com 8.8.8.8
|
||||||
|
# FQDN с DNS-сервером и портом. #53 - порт, не комментарий
|
||||||
|
sub.domain.com 8.8.8.8#53
|
||||||
|
# ip
|
||||||
|
74.125.131.19
|
||||||
|
# CIDR
|
||||||
|
74.125.0.0/16
|
||||||
|
|
||||||
|
Есть возможность задать общий DNS-сервер только для исключаемых FQDN-записей:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.bypass_entries_dns="1.1.1.1#53" # значение в виде пустой строки отключает опцию
|
||||||
|
uci commit ruantiblock
|
||||||
|
|
||||||
|
Если в какой-либо записи (как в примере выше) указан свой DNS-сервер - то для этого домена используется только он.
|
||||||
|
|
||||||
|
Для применения списка исключений необходимо выполнить обновление блэклиста:
|
||||||
|
|
||||||
|
/usr/bin/ruantiblock update
|
||||||
|
|
||||||
|
Также, желательно очистить кэш DNS в ОС вашего ПК (в Windows: `ipconfig /flushdns`), и на роутере перезапустить dnsmasq `/etc/init.d/dnsmasq restart`, чтобы он тоже очистил кэш.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
После установки ruantiblock можно перенести директории с данными (`/tmp/ruantiblock` и `/tmp/dnsmasq.d`, которые содежржат создаваемые модулями файлы со списками блокировок для ipset и dnsmasq) на внешний носитель, т.е. на флешку или HDD подключенные к роутеру. При стандартной установке файлы со списками блокировок находятся в оперативной памяти, что может быть нежелательно если свободной памяти мало. Расположение данных на внешнем носителе позволяет сохранить список блокировок после перезагрузки роутера, а также отключить автоматическое обновление блэклиста каждый раз при старте системы.
|
После установки ruantiblock можно перенести директории с данными (`/tmp/ruantiblock` и `/tmp/dnsmasq.d`, которые содежржат создаваемые модулями файлы со списками блокировок для nftables и dnsmasq) на внешний носитель, т.е. на флешку или HDD подключенные к роутеру. При стандартной установке файлы со списками блокировок находятся в оперативной памяти, что может быть нежелательно если свободной памяти мало. Расположение данных на внешнем носителе позволяет сохранить список блокировок после перезагрузки роутера, а также отключить автоматическое обновление блэклиста каждый раз при старте системы.
|
||||||
Для переноса директорий, естественно, необходимо наличие подключенного и настроенного внешнего диска с файловой системой ext. Далее предполагается что диск смонтирован в `/opt`.
|
Для переноса директорий, естественно, необходимо наличие подключенного и настроенного внешнего диска с файловой системой ext. Далее предполагается что диск смонтирован в `/opt`.
|
||||||
|
|
||||||
**1.** Перенос директорий данных в `/opt/var/ruantiblock` (на внешний диск):
|
**1.** Перенос директорий данных в `/opt/var/ruantiblock` (на внешний диск):
|
||||||
|
|||||||
@@ -1,207 +0,0 @@
|
|||||||
# Ruantiblock v1.x совместим только с OpenWrt 23.05 или прошивками собранными из snapshot. В стабильной версии OpenWrt 22.03 dnsmasq не имеет поддержки nftables!
|
|
||||||
|
|
||||||
## Начальные требования
|
|
||||||
|
|
||||||
+ Для VPN конфигурации необходимо настроенное и работающее VPN-соединение. В случае OpenVPN, помимо конфигурирования самого клиента, в настройках сети нужно создать интерфейс (например, с названием `VPN`) для устройства `tun0` и добавить его в зону `wan` межсетевого экрана. При использовании Wireguard или PPtP необходимо, чтобы VPN-интерфейс был добавлен в зону `wan` межсетевого экрана.
|
|
||||||
+ В стандартной конфигурации конфиги nftset и dnsmasq со списками блокировок пишутся при обновлении в tmpfs, т.е. в оперативную память (`/tmp/ruantiblock` и `/tmp/dnsmasq.d` соответственно). При старте системы после перезагрузки происходит автоматическое обновление блэклиста. При недостаточном количестве памяти (128Мб и менее) или просто для удобства, можно [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C) после установки.
|
|
||||||
|
|
||||||
|
|
||||||
## Зависимости
|
|
||||||
|
|
||||||
+ dnsmasq-full
|
|
||||||
+ Tor конфигурация: tor, tor-geoip
|
|
||||||
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
|
||||||
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, Shadowsocks + ss-redir и пр.)
|
|
||||||
|
|
||||||
|
|
||||||
## Установка
|
|
||||||
|
|
||||||
**1. Установка зависимостей**
|
|
||||||
|
|
||||||
opkg update
|
|
||||||
opkg install libubox20230523
|
|
||||||
opkg --force-overwrite install dnsmasq-full
|
|
||||||
|
|
||||||
|
|
||||||
**2. Установка ruantiblock**
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/23.05/ruantiblock_1.3-0_all.ipk
|
|
||||||
opkg install /tmp/ruantiblock_1.3-0_all.ipk
|
|
||||||
rm /tmp/ruantiblock_1.3-0_all.ipk
|
|
||||||
|
|
||||||
|
|
||||||
**3. Установка luci-app-ruantiblock**
|
|
||||||
|
|
||||||
Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/23.05/luci-app-ruantiblock_1.3-0_all.ipk
|
|
||||||
opkg install /tmp/luci-app-ruantiblock_1.3-0_all.ipk
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/23.05/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
|
||||||
opkg install /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
|
||||||
|
|
||||||
rm /tmp/luci-app-ruantiblock_1.3-0_all.ipk /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
|
||||||
|
|
||||||
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
|
|
||||||
/etc/init.d/rpcd restart
|
|
||||||
/etc/init.d/uhttpd restart
|
|
||||||
|
|
||||||
|
|
||||||
**4. Полное выключение сервиса перед изменением конфигурации**
|
|
||||||
|
|
||||||
Необходимо для корректного удаления правил nftables и других данных предыдущей конфигурации!
|
|
||||||
|
|
||||||
/usr/bin/ruantiblock destroy
|
|
||||||
|
|
||||||
|
|
||||||
**5.1 Настройка Tor-конфигурации**
|
|
||||||
|
|
||||||
+ Установка Tor:
|
|
||||||
|
|
||||||
opkg install tor tor-geoip
|
|
||||||
/etc/init.d/tor enabled
|
|
||||||
|
|
||||||
+ Бэкап текущего конфига Tor:
|
|
||||||
|
|
||||||
cp -f /etc/tor/torrc /etc/tor/torrc.bak
|
|
||||||
|
|
||||||
+ Установка конфига Tor для ruantiblock:
|
|
||||||
|
|
||||||
wget --no-check-certificate -O /etc/tor/torrc https://raw.githubusercontent.com/gSpotx2f/ruantiblock_openwrt/master/tor/etc/tor/torrc
|
|
||||||
|
|
||||||
+ В конфиге Tor (`/etc/tor/torrc`), в параметре `TransPort` необходимо задать IP адрес локального интерфейса роутера (по умолчанию `192.168.1.1`):
|
|
||||||
|
|
||||||
TransPort 192.168.1.1:9040
|
|
||||||
|
|
||||||
_Получить IP адрес локального интерфейса можно следующей командой: `uci get network.lan.ipaddr`._
|
|
||||||
|
|
||||||
+ Если у вас недоступны входные узлы Tor, то необходимо настроить мосты. Далее, пример конфигурации с маскировкой Tor-трафика с помощью утилиты obfs4proxy. Установка obfs4proxy:
|
|
||||||
|
|
||||||
opkg install obfs4proxy
|
|
||||||
|
|
||||||
Получить адреса мостов можно на странице [https://bridges.torproject.org/options/](https://bridges.torproject.org/options/). Выберите вариант `obfs4` в выпадающем списке. Каждая строка является адресом входного узла. Нужно добавить их в конфиг Tor (`/etc/torrc`), предварив каждую директивой `Bridge`, включить использование мостов и подключить obfs4proxy. Пример записи в `/etc/torrc`:
|
|
||||||
|
|
||||||
Bridge obfs4 217.160.214.85:8080 B90D1A479D416987DE8CE14BD80B22C0B90917CE cert=A2NvKQ6Fb/sovF+i3qmZqCN8WJsYtupPKltQbmFCLmm4CyMD0LSkN6J+i+E04rUJzAY0DQ iat-mode=0
|
|
||||||
Bridge obfs4 51.158.146.93:9003 74EEC1AA79F664B6827D092A44C69FF6738A8F58 cert=JySUZrPCrLEVNm9O/oMV2EGueXyJlqNjHRm6ie6FBOAti/nA4arWKAM30PRi/5EFZSXieA iat-mode=0
|
|
||||||
Bridge obfs4 185.177.207.179:8443 35B6556F164FB4568F90A9570428724B2C77D353 cert=Zdsd5ZgCxGV/ok/GwRFLN/6zIVVTdBbhJ3f7AhO1fvJ370nENc2Z7wk3lRJE07tgLK2FZg iat-mode=0
|
|
||||||
UseBridges 1
|
|
||||||
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy
|
|
||||||
|
|
||||||
+ Включение режима Tor:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.proxy_mode='1'
|
|
||||||
|
|
||||||
+ Настройки dnsmasq для прямого доступа к .onion ресурсам:
|
|
||||||
|
|
||||||
uci set dhcp.@dnsmasq[0].rebind_domain='onion'
|
|
||||||
|
|
||||||
+ Сохранение изменений в uci:
|
|
||||||
|
|
||||||
uci commit
|
|
||||||
|
|
||||||
+ Перезапуск Tor:
|
|
||||||
|
|
||||||
/etc/init.d/tor restart
|
|
||||||
|
|
||||||
|
|
||||||
**5.2 Настройка VPN-конфигурации**
|
|
||||||
|
|
||||||
+ Включение режима VPN:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.proxy_mode='2'
|
|
||||||
|
|
||||||
+ Установка параметра с именем VPN-интерфейса (для OpenVPN обычно `tun0`, для PPtP и WireGuard имя определяет сам пользователь при создании интерфейса):
|
|
||||||
|
|
||||||
uci set ruantiblock.config.if_vpn='tun0'
|
|
||||||
uci commit ruantiblock
|
|
||||||
|
|
||||||
_VPN-интерфейс можно задать и в веб-приложении: `Ruantiblock` -> `Настройки` -> `VPN`._
|
|
||||||
|
|
||||||
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
|
||||||
|
|
||||||
|
|
||||||
**5.3 Настройка конфигурации прозрачного прокси**
|
|
||||||
|
|
||||||
+ Включение режима прозрачного прокси:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.proxy_mode='3'
|
|
||||||
|
|
||||||
+ Задайте значение TCP-порта на котором принимает соединения прозрачный прокси:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.t_proxy_port_tcp='1100'
|
|
||||||
uci commit ruantiblock
|
|
||||||
|
|
||||||
+ **На примере Shadowsocks с использованием ss-redir:** значение TCP-порта должно соответствовать локальному порту указанному в корфигурации ss-redir (значение параметра запуска `ss-redir -l <порт>` или параметр `local_port` в конфиге Shadowsocks `/etc/shadowsocks.json` или параметр `local_port` в UCI-конфиге `/etc/config/shadowsocks-libev` в блоке соответствующего сервера).
|
|
||||||
Если вам необходимо, чтобы трафик локальных приложений роутера также обходил блокировки, то параметр конфигурации Shadowsocks `local_address` (или значение параметра запуска `ss-redir -b <ip адрес>`) должен быть установлен в `0.0.0.0`. В такой конфигурации Shadowsocks будет принимать соединения на всех доступных адресах (включая localhost `127.0.0.1`, необходимый для редиректа локального трафика роутера).
|
|
||||||
|
|
||||||
+ **На примере Redsocks:** в конфигурационном файле (`/etc/redsocks.conf`) параметр `local_port` в блоке `redsocks`. Также, прозрачный прокси должен принимать входящие подключения на LAN-адресе роутера (в примере `192.168.0.1`) или на всех адресах (`0.0.0.0`), но не на localhost (`127.0.0.1`)!
|
|
||||||
|
|
||||||
redsocks {
|
|
||||||
...
|
|
||||||
local_ip = 192.168.0.1;
|
|
||||||
local_port = 1100;
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
Если Redsocks подключен к локальному сервису, т.е. работающему на роутере, то необходимо в настройках ruantiblock отключить проксификацию трафика локальных приложений роутера:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.proxy_local_clients="0"
|
|
||||||
uci commit ruantiblock
|
|
||||||
|
|
||||||
иначе Redsocks не сможет подключиться к локальному сервису!
|
|
||||||
|
|
||||||
|
|
||||||
**6. Выбор списка блокировок**
|
|
||||||
|
|
||||||
По умолчанию, используется пустой список (только [записи пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5)), который вы можете формировать самостоятельно добавляя лишь необходимые вам хосты. Для включения полного обхода блокировок необходимо задать соответствующий режим обновления блэклиста:
|
|
||||||
|
|
||||||
uci set ruantiblock.config.bllist_preset="ruantiblock-fqdn"
|
|
||||||
uci commit ruantiblock
|
|
||||||
|
|
||||||
|
|
||||||
**7. Включение запуска ruantiblock при старте системы**
|
|
||||||
|
|
||||||
/etc/init.d/ruantiblock enable
|
|
||||||
|
|
||||||
|
|
||||||
**8. Добавление задания в cron для регулярного обновления блэклиста**
|
|
||||||
|
|
||||||
/etc/init.d/cron enable
|
|
||||||
echo "0 3 */3 * * /usr/bin/ruantiblock update" >> /etc/crontabs/root
|
|
||||||
/etc/init.d/cron restart
|
|
||||||
|
|
||||||
|
|
||||||
**9. Дополнительно, установка модуля-парсера блэклиста**
|
|
||||||
|
|
||||||
Для создания собственной конфигурации списка блокировок из любого доступного источника (`zapret-info`, `rublacklist`, `antifilter`) необходимо установить модуль-парсер блэклиста. Стандартный: Lua-модуль [ruantiblock-mod-lua](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C). Дополнительный [ruantiblock-mod-py](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C) делает всё то же, что и ruantiblock-mod-lua, но написан на Python.
|
|
||||||
|
|
||||||
|
|
||||||
**10. После установки**
|
|
||||||
|
|
||||||
Создаваемые при обновлениях конфиги со списком блокировок nftables и dnsmasq будут располагаться в `/tmp/ruantiblock` и `/tmp/dnsmasq.d`. При наличии у роутера USB (или eSATA и пр.) настоятельно рекомендуется [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C).
|
|
||||||
|
|
||||||
Стоит упомянуть, что при вызове скрипта `/usr/bin/ruantiblock` с параметрами: `start`, `update` или `destroy` - всегда выполняется перезапуск dnsmasq.
|
|
||||||
|
|
||||||
Также, необходимо настроить шифрование DNS-трафика (dnscrypt-proxy, [https-dns-proxy](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-https%E2%80%91dns%E2%80%91proxy) и пр.) и [перехват стороннего DNS-трафика](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%85%D0%B2%D0%B0%D1%82-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%D0%B3%D0%BE-DNS-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0) хостов локальной сети. В режиме обхода блокировок `fqdn`, все хосты в локальной сети (для которых будет работать обход блокировок) должны использовать DNS-сервер роутера. Поэтому в настройках мобильных устройств и браузеров, нужно отключить опцию "безопасный DNS" (т.е. конфигурацию при которой устройство или программа использует сторонние шифрованные DNS-серверы, игнорируя роутер).
|
|
||||||
|
|
||||||
|
|
||||||
## Первый запуск
|
|
||||||
|
|
||||||
По завершении настройки перезагрузите устройство, затем проверьте включен ли ruantiblock и обновился ли список блокировок при старте:
|
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
|
||||||
|
|
||||||
Если не возникло никаких ошибок, попробуйте выполнить обновление списка блокировок:
|
|
||||||
|
|
||||||
/usr/bin/ruantiblock update
|
|
||||||
|
|
||||||
|
|
||||||
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с вашего ПК или др. устройства в локальной сети. Обратите внимание, что после запуска Tor может инициализироваться на протяжении нескольких минут...
|
|
||||||
|
|
||||||
Можно проверить идут ли пакеты через правила nftables в выводе статуса ruantiblock в консоли:
|
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
|
||||||
|
|
||||||
Блок `Nftables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
|
||||||
|
|
||||||
Если возникли проблемы, смотрите [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
|
||||||
@@ -1,20 +1,12 @@
|
|||||||
## Начальные требования
|
## Начальные требования
|
||||||
|
|
||||||
+ Для скачивания файлов необходим полноценный wget, умеющий работать с https:
|
|
||||||
|
|
||||||
opkg install wget
|
|
||||||
|
|
||||||
+ Для версий OpenWrt >= 22.03 необходимо установить пакет iptables-legacy:
|
|
||||||
|
|
||||||
opkg install iptables-legacy kmod-ipt-nat kmod-ipt-nat-extra
|
|
||||||
|
|
||||||
+ Для VPN конфигурации необходимо настроенное и работающее VPN-соединение. В случае OpenVPN, помимо конфигурирования самого клиента, в настройках сети нужно создать интерфейс (например, с названием `VPN`) для устройства `tun0` и добавить его в зону `wan` межсетевого экрана. При использовании Wireguard или PPtP необходимо, чтобы VPN-интерфейс был добавлен в зону `wan` межсетевого экрана.
|
+ Для VPN конфигурации необходимо настроенное и работающее VPN-соединение. В случае OpenVPN, помимо конфигурирования самого клиента, в настройках сети нужно создать интерфейс (например, с названием `VPN`) для устройства `tun0` и добавить его в зону `wan` межсетевого экрана. При использовании Wireguard или PPtP необходимо, чтобы VPN-интерфейс был добавлен в зону `wan` межсетевого экрана.
|
||||||
+ В стандартной конфигурации конфиги ipset и dnsmasq со списками блокировок пишутся при обновлении в tmpfs, т.е. в оперативную память (`/tmp/ruantiblock` и `/tmp/dnsmasq.d` соответственно). При старте системы после перезагрузки происходит автоматическое обновление блэклиста. При недостаточном количестве памяти (128Мб и менее) или просто для удобства, можно [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C) после установки.
|
+ В стандартной конфигурации конфиги nftset и dnsmasq со списками блокировок пишутся при обновлении в tmpfs, т.е. в оперативную память (`/tmp/ruantiblock` и `/tmp/dnsmasq.d` соответственно). При старте системы после перезагрузки происходит автоматическое обновление блэклиста. При недостаточном количестве памяти (128Мб и менее) или просто для удобства, можно [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C) после установки.
|
||||||
|
|
||||||
|
|
||||||
## Зависимости
|
## Зависимости
|
||||||
|
|
||||||
+ wget, ipset, kmod-ipt-ipset, dnsmasq-full
|
+ dnsmasq-full
|
||||||
+ Tor конфигурация: tor, tor-geoip
|
+ Tor конфигурация: tor, tor-geoip
|
||||||
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
||||||
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, Shadowsocks + ss-redir и пр.)
|
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, Shadowsocks + ss-redir и пр.)
|
||||||
@@ -25,27 +17,27 @@
|
|||||||
**1. Установка зависимостей**
|
**1. Установка зависимостей**
|
||||||
|
|
||||||
opkg update
|
opkg update
|
||||||
opkg --force-overwrite install ipset kmod-ipt-ipset dnsmasq-full
|
opkg --force-overwrite install dnsmasq-full
|
||||||
|
|
||||||
|
|
||||||
**2. Установка ruantiblock**
|
**2. Установка ruantiblock**
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/ruantiblock_0.9.7-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/22.03/ruantiblock_0.9.7-1_all.ipk
|
wget --no-check-certificate -O /tmp/ruantiblock_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_1.3-0_all.ipk
|
||||||
opkg install /tmp/ruantiblock_0.9.7-1_all.ipk
|
opkg install /tmp/ruantiblock_1.3-0_all.ipk
|
||||||
rm /tmp/ruantiblock_0.9.7-1_all.ipk
|
rm /tmp/ruantiblock_1.3-0_all.ipk
|
||||||
|
|
||||||
|
|
||||||
**3. Установка luci-app-ruantiblock**
|
**3. Установка luci-app-ruantiblock**
|
||||||
|
|
||||||
Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
|
Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_0.9.7-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/22.03/luci-app-ruantiblock_0.9.7-0_all.ipk
|
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_1.3-0_all.ipk
|
||||||
opkg install /tmp/luci-app-ruantiblock_0.9.7-0_all.ipk
|
opkg install /tmp/luci-app-ruantiblock_1.3-0_all.ipk
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_0.9.7-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/22.03/luci-i18n-ruantiblock-ru_0.9.7-0_all.ipk
|
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
||||||
opkg install /tmp/luci-i18n-ruantiblock-ru_0.9.7-0_all.ipk
|
opkg install /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
||||||
|
|
||||||
rm /tmp/luci-app-ruantiblock_0.9.7-0_all.ipk /tmp/luci-i18n-ruantiblock-ru_0.9.7-0_all.ipk
|
rm /tmp/luci-app-ruantiblock_1.3-0_all.ipk /tmp/luci-i18n-ruantiblock-ru_1.3-0_all.ipk
|
||||||
|
|
||||||
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
|
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
|
||||||
/etc/init.d/rpcd restart
|
/etc/init.d/rpcd restart
|
||||||
@@ -54,7 +46,7 @@
|
|||||||
|
|
||||||
**4. Полное выключение сервиса перед изменением конфигурации**
|
**4. Полное выключение сервиса перед изменением конфигурации**
|
||||||
|
|
||||||
Необходимо для корректного удаления правил iptables и других данных предыдущей конфигурации!
|
Необходимо для корректного удаления правил nftables и других данных предыдущей конфигурации!
|
||||||
|
|
||||||
/usr/bin/ruantiblock destroy
|
/usr/bin/ruantiblock destroy
|
||||||
|
|
||||||
@@ -120,7 +112,7 @@
|
|||||||
uci set ruantiblock.config.if_vpn='tun0'
|
uci set ruantiblock.config.if_vpn='tun0'
|
||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
|
|
||||||
_VPN-интерфейс можно задать и в веб-приложении: `Ruantiblock` -> `Настройки` -> `VPN` (вкладка `VPN` доступна только при выключенной службе Ruantiblock!)._
|
_VPN-интерфейс можно задать и в веб-приложении: `Ruantiblock` -> `Настройки` -> `VPN`._
|
||||||
|
|
||||||
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
||||||
|
|
||||||
@@ -156,7 +148,16 @@
|
|||||||
иначе Redsocks не сможет подключиться к локальному сервису!
|
иначе Redsocks не сможет подключиться к локальному сервису!
|
||||||
|
|
||||||
|
|
||||||
**6. Выбор списка блокировок**
|
**6. Добавление IP адреса VPN-сервера или прокси в список IP адресов исключаемых из обхода блокировок**
|
||||||
|
|
||||||
|
В конфигурациях VPN и прозрачного прокси имеет смысл добавить IP адрес вашего VPN-сервера (или прокси-сервера) в список IP адресов исключаемых из обхода блокировок. Это гарантирует что служебный трафик самого VPN-тунеля (или соединения с прокси) всегда будет проходить напрямую, не попадая в правила ruantiblock. Например, если IP адрес VPN-сервера 217.23.3.91:
|
||||||
|
|
||||||
|
uci set ruantiblock.config.bypass_ip_mode="1"
|
||||||
|
uci add_list ruantiblock.config.bypass_ip_list="217.23.3.91"
|
||||||
|
uci commit ruantiblock
|
||||||
|
|
||||||
|
|
||||||
|
**7. Выбор списка блокировок**
|
||||||
|
|
||||||
По умолчанию, используется пустой список (только [записи пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5)), который вы можете формировать самостоятельно добавляя лишь необходимые вам хосты. Для включения полного обхода блокировок необходимо задать соответствующий режим обновления блэклиста:
|
По умолчанию, используется пустой список (только [записи пользователя](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B2-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B5)), который вы можете формировать самостоятельно добавляя лишь необходимые вам хосты. Для включения полного обхода блокировок необходимо задать соответствующий режим обновления блэклиста:
|
||||||
|
|
||||||
@@ -164,26 +165,26 @@
|
|||||||
uci commit ruantiblock
|
uci commit ruantiblock
|
||||||
|
|
||||||
|
|
||||||
**7. Включение запуска ruantiblock при старте системы**
|
**8. Включение запуска ruantiblock при старте системы**
|
||||||
|
|
||||||
/etc/init.d/ruantiblock enable
|
/etc/init.d/ruantiblock enable
|
||||||
|
|
||||||
|
|
||||||
**8. Добавление задания в cron для регулярного обновления блэклиста**
|
**9. Добавление задания в cron для регулярного обновления блэклиста**
|
||||||
|
|
||||||
/etc/init.d/cron enable
|
/etc/init.d/cron enable
|
||||||
echo "0 3 */3 * * /usr/bin/ruantiblock update" >> /etc/crontabs/root
|
echo "0 3 */3 * * /usr/bin/ruantiblock update" >> /etc/crontabs/root
|
||||||
/etc/init.d/cron restart
|
/etc/init.d/cron restart
|
||||||
|
|
||||||
|
|
||||||
**9. Дополнительно, установка модуля-парсера блэклиста**
|
**10. Дополнительно, установка модуля-парсера блэклиста**
|
||||||
|
|
||||||
Для создания собственной конфигурации списка блокировок из любого доступного источника (`zapret-info`, `rublacklist`, `antifilter`) необходимо установить модуль-парсер блэклиста. Стандартный: Lua-модуль [ruantiblock-mod-lua](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C). Дополнительный [ruantiblock-mod-py](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C) делает всё то же, что и ruantiblock-mod-lua, но написан на Python.
|
Для создания собственной конфигурации списка блокировок из любого доступного источника (`zapret-info`, `rublacklist`, `antifilter`) необходимо установить модуль-парсер блэклиста. Стандартный: Lua-модуль [ruantiblock-mod-lua](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C). Дополнительный [ruantiblock-mod-py](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C) делает всё то же, что и ruantiblock-mod-lua, но написан на Python.
|
||||||
|
|
||||||
|
|
||||||
**10. После установки**
|
**11. После установки**
|
||||||
|
|
||||||
Создаваемые при обновлениях конфиги со списком блокировок ipset и dnsmasq будут располагаться в `/tmp/ruantiblock` и `/tmp/dnsmasq.d`. При наличии у роутера USB (или eSATA и пр.) настоятельно рекомендуется [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C).
|
Создаваемые при обновлениях конфиги со списком блокировок nftables и dnsmasq будут располагаться в `/tmp/ruantiblock` и `/tmp/dnsmasq.d`. При наличии у роутера USB (или eSATA и пр.) настоятельно рекомендуется [перенести директории с данными на внешний носитель](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C).
|
||||||
|
|
||||||
Стоит упомянуть, что при вызове скрипта `/usr/bin/ruantiblock` с параметрами: `start`, `update` или `destroy` - всегда выполняется перезапуск dnsmasq.
|
Стоит упомянуть, что при вызове скрипта `/usr/bin/ruantiblock` с параметрами: `start`, `update` или `destroy` - всегда выполняется перезапуск dnsmasq.
|
||||||
|
|
||||||
@@ -203,10 +204,10 @@
|
|||||||
|
|
||||||
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с вашего ПК или др. устройства в локальной сети. Обратите внимание, что после запуска Tor может инициализироваться на протяжении нескольких минут...
|
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с вашего ПК или др. устройства в локальной сети. Обратите внимание, что после запуска Tor может инициализироваться на протяжении нескольких минут...
|
||||||
|
|
||||||
Можно проверить идут ли пакеты через правила iptables в выводе статуса ruantiblock в консоли:
|
Можно проверить идут ли пакеты через правила nftables в выводе статуса ruantiblock в консоли:
|
||||||
|
|
||||||
/usr/bin/ruantiblock status
|
/usr/bin/ruantiblock status
|
||||||
|
|
||||||
Блок `Iptables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
Блок `Nftables rules:` содержит счётчики правил для IP адресов, CIDR-диапазонов и IP адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или IP соответствующие счётчики растут.
|
||||||
|
|
||||||
Если возникли проблемы, смотрите [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
Если возникли проблемы, смотрите [здесь...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%95%D1%81%D0%BB%D0%B8-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%BB%D0%B8-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B...)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Оптимизация и уменьшение количества записей в списке блокировок возможны только для режимов обновления блэклиста использующих полный реестр, т.е. источники `zapret-info` и `rublacklist`. Другие два источника (`antifilter`, `ruantiblock`) предоставляют уже оптимизированный список блокировок и описанные ниже методы оптимизации с ними не работают.
|
Оптимизация и уменьшение количества записей в списке блокировок возможны только для режимов обновления блэклиста использующих полный реестр, т.е. источники `zapret-info` и `rublacklist`. Другие два источника (`antifilter`, `ruantiblock`) предоставляют уже оптимизированный список блокировок и описанные ниже методы оптимизации с ними не работают.
|
||||||
|
|
||||||
Некоторые методы уменьшения количества записей в итоговых конфигах ipset и dnsmasq (в примерах опции UCI):
|
Некоторые методы уменьшения количества записей в итоговых конфигах nftables и dnsmasq (в примерах опции UCI):
|
||||||
|
|
||||||
**1.** Оптимизация списка доменов в конфиге dnsmasq, путём группировки субдоменов (3 ур-ня и выше) под одной записью 2-го уровня (SLD). Вместо нескольких записей субдоменов в конфиг dnsmasq добавляется всего одна запись второго уровня. Количество субдоменов в реестре, необходимое для срабатывания этой группировки, определяется в опции `ruantiblock.config.bllist_sd_limit`. По умолчанию: 16. Т.е. если в реестре встречается >16 субдоменов `*.domain.com`, то вместо них добавляется одна запись `domain.com` и весь трафик ко всем субдоменам domain.com проходит через прокси (включая и те сайты в зоне domain.com, которых нет в реестре). Установка значения:
|
**1.** Оптимизация списка доменов в конфиге dnsmasq, путём группировки субдоменов (3 ур-ня и выше) под одной записью 2-го уровня (SLD). Вместо нескольких записей субдоменов в конфиг dnsmasq добавляется всего одна запись второго уровня. Количество субдоменов в реестре, необходимое для срабатывания этой группировки, определяется в опции `ruantiblock.config.bllist_sd_limit`. По умолчанию: 16. Т.е. если в реестре встречается >16 субдоменов `*.domain.com`, то вместо них добавляется одна запись `domain.com` и весь трафик ко всем субдоменам domain.com проходит через прокси (включая и те сайты в зоне domain.com, которых нет в реестре). Установка значения:
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
Такая оптимизация довольно эффективна и позволяет сократить конфигурацию dnsmasq, но не заблокированные субдомены также попадают под правила обхода блокировок. Данные оптимизации применяются только в режимах обновления блэклиста `fqdn` (`rublacklist-fqdn`, `zapret-info-fqdn`).
|
Такая оптимизация довольно эффективна и позволяет сократить конфигурацию dnsmasq, но не заблокированные субдомены также попадают под правила обхода блокировок. Данные оптимизации применяются только в режимах обновления блэклиста `fqdn` (`rublacklist-fqdn`, `zapret-info-fqdn`).
|
||||||
|
|
||||||
**2.** Оптимизация списка IP адресов для ipset. Принцип такой же, как и в предыдущем пункте, только группировка выполняется по принадлежности IP адреса к подсети класса C (/24). Необходимое для срабатывания этой группировки количество IP адресов (принадлежащих одной подсети) в реестре определяется опцией `ruantiblock.config.bllist_ip_limit`. Например, если значение 30, то при наличии в реестре >30 адресов одной подсети /24 (к примеру: `192.168.1.1`, `192.168.1.2` ... `192.168.1.31`) вместо них будет добавлена одна запись для всей подсети: `192.168.1.0/24`. Таким образом, сокращается размер списка ipset, но под правила для блокировок попадает некоторое количество не заблокированных IP адресов. Установка значения:
|
**2.** Оптимизация списка IP адресов для nftables. Принцип такой же, как и в предыдущем пункте, только группировка выполняется по принадлежности IP адреса к подсети класса C (/24). Необходимое для срабатывания этой группировки количество IP адресов (принадлежащих одной подсети) в реестре определяется опцией `ruantiblock.config.bllist_ip_limit`. Например, если значение 30, то при наличии в реестре >30 адресов одной подсети /24 (к примеру: `192.168.1.1`, `192.168.1.2` ... `192.168.1.31`) вместо них будет добавлена одна запись для всей подсети: `192.168.1.0/24`. Таким образом, сокращается размер списка nftables, но под правила для блокировок попадает некоторое количество не заблокированных IP адресов. Установка значения:
|
||||||
|
|
||||||
uci set ruantiblock.config.bllist_ip_limit="30"
|
uci set ruantiblock.config.bllist_ip_limit="30"
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
uci add_list ruantiblock.config.bllist_gr_excluded_nets="209.58.142."
|
uci add_list ruantiblock.config.bllist_gr_excluded_nets="209.58.142."
|
||||||
и т.д.
|
и т.д.
|
||||||
|
|
||||||
**3.** Фильтрация записей. Исключение из итоговых конфигов ipset и dnsmasq записей ненужных вам хостов по шаблонам. К примеру, если вы никогда не посещаете онлайн-казино, то можно добавить шаблоны для исключения подобных сайтов, чтобы сократить размер конфигов и, как следствие, потребление оперативной памяти. [Подробнее об этой функции...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B0-%D0%BF%D0%BE-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D0%BC)
|
**3.** Фильтрация записей. Исключение из итоговых конфигов nftables и dnsmasq записей ненужных вам хостов по шаблонам. К примеру, если вы никогда не посещаете онлайн-казино, то можно добавить шаблоны для исключения подобных сайтов, чтобы сократить размер конфигов и, как следствие, потребление оперативной памяти. [Подробнее об этой функции...](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B5%D0%B9-%D0%B1%D0%BB%D1%8D%D0%BA%D0%BB%D0%B8%D1%81%D1%82%D0%B0-%D0%BF%D0%BE-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D0%BC)
|
||||||
|
|
||||||
**4.** Отключение альтернативных DNS-серверов в конфиге dnsmasq сокращает количество строк конфигурации в 2 раза (в режиме обновления блэклиста `fqdn`):
|
**4.** Отключение альтернативных DNS-серверов в конфиге dnsmasq сокращает количество строк конфигурации в 2 раза (в режиме обновления блэклиста `fqdn`):
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
или
|
или
|
||||||
uci set ruantiblock.config.bllist_preset="antifilter-ip"
|
uci set ruantiblock.config.bllist_preset="antifilter-ip"
|
||||||
|
|
||||||
в совокупности с методом оптимизации списка ip-адресов (п.2). В этом случае, в ipset будет добавляться оптимизированный список всех ip-адресов из блэклиста. Такая конфигурация приведёт к избыточному использованию VPN-соединения, но позволит иcключить из схемы разрешение имён DNS для записей блэклиста (пользовательские FQDN записи всё-равно будут использовать DNS).
|
в совокупности с методом оптимизации списка ip-адресов (п.2). В этом случае, в nftables будет добавляться оптимизированный список всех ip-адресов из блэклиста. Такая конфигурация приведёт к избыточному использованию VPN-соединения, но позволит иcключить из схемы разрешение имён DNS для записей блэклиста (пользовательские FQDN записи всё-равно будут использовать DNS).
|
||||||
|
|
||||||
**6.** Пример комбинации разных оптимизаций списка блокировок:
|
**6.** Пример комбинации разных оптимизаций списка блокировок:
|
||||||
|
|
||||||
@@ -68,4 +68,4 @@
|
|||||||
|
|
||||||
/usr/bin/ruantiblock update
|
/usr/bin/ruantiblock update
|
||||||
|
|
||||||
Подбирая разные комбинации параметров оптимизации можно добиться оптимального для вашего устройства баланса между размером конечных конфигов (ipset, dnsmasq) и количеством лишних IP адресов и доменов попадающих под правила в результате оптимизаций.
|
Подбирая разные комбинации параметров оптимизации можно добиться оптимального для вашего устройства баланса между размером конечных конфигов (nftables, dnsmasq) и количеством лишних IP адресов и доменов попадающих под правила в результате оптимизаций.
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
Для удаления ruantiblock можно воспользоваться скриптом `uninstall.sh`:
|
Для удаления ruantiblock можно воспользоваться скриптом `uninstall.sh`:
|
||||||
|
|
||||||
wget --no-check-certificate -O /tmp/uninstall.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock_openwrt/0.9/autoinstall/uninstall.sh && chmod +x /tmp/uninstall.sh && /tmp/uninstall.sh
|
wget --no-check-certificate -O /tmp/uninstall.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock_openwrt/master/autoinstall/current/uninstall.sh && chmod +x /tmp/uninstall.sh && /tmp/uninstall.sh
|
||||||
|
|
||||||
При перустановке ruantiblock, также, желательно сначала выполнить удаление (заранее сохранив все необходимые конфиги), а затем чистую установку...
|
При перустановке ruantiblock, также, желательно сначала выполнить удаление (заранее сохранив все необходимые конфиги), а затем чистую установку...
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
При обновлении списка блокировок, механизм фильтрации позволяет отбирать в итоговые конфигурационные файлы (ipset и dnsmasq) записи по собственным шаблонам. Таким образом можно существенно сократить список доменов в конфиге dnsmasq (в режиме обновления блэклиста `fqdn`), исключив ненужные сайты, например: онлайн-казино, наркотики, порно и прочие не интересующие вас темы. Также можно применять шаблоны для фильтрации IP адресов и диапазонов CIDR. Исключение записей происходит на этапе первичного разбора, а поэтому благотворно сказывается на использовании оперативной памяти модулями-парсерами (исключённые записи не хранятся в памяти во время работы модуля). Есть отрицательный момент - процесс обновления выполняется медленнее.
|
При обновлении списка блокировок, механизм фильтрации позволяет отбирать в итоговые конфигурационные файлы (nftables и dnsmasq) записи по собственным шаблонам. Таким образом можно существенно сократить список доменов в конфиге dnsmasq (в режиме обновления блэклиста `fqdn`), исключив ненужные сайты, например: онлайн-казино, наркотики, порно и прочие не интересующие вас темы. Также можно применять шаблоны для фильтрации IP адресов и диапазонов CIDR. Исключение записей происходит на этапе первичного разбора, а поэтому благотворно сказывается на использовании оперативной памяти модулями-парсерами (исключённые записи не хранятся в памяти во время работы модуля). Есть отрицательный момент - процесс обновления выполняется медленнее.
|
||||||
|
|
||||||
## Опции для фильтрации записей
|
## Опции для фильтрации записей
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user