mirror of
https://github.com/gSpotx2f/ruantiblock_openwrt.git
synced 2026-05-14 06:30:59 +00:00
Updated
+31
-17
@@ -1,6 +1,6 @@
|
||||
## Описание
|
||||
|
||||
Ruantiblock - решение для обхода блокировок (при помощи Tor или VPN-соединения) с выборочной проксификацией трафика к заблокированным ресурсам (при этом доступ к остальным ресурсам осуществляется напрямую). В качестве источника списка блокировок поддерживаются выгрузки с сайтов: [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), а также список созданный самим пользователем. Включает в себя функции управления правилами iptables, списками ipset и парсер списка блокировок. Доступны конфигурации с использованием доменных имен (dnsmasq) и IP адресов (включая диапазоны CIDR).
|
||||
|
||||
Данная версия решения предназначена для OpenWrt. В отличии от других решений подобного типа не имеет жёсткой интеграции и привязки исключительно к OpenWrt (при этом поддерживает конфигурацию через UCI, а также имеется функциональное LuCI-приложение) и может быть перенесено на другие Linux. Вся конфигурация находится в одном месте, все операции выполняются с помощью одного скрипта (`/usr/bin/ruantiblock`), широкие возможности конфигурации. Помимо прочего, данное решение предлагает опции для собственной тонкой настройки оптимизации списка блокировок: группировка и суммаризация IP, объединение поддоменов, фильтрация записей по шаблонам...
|
||||
|
||||
@@ -12,32 +12,32 @@ Ruantiblock - решение для обхода блокировок (при п
|
||||
|
||||
## Режимы прокси
|
||||
|
||||
Доступны два режима проксификации трафика: с использованием сети [Tor](https://openwrt.org/docs/guide-user/services/tor/client) или клиентского VPN соединения ([OpenVPN](https://openwrt.org/docs/guide-user/services/vpn/openvpn/client-luci), [PPtP](https://openwrt.org/docs/guide-user/services/vpn/pptp/client), [WireGuard](https://openwrt.org/docs/guide-user/services/vpn/wireguard/client)). Режим прокси определяется парметром `ruantiblock.config.proxy_mode`. `1` - Tor, `2` - VPN. Включение VPN конфигурации:
|
||||
Доступны три режима проксификации трафика: с использованием сети [Tor](https://openwrt.org/docs/guide-user/services/tor/client), клиентского VPN соединения ([OpenVPN](https://openwrt.org/docs/guide-user/services/vpn/openvpn/client-luci), [PPtP](https://openwrt.org/docs/guide-user/services/vpn/pptp/client), [WireGuard](https://openwrt.org/docs/guide-user/services/vpn/wireguard/client)) и прозрачного прокси (например, [Shadowsocks + ss-redir](https://openwrt.org/docs/guide-user/services/proxy/shadowsocks), [Redsocks](https://github.com/darkk/redsocks) + Socks-прокси и пр.). Режим прокси определяется парметром `ruantiblock.config.proxy_mode`. `1` - Tor, `2` - VPN, `3` - прозрачный прокси. Включение режима в UCI (на примере VPN):
|
||||
|
||||
uci set ruantiblock.config.proxy_mode="2"
|
||||
uci commit ruantiblock
|
||||
|
||||
Данный параметр влияет, в первую очередь, на процесс создания правил iptables. В Tor конфигурации правила создаются в цепочке `nat`, при VPN конфигурации - в `mangle`. Соответственно, и удаление правил при выключении ruantiblock зависит от выбранного типа прокси. Поэтому, перед изменением этого параметра следует отключить ruantiblock (`/usr/bin/ruantiblock stop`), для корректного удаления правил предыдущей конфигурации.
|
||||
Данный параметр влияет, в первую очередь, на процесс создания правил iptables. В конфигурациях Tor и прозрачного прокси правила создаются в цепочке `nat`, при VPN конфигурации - в `mangle`. Соответственно, и удаление правил при выключении ruantiblock зависит от выбранного типа прокси. Поэтому, перед изменением данного параметра следует отключить ruantiblock (`/usr/bin/ruantiblock stop`), для корректного удаления правил предыдущей конфигурации!
|
||||
|
||||
|
||||
## Режимы обновления блэклиста и модули-парсеры
|
||||
|
||||
Доступны следующие режимы обновления блэклиста:
|
||||
Доступны следующие режимы обновления блэклиста (первые два не требуют установки модуля-парсера блэклиста):
|
||||
|
||||
ruantiblock-fqdn
|
||||
ruantiblock-ip
|
||||
zapret-info-fqdn
|
||||
zapret-info-ip
|
||||
rublacklist-fqdn
|
||||
rublacklist-ip
|
||||
antifilter-ip
|
||||
ruantiblock-fqdn
|
||||
ruantiblock-ip
|
||||
|
||||
Так можно задать в UCI:
|
||||
|
||||
uci set ruantiblock.config.bllist_preset="zapret-info-fqdn"
|
||||
uci commit ruantiblock
|
||||
|
||||
По сути, режим обновления блэклиста является комбинацией источника и типа обхода блокировок (`ip`, `fqdn`).
|
||||
По сути, режим обновления блэклиста является комбинацией источника и типа обхода блокировок (`ip`, `fqdn`). Первые два режима обновления блэклиста (`ruantiblock-fqdn`, `ruantiblock-ip`) не требуют установки модуля-парсера (см. далее).
|
||||
|
||||
**Типы обхода блокировок:**
|
||||
|
||||
@@ -49,24 +49,26 @@ Ruantiblock - решение для обхода блокировок (при п
|
||||
|
||||
**Источники блэклиста:**
|
||||
|
||||
`ruantiblock` - [https://github.com/gSpotx2f/ruantiblock_blacklist](https://github.com/gSpotx2f/ruantiblock_blacklist). Заранее созданные конфиги для ipset и dnsmasq. Загружаются уже готовые файлы, без выполнения каких-либо оптимизаций и обработок. Обновляется раз в сутки. Этот источник даёт блэклист для стандартной конфигурации ruantiblock и ваш роутер не выполняет никакой тяжёлой работы по обработке данных. Включен по умолчанию и не требует установки модуля-парсера.
|
||||
Можно [организовать собственный источник](https://github.com/gSpotx2f/ruantiblock_blacklist) заранее подготовленных конфигов со своими настройками, которые формируются вне роутера (например, на выделенном сервере или ПК и загружаются на GitHub). Это может быть полезно при наличии нескольких роутеров (использующих данное решение для обхода блокировок), где формирование конфигов ipset и dnsmasq происходит один раз на одной машине, а другие получают уже готовые сформированные конфиги (не выполняя повторно одну и ту же работу).
|
||||
|
||||
`zapret-info` - [https://github.com/zapret-info/z-i](https://github.com/zapret-info/z-i). Чистый реестр от РКН в исходном виде. Содержит много лишних данных (всякие статьи, основания, судебные решения и пр. для каждой записи), что увеличивает размер файла (к тому же в кодировке CP1251). Очень надёжный источник, сбоев практически не бывает, расположен на GitHub (есть зеркала).
|
||||
|
||||
`rublacklist` - [https://rublacklist.net](https://rublacklist.net). Реестр от Роскомсвободы. Имеет удобный API, но иногда бывают проблемы с надёжностью (недоступность сайта и пр).
|
||||
|
||||
`antifilter` - [https://antifilter.download](https://antifilter.download). Этот источник для устройств, которым не хватает оперативной памяти для полных списков блокировок. Доступен только вариант `ip` - оптимизированный список IP адресов (все адреса приведены к маске /24). Очень компактен в размере, но покрывает большое количество лишних IP адресов в диапазонах.
|
||||
|
||||
`ruantiblock` - [https://github.com/gSpotx2f/ruantiblock_blacklist](https://github.com/gSpotx2f/ruantiblock_blacklist). Заранее созданные конфиги для ipset и dnsmasq. Загружаются уже готовые файлы, без выполнения каких-либо оптимизаций и обработок. Обновляется раз в сутки. Этот источник даёт блэклист для стандартной конфигурации ruantiblock и ваш роутер не выполняет никакой тяжёлой работы по обработке данных.
|
||||
Можно [организовать собственный источник](https://github.com/gSpotx2f/ruantiblock_blacklist) заранее подготовленных конфигов со своими настройками, которые формируются вне роутера (например, на выделенном сервере или ПК и загружаются на GitHub). Это может быть полезно при наличии нескольких роутеров (использующих данное решение для обхода блокировок), где формирование конфигов ipset и dnsmasq происходит один раз на одной машине, а другие получают уже готовые сформированные конфиги (не выполняя повторно одну и ту же работу).
|
||||
|
||||
**Модули-парсеры:**
|
||||
|
||||
`/usr/bin/ruab_parser.lua` - стандартный модуль на Lua. Работает быстро, когда достаточно свободной оперативной памяти.
|
||||
Установка модуля необходима для самостоятельного формирования списка блокировок силами роутера. Модуль выкачивает данные из источника, выполняет их преобразование (включая оптимизации) в необходимый для работы формат. Модуль требуется для всех источников блэклиста (`zapret-info`, `rublacklist`, `antifilter`), кроме `ruantiblock`, который предоставляет уже готовые и оптимизированные конфиги.
|
||||
|
||||
`/usr/bin/ruab_parser.lua` - стандартный модуль, написан на Lua. Работает быстро, когда достаточно свободной оперативной памяти. [Установка](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Lua%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C).
|
||||
|
||||
`/usr/bin/ruab_parser.py` - дополнительный модуль, написан на Python3 и не имеет проблем с кириллицей, кодировкой CP1251 (`zapret-info`) и пр. Очень стабильный, аккуратно раcходует память. Недостаток лишь в том, что нужно ставить Python3. [Установка](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/Python%E2%80%91%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C).
|
||||
|
||||
Модуль можно задать в UCI:
|
||||
Установленный модуль можно включить в UCI:
|
||||
|
||||
uci set ruantiblock.config.bllist_module="/usr/bin/ruab_parser.py"
|
||||
uci set ruantiblock.config.bllist_module="/usr/bin/ruab_parser.lua"
|
||||
uci commit ruantiblock
|
||||
|
||||
|
||||
@@ -76,7 +78,7 @@ Ruantiblock - решение для обхода блокировок (при п
|
||||
|
||||
+ **Проксификация трафика локальных клиентов (`PROXY_LOCAL_CLIENTS=1`):**
|
||||
|
||||
Эта опция включает обработку трафика локальных приложений роутера в ruantiblock. Т.е. различные сетевые утилиты установленные на самом роутере ходят на заблокированные сайты через Tor или VPN. Можно отключить если нет необходимости:
|
||||
Эта опция включает обработку трафика локальных приложений роутера в ruantiblock. Т.е. различные сетевые утилиты установленные на самом роутере ходят на заблокированные сайты через Tor или VPN. Отключить:
|
||||
|
||||
uci set ruantiblock.config.proxy_local_clients="0"
|
||||
|
||||
@@ -112,11 +114,23 @@ Ruantiblock - решение для обхода блокировок (при п
|
||||
|
||||
uci set ruantiblock.config.enable_logging="0"
|
||||
|
||||
+ **Отправлять в Tor UDP-трафик (`TOR_ALLOW_UDP=1`):**
|
||||
+ **Отправлять в Tor UDP-трафик (`TOR_ALLOW_UDP=0`):**
|
||||
|
||||
В режиме проксификации трафика с использованием Tor, UDP-трафик также отправляется в Tor. При отключении этой опции в Tor попадает только TCP, а UDP идёт напрямую, без обхода блокировок. Отключить:
|
||||
В режиме проксификации трафика с использованием Tor, UDP-трафик также отправляется в Tor. При отключении этой опции в Tor попадает только TCP, а UDP идёт напрямую, без обхода блокировок. Включить:
|
||||
|
||||
uci set ruantiblock.config.tor_allow_udp="0"
|
||||
uci set ruantiblock.config.tor_allow_udp="1"
|
||||
|
||||
+ **UDP-порт прозрачного прокси (`T_PROXY_PORT_UDP=10053`):**
|
||||
|
||||
В режиме проксификации трафика с использованием прозрачного прокси, определяет порт на который может перенаправляться UDP-трафик. Прозрачный прокси должен поддерживать UDP! Изменить порт:
|
||||
|
||||
uci set ruantiblock.config.t_proxy_port_udp="10053"
|
||||
|
||||
+ **Отправлять в прозрачный прокси UDP-трафик (`T_PROXY_ALLOW_UDP=0`):**
|
||||
|
||||
В режиме проксификации трафика с использованием прозрачного прокси, UDP-трафик также отправляется в прокси. Прозрачный прокси должен поддерживать UDP! При отключении этой опции в прокси попадает только TCP, а UDP идёт напрямую, без обхода блокировок. Включить:
|
||||
|
||||
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`):**
|
||||
|
||||
|
||||
+3
-3
@@ -21,9 +21,9 @@ OpenWrt 21.02:
|
||||
|
||||
OpenWrt >= 22.03:
|
||||
|
||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_0.9.5-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-py_0.9.5-0_all.ipk
|
||||
opkg install /tmp/ruantiblock-mod-py_0.9.5-0_all.ipk
|
||||
rm /tmp/ruantiblock-mod-py_0.9.5-0_all.ipk
|
||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-py_0.9.6-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-py_0.9.6-0_all.ipk
|
||||
opkg install /tmp/ruantiblock-mod-py_0.9.6-0_all.ipk
|
||||
rm /tmp/ruantiblock-mod-py_0.9.6-0_all.ipk
|
||||
|
||||
**3. Включение модуля:**
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
+ wget, ipset, kmod-ipt-ipset, dnsmasq-full
|
||||
+ Tor конфигурация: tor, tor-geoip
|
||||
+ Для VPN конфигурации необходимо заранее установить и настроить VPN-соединение
|
||||
+ Lua-модуль: lua, luasocket, luasec, luabitop, iptool-lua, idn-lua (https://raw.githubusercontent.com/haste/lua-idn/master/idn.lua)
|
||||
+ В конфигурации прозрачного прокси, также, нужно заранее установить и настроить все необходимые компоненты (например, ss-redir + shadowsocks и пр.)
|
||||
|
||||
|
||||
## Установка
|
||||
@@ -31,25 +31,62 @@
|
||||
|
||||
**2. После запуска скрипт задаст несколько вопросов по конфигурации:**
|
||||
|
||||
+ Режим прокси: Tor или VPN.
|
||||
+ Режим прокси: Tor, VPN или прозрачный прокси.
|
||||
+ Выбор списка блокировок: собственный список (только [записи пользователя](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)) или полный список блокировок из реестра РКН.
|
||||
+ Установка luci-app-ruantiblock. Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
|
||||
|
||||
При выборе Tor конфигурации скрипт устанавливает Tor (если не установлен), скачивает файл `torrc` из репозитория и устанавливает его вместо текущего конфига (старый конфиг бэкапится там же в `/etc/tor`). На конечном этапе добавляется задание для обновления блэклиста в cron: `0 3 */3 * * /usr/bin/ruantiblock update` (скорректируйте под свои требования).
|
||||
|
||||
**3. После установки**
|
||||
|
||||
В Tor конфигурации - проверьте работоспособность Tor:
|
||||
+ В Tor конфигурации - если ваш провайдер блокирует входные узлы Tor, то необходимо настроить мосты. Далее, пример конфигурации с маскировкой Tor-трафика с помощью утилиты obfs4proxy. Установка obfs4proxy:
|
||||
|
||||
/etc/init.d/tor start
|
||||
opkg install obfs4proxy
|
||||
|
||||
В VPN конфигурации - задайте имя VPN-интерфейса (для OpenVPN обычно `tun0`, для PPtP и WireGuard имя определяет сам пользователь при создании интерфейса):
|
||||
Получить адреса мостов можно на странице [https://bridges.torproject.org/options/](https://bridges.torproject.org/options/). Выберите вариант `obfs4` в выпадающем списке. Каждая строка является адресом входного узла. Нужно добавить их в конфиг Tor (`/etc/torrc`), предварив каждую директивой `Bridge`, включить использование мостов и подключить obfs4proxy. Пример записи в `/etc/torrc`:
|
||||
|
||||
uci set ruantiblock.config.if_vpn='tun0'
|
||||
uci commit ruantiblock
|
||||
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
|
||||
|
||||
_VPN-интерфейс можно задать и в веб-приложении: `Ruantiblock` -> `Настройки` -> `VPN` (вкладка `VPN` доступна только при выключенной службе Ruantiblock!)._
|
||||
После внесения изменений проверьте работоспособность Tor:
|
||||
|
||||
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
||||
/etc/init.d/tor start
|
||||
|
||||
+ В VPN конфигурации - задайте имя VPN-интерфейса (для OpenVPN обычно `tun0`, для PPtP и WireGuard имя определяет сам пользователь при создании интерфейса):
|
||||
|
||||
uci set ruantiblock.config.if_vpn='tun0'
|
||||
uci commit ruantiblock
|
||||
|
||||
_VPN-интерфейс можно задать и в веб-приложении: `Ruantiblock` -> `Настройки` -> `VPN` (вкладка `VPN` доступна только при выключенной службе Ruantiblock!)._
|
||||
|
||||
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
||||
|
||||
+ В конфигурации прозрачного прокси - задайте значение 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 не сможет подключиться к локальному сервису!
|
||||
|
||||
Создаваемые при обновлениях конфиги со списком блокировок 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).
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
|
||||
### Конфигурация с использованием только собственных записей.
|
||||
|
||||
Если отключить модуль-парсер:
|
||||
Если отключить режим обновления блэклиста:
|
||||
|
||||
uci set ruantiblock.config.bllist_module=""
|
||||
uci set ruantiblock.config.bllist_preset=""
|
||||
|
||||
то для создания правил ipset и dnsmasq будут применяться лишь записи пользователя, без загрузки списка блокировок. При этом, благодаря использованию dnsmasq, записи FQDN будут всегда актуальны (ибо резолвятся в IP адреса в момент запроса).
|
||||
то для создания правил ipset и dnsmasq будут применяться лишь записи пользователя, без загрузки списка блокировок. При этом, благодаря использованию dnsmasq, записи FQDN будут всегда актуальны (ибо резолвятся в IP адреса в момент запроса). Применение правил из списка пользователя происходит при выполнении команды обновления, как описано выше (`/usr/bin/ruantiblock update`). Также, можно удалить из cron задание для регулярного обновления блэклиста, ибо оно не имеет смысла при ручном формировании списка блокировок...
|
||||
|
||||
@@ -30,17 +30,36 @@
|
||||
|
||||
**2. Установка ruantiblock**
|
||||
|
||||
wget --no-check-certificate -O /tmp/ruantiblock_0.9.5-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_0.9.5-0_all.ipk
|
||||
opkg install /tmp/ruantiblock_0.9.5-0_all.ipk
|
||||
rm /tmp/ruantiblock_0.9.5-0_all.ipk
|
||||
wget --no-check-certificate -O /tmp/ruantiblock_0.9.6-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_0.9.6-0_all.ipk
|
||||
opkg install /tmp/ruantiblock_0.9.6-0_all.ipk
|
||||
rm /tmp/ruantiblock_0.9.6-0_all.ipk
|
||||
|
||||
|
||||
**3. Останов сервиса после автозапуска в конце процесса установки пакета**
|
||||
**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_0.9.6-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_0.9.6-0_all.ipk
|
||||
opkg install /tmp/luci-app-ruantiblock_0.9.6-0_all.ipk
|
||||
|
||||
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_0.9.6-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_0.9.6-0_all.ipk
|
||||
opkg install /tmp/luci-i18n-ruantiblock-ru_0.9.6-0_all.ipk
|
||||
|
||||
rm /tmp/luci-app-ruantiblock_0.9.6-0_all.ipk /tmp/luci-i18n-ruantiblock-ru_0.9.6-0_all.ipk
|
||||
|
||||
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
|
||||
/etc/init.d/rpcd restart
|
||||
/etc/init.d/uhttpd restart
|
||||
|
||||
|
||||
**4. Полное выключение сервиса перед изменением конфигурации**
|
||||
|
||||
Необходимо для корректного удаления правил iptables и других данных предыдущей конфигурации!
|
||||
|
||||
/usr/bin/ruantiblock destroy
|
||||
|
||||
|
||||
**4.1 Настройка Tor-конфигурации**
|
||||
**5.1 Настройка Tor-конфигурации**
|
||||
|
||||
+ Установка Tor:
|
||||
|
||||
@@ -61,6 +80,18 @@
|
||||
|
||||
_Получить 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'
|
||||
@@ -78,7 +109,7 @@
|
||||
/etc/init.d/tor restart
|
||||
|
||||
|
||||
**4.2 Настройка VPN-конфигурации**
|
||||
**5.2 Настройка VPN-конфигурации**
|
||||
|
||||
+ Включение режима VPN:
|
||||
|
||||
@@ -94,52 +125,63 @@
|
||||
В конфигурационном файле OpenVPN-клиента обязательно должен присутствовать параметр `route-noexec`, иначе OpenVPN добавит правило маршрутизации по умолчанию на свой интерфейс и весь трафик пойдет через него. Для PPtP и WireGuard необходимо отключить маршрут по умолчанию (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.defaultroute=0`) и использование получаемых DNS-серверов (`uci set network.ИМЯ_VPN_ИНТЕРФЕЙСА.peerdns=0`).
|
||||
|
||||
|
||||
**5. Установка модуля-парсера блэклиста (ruantiblock-mod-lua)**
|
||||
**4.3 Настройка конфигурации прозрачного прокси**
|
||||
|
||||
+ Установка зависимостей:
|
||||
+ Включение режима прозрачного прокси:
|
||||
|
||||
opkg install lua luasocket luasec luabitop
|
||||
wget --no-check-certificate -O /usr/lib/lua/iptool.lua https://raw.githubusercontent.com/gSpotx2f/iptool-lua/master/5.1/iptool.lua
|
||||
wget --no-check-certificate -O /usr/lib/lua/idn.lua https://raw.githubusercontent.com/haste/lua-idn/master/idn.lua
|
||||
uci set ruantiblock.config.proxy_mode='3'
|
||||
|
||||
+ Установка модуля:
|
||||
+ Задайте значение TCP-порта на котором принимает соединения прозрачный прокси:
|
||||
|
||||
wget --no-check-certificate -O /tmp/ruantiblock-mod-lua_0.9.5-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock-mod-lua_0.9.5-0_all.ipk
|
||||
opkg install /tmp/ruantiblock-mod-lua_0.9.5-0_all.ipk
|
||||
rm /tmp/ruantiblock-mod-lua_0.9.5-0_all.ipk
|
||||
|
||||
uci set ruantiblock.config.bllist_module="/usr/libexec/ruantiblock/ruab_parser.lua"
|
||||
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`, необходимый для редиректа локального трафика роутера).
|
||||
|
||||
**6. Установка luci-app-ruantiblock**
|
||||
+ **На примере Redsocks:** в конфигурационном файле (`/etc/redsocks.conf`) параметр `local_port` в блоке `redsocks`. Также, прозрачный прокси должен принимать входящие подключения на LAN-адресе роутера (в примере `192.168.0.1`) или на всех адресах (`0.0.0.0`), но не на localhost (`127.0.0.1`)!
|
||||
|
||||
Приложение для LuCI (веб-интерфейса OpenWrt). [Подробнее тут](https://github.com/gSpotx2f/ruantiblock_openwrt/wiki/luci%E2%80%91app%E2%80%91ruantiblock).
|
||||
redsocks {
|
||||
...
|
||||
local_ip = 192.168.0.1;
|
||||
local_port = 1100;
|
||||
...
|
||||
}
|
||||
|
||||
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_0.9.5-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_0.9.5-0_all.ipk
|
||||
opkg install /tmp/luci-app-ruantiblock_0.9.5-0_all.ipk
|
||||
Если Redsocks подключен к локальному сервису, т.е. работающему на роутере, то необходимо в настройках ruantiblock отключить проксификацию трафика локальных приложений роутера:
|
||||
|
||||
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_0.9.5-0_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_0.9.5-0_all.ipk
|
||||
opkg install /tmp/luci-i18n-ruantiblock-ru_0.9.5-0_all.ipk
|
||||
uci set ruantiblock.config.proxy_local_clients="0"
|
||||
uci commit ruantiblock
|
||||
|
||||
rm /tmp/luci-app-ruantiblock_0.9.5-0_all.ipk /tmp/luci-i18n-ruantiblock-ru_0.9.5-0_all.ipk
|
||||
иначе 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 set commit ruantiblock
|
||||
|
||||
rm -f /tmp/luci-modulecache/* /tmp/luci-indexcache*
|
||||
/etc/init.d/rpcd restart
|
||||
/etc/init.d/uhttpd restart
|
||||
|
||||
**7. Включение запуска ruantiblock при старте системы**
|
||||
|
||||
/etc/init.d/ruantiblock enable
|
||||
|
||||
**4. Добавление задания в cron для регулярного обновления блэклиста**
|
||||
|
||||
**8. Добавление задания в cron для регулярного обновления блэклиста**
|
||||
|
||||
/etc/init.d/cron enable
|
||||
echo "0 3 */3 * * /usr/bin/ruantiblock update" >> /etc/crontabs/root
|
||||
/etc/init.d/cron restart
|
||||
|
||||
|
||||
**9. После установки**
|
||||
**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. После установки**
|
||||
|
||||
Создаваемые при обновлениях конфиги со списком блокировок 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).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user