-
Notifications
You must be signed in to change notification settings - Fork 5
Установка в opt с использованием Entware. VPN конфигурация
Эта конфигурация предполагает использование VPN для доступа к заблокированным хостам. Ruantiblock и необходимые зависимости будут установлены в дерево /opt. Перед началом убедитесь, что на роутере настроен и работает VPN-клиент и развёрнут репозиторий Entware.
- Прошивка с ipset (любые сборки Padavan, кроме nano)
- Развёрнутый репозиторий Entware
- Настроенный и работающий VPN-клиент
- Конверторы iconv и idn для преобразования кириллических доменов в punycode
- Lua, luasocket, ltn12, luasec
1. Установка пакетов из репозитория Entware:
opkg install lua luasocket luasec idn iconv
2. Модуль ltn12.lua необходимо скачать в /opt/lib/lua
:
mkdir -p /opt/lib/lua /opt/etc/ruantiblock
wget --no-check-certificate -O /opt/lib/lua/ltn12.lua https://raw.githubusercontent.com/diegonehab/luasocket/master/src/ltn12.lua
3. Скрипт ruantiblock.sh и модули необходимо скачать в /opt/usr/bin
и разрешить выполнение:
mkdir -p /opt/usr/bin
wget --no-check-certificate -O /opt/usr/bin/ruantiblock.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/usr/bin/ruantiblock.sh
wget --no-check-certificate -O /opt/usr/bin/ruab_parser.lua https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/usr/bin/ruab_parser.lua
wget --no-check-certificate -O /opt/usr/bin/ruab_parser.sh https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/usr/bin/ruab_parser.sh
wget --no-check-certificate -O /opt/etc/ruantiblock/ruantiblock.conf https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/ruantiblock/ruantiblock_vpn_opt.conf
chmod +x /opt/usr/bin/ruantiblock.sh
chmod +x /opt/usr/bin/ruab*
4. Также стартовый скрипт S40ruantiblock необходимо скачать в /opt/etc/init.d
и разрешить выполнение:
wget --no-check-certificate -O /opt/etc/init.d/S40ruantiblock https://raw.githubusercontent.com/gSpotx2f/ruantiblock/master/opt/etc/init.d/S40ruantiblock
chmod +x /opt/etc/init.d/S40ruantiblock
Файлы, создаваемые скриптом в процессе работы, будут располагаться в директории /opt/var/ruantiblock/
(будет создана автоматически при первом запуске скрипта).
(параметры для VPN взяты с https://github.com/DontBeAPadavan/rublock-via-vpn/wiki)
1. В веб-интерфейсе роутера на странице Персонализация -> Скрипты
в поле Выполнить после полного запуска маршрутизатора:
(или в /etc/storage/started_script.sh
) раскомментируйте следующие строки:
modprobe ip_set
modprobe ip_set_hash_ip
modprobe ip_set_hash_net
modprobe ip_set_list_set
modprobe xt_set
2. На странице Персонализация -> Скрипты
в поле Выполнить после перезапуска правил брандмауэра:
(или в /etc/storage/post_iptables_script.sh
) добавьте следующие строки:
RUAB="/opt/usr/bin/ruantiblock.sh"
[ -x "$RUAB" ] && $RUAB renew-ipt
3. На странице LAN -> DHCP Server
в поле Пользовательский файл конфигурации "dnsmasq.conf"
(или в /etc/storage/dnsmasq/dnsmasq.conf
) добавьте следующую строку:
conf-file=/opt/var/ruantiblock/ruantiblock.dnsmasq
4. На странице VPN клиент
в поле Расширенная конфигурация OpenVPN
(или в /etc/storage/openvpn/client
) допишите следующую команду:
route-noexec
5. Параметр Направлять весь трафик через VPN интерфейс?
должен быть выставлен в нет
.
6. Содержимое поля Выполнить скрипт после подключения/отключения к VPN-серверу:
(или /etc/storage/vpnc_server_script.sh
) приведите к следующему виду:
#!/bin/sh
func_ipup()
{
echo 0 > /proc/sys/net/ipv4/conf/$IFNAME/rp_filter
ip route flush table 1
ip rule del table 1
ip rule add fwmark 1 table 1 priority 1000
ip route add default via $IPREMOTE table 1
return 0
}
func_ipdown()
{
return 0
}
logger -t vpnc-script "$IFNAME $1"
case "$1" in
up)
func_ipup
;;
down)
func_ipdown
;;
esac
7. Можно добавить задание для обновления в Cron (прим.: обновление списка каждый 5-й день в 05:00). На странице Администрирование -> Сервисы
включите Cron (Сервис Cron (планировщик)?
) и в поле Задания планировщика (Crontab):
(или в /etc/storage/cron/crontabs/admin
) добавьте следующую строку:
0 5 */5 * * /opt/usr/bin/ruantiblock.sh update
По завершении настройки перезагрузите роутер и выполните обновление:
/opt/usr/bin/ruantiblock.sh update
Или можно без перезагрузки роутера. Просто выполните в консоли:
modprobe ip_set
modprobe ip_set_hash_ip
modprobe ip_set_hash_net
modprobe ip_set_list_set
modprobe xt_set
/sbin/restart_vpn_client
/opt/etc/init.d/S40ruantiblock start
/opt/usr/bin/ruantiblock.sh update
После всего выше проделанного, попробуйте зайти на какой-нибудь заблокированный сайт с Вашего ПК или др. устройства в домашней сети.
Можно проверить идут ли пакеты через правила iptables (т.е. работает ли фильтрация правильно) в выводе статуса ruantiblock в консоли:
/opt/usr/bin/ruantiblock.sh status
Блок Iptables rules:
содержит счётчики правил для ip-адресов, CIDR-диапазонов и ip-адресов, которые добавляет dnsmasq. При запросе заблокированного сайта или ip соответствующие счётчики растут.