ByeDPI + Redsocks на OpenWRT: дарим свободу локальной сети на дровах (на примере ASUS RT-N12 ROM/ОЗУ: 8/32 Мб)

от автора

Решение проблемы обхода блокировок для всех устройств в домашней сети зачастую упирается в дешевый, древний, но исправно выполняющий свое предназначение роутер. В этой статье я расскажу, как настроить связку ByeDPI и Redsocks на роутере с OpenWRT, даже если ваш девайс далеко не топ по характеристикам.

Однако эта информация будет полезна и обладателям более современных роутеров — метод довольно универсален и относительно несложен в настройке.

Справка: основные методы обхода DPI

Прежде чем перейти к основной части, коротко расскажу о существующих методах обхода систем DPI (Deep Packet Inspection), которые используются для фильтрации интернет-трафика.

  • GoodbyeDPI — один из наиболее популярных инструментов, разработанный для обхода DPI в Windows. Он изменяет или фрагментирует пакеты данных так, чтобы их было трудно корректно распознать.

  • Zapret — еще одно решение, наиболее часто используемое для роутеров под OpenWRT, также маскирующее или фрагментирующее пакеты.
    Из плюсов: присутствует автоматический поиск рабочей конфигурации для обхода, который, правда, далеко не всегда работает.
    Из минусов: требует установки кучи зависимостей и довольно сложен в конфигурировании.

  • ByeDPI — это решение для Linux, под различные архитектуры, на основе которого созданы приложения под Андроид.

Зачем нужны ByeDPI и Redsocks?

ByeDPI — это утилита (не путать с приложением под Андроид) для обхода DPI (Deep Packet Inspection), которая изменяет сетевые пакеты таким образом, чтобы они не распознавались системами фильтрации трафика.
Но ByeDPI поднимает только SOCKS5 сервер, и чтобы пустить трафик через него, необходимо настроить прокси в каждом конкретном приложении.
К сожалению, VPN туннель реализован только в приложении ByeDPI под Андроид (и его более быстроразвивающемся на данный момент форке ByeByeDPI).

Redsocks — это прокси-инструмент, который перенаправляет трафик через SOCKS или HTTP прокси, даже если приложение не поддерживает настройку прокси напрямую.

Сочетание этих двух инструментов на роутере позволяет обходить блокировки на уровне роутера, обеспечивая свободу в домашней сети без необходимости установки ПО на каждом устройстве.

Установка OpenWRT на ASUS ASUS RT-N12

Здесь кратко опишу процесс усановки OpenWRT на роутер ASUS RT-N12 VP B1, если на вашем роутере уже стоит OpenWRT можете смело переходить к следующему разделу.

Вообще установка OpenWRT на роутер ASUS RT-N12 довольно тривиальна и подробно описана здесь и здесь, подсвечу лишь несколько моментов:

  • У меня последняя прошивка OpenWRT 23.05.5 работала нестабильно из-за недостатка памяти, также есть предупреждение на официальном сайте что драйвер Wi-Fi в ней работает некорректно;

  • Но замечательно заработала прошивка 19.07.4 +/- mwan3 в которую добавлен проприетарный Wi-Fi драйвер.

  • Правда на этой прошивке отказался работать пакет ByeDPI для OpenWRT 23.05.5, но заработал для OpenWRT 21.05.5 (об этом позже).

Способ 1:

  1. Для начала нужно скачать и установить утилиту ASUS Firmware Restoration 2.1.0.3, но можно попробовать и без неё, просто через браузер заходим на 192.168.1.1, там можно будет прошить или сбросить NVRAM.

  2. Идем в свойства сетевой карты и вбиваем вручную адреса: IP-адрес 192.168.1.10, маска подсети 255.255.255.0, основной шлюз 192.168.1.1

  3. Настоятельно рекомендуется отключить лишние сетевые адаптеры, в особенности виртуальные (VPN, NAT от VMWare и т.п.)

  4. Выключаем роутер кнопкой

  5. Вставляем сетевой кабель в любой LAN порт

  6. Зажимаем кнопку Reset (рядом с кнопкой питания) 5-10 секунд

  7. Удерживая кнопку нажатой, включаем роутер

  8. Когда индикатор питания начнет быстро мигать — кнопку Reset можно отпустить. Ваш роутер в режиме восстановления

  9. Открываем утилиту, выбираем файл прошивки и прошиваем

Но, у меня ASUS Firmware Restoration категорически отказывалась находить роутер, а также в режиме восстановления по адресу 192.168.1.1 ничего не было, так что пришлось использовать второй способ, для которого нужно включить доступ по SSH в настройках роутера.

Способ 2:

  1. Закидываем файл прошивки 19.07.4 +/- mwan3 в папку tmp через консоль (scp) или с помощью программы WinSCP

    В терминале в папке с скачанным и разархивированным файлом прошивки выполняем команды:

scp openwrt-19.07.4-rt-n12vp_b1-mwan3-squashfs-sysupgrade.bin root@192.168.1.1:/tmp   ssh root@192.168.1.1    cd /tmp   mtd-unlock -d linux   mtd-write -i openwrt-19.07.4-rt-n12vp_b1-mwan3-squashfs-sysupgrade.bin -d linux rm openwrt-19.07.4-rt-n12vp_b1-mwan3-squashfs-sysupgrade.bin reboot
  1. Пробуем зайти в браузере на 192.168.1.1. Если открывается веб-интерфейс, то идем дальше, если нет, пытаемся сбросить настройки или прошить по способу 1.

  2. Далее заходим без пароля и включаем Wi-Fi во вкладке по этой инструкции.

Установка ByeDPI и Redsocks

Для начала нужно скачать подходящий для вашей версии OpenWRT пакет ByeDPI отсюда.

Закидываем его в папку tmp через консоль (scp) или с помощью программы WinSCP

scp .\byedpi_0.14.1-1_mipsel_24kc.ipk root@192.168.1.1:/tmp

Логинимся по SSH

ssh root@192.168.1.1

Если позволяет место, устанавливаем опциональные пакеты для более быстрой установки и проверки работы

opkg update opkg install coreutils-sort curl grep gzip

Пробуем установить Redsocks с помощью скрипта следующей командой:

cd /tmp && wget https://github.com/emonbhuiyan/Redsocks-OpenWRT/raw/main/install.sh && chmod +x install.sh && clear && sh install.sh && rm install.sh && clear

Если появилась ошибка wget error : SSL support not available, то нужно доустановить сертификаты командой:

opkg install libustream-mbedtls ca-bundle ca-certificates

Далее открываем конфиг Redsocks

vi /etc/redsocks.conf

И прописываем в нем следующие параметры

base {         log_debug = off;         log_info = on;         log = "syslog:local7";         daemon = on;         redirector = iptables; }  redsocks {         local_ip = 0.0.0.0;         local_port = 1337;         ip = 127.0.0.1;         port = 1080;         type = socks5; }

Перезпускаем и включаем сервис Redsocks

service redsocks restart
service redsocks enable

Устанавливаем ранее скачаный пакет ByeDPI

opkg install /tmp/byedpi_0.14.1-1_mipsel_24kc.ipk

Открываем конфиг ByeDPI

vi /etc/config/byedpi

Здесь прописываем найденную на просторах интернета и подходящую для вашего провайдера конфигурацию обхода блокировок. Протестировать конфигурацию, перед тем как применить её здесь, можно с помощью приложения ByeDPIAndroid на телефоне.

config byedpi 'main' option enabled 1  #if set, all other uci settings are ignored option cmd_opts '--hosts /etc/config/byedpi.hosts'

Опция —hosts указывает файл со списком (потенциально) заблокированных доменов, к которым будет применяться обход DPI. Этот файл можно создать через WinSCP или командой

vi /etc/config/byedpi.hosts

Содержимое файла примерно такое

####Список доменных имен для обхода ограничений  ### YouTube youtube.com youtu.be ggpht.com ytimg.com i.ytimg.com i9.ytimg.com yt3.ggpht.com l.google.com play.google.com youtubei.googleapis.com wide-youtube.l.google.com nhacmp3youtube.com googleusercontent.com yt3.googleusercontent.com googleapis.com googlevideo.com youtubei.googleapis.com 1e100.net  ###Google google.com mtalk.google.com manifests.googlevideo.com googleapis.com youtube.googleapis.com gmailpostmastertools.googleapis.com NS1.google.com NS2.google.com NS3.google.com NS4.google.com play.google.com gstatic.com googleads.g.doubleclick.net  ###Новостные и погодные сервисы msnbc.com foxnews.com cnn.com dw.com bbc.com bbc.com/weather bbc.co.uk bbc.co.uk/weather static.files.bbci.co.uk mybbc-analytics.files.bbci.co.uk weather.files.bbci.co.uk nav.files.bbci.co.uk m.files.bbci.co.uk inforesist.org france24.com accuweather.com meteoblue.com open-meteo.com openweathermap.org weatherstack.com worldweatheronline.com wunderground.com currenttime.tv  ###Мессенджеры whatsapp.com whatsapp.net static.whatsapp.net g.whatsapp.net time.android.com web.whatsapp.com signal.org getsession.org amazon.com amazonaws.com  ###Социальные сети facebook.com x.com twitter.com instagram.com  ###Торрент-трекеры rutracker.org rutor.info rutor.is mega-tor.org kinozal.tv #nnm-club.me #nnm-club.ws #tfile.me #tfile-home.org #tfile1.cc #megatfile.cc #megapeer.org #megapeer.ru tapochek.net #tparser.org #tparser.me rustorka.com #uniongang.tv fast-torrent.ru  ###Каталоги медиаконтента для программ  rezka.ag hdrezka.ag hdrezka.me filmix.co filmix.cc seasonvar.ru  ###Книги lib.rus.ec flibusta.is flibs.me flisland.net flibusta.site  ###Разное 7-zip.org edem.tv msfree.su 4pda.to protonvpn.com proton.me drive.proton.me tuta.com whois.domaintools.com dnsleaktest.com ipleak.net github.com objects.githubusercontent.com openvpn.net community.openvpn.net openwrt.org lastpass.com delinea.com dnscheck.tools cloudflare.com cloudflare-dns.com 1dot1dot1dot1.cloudflare-dns.com controld.com umbrella.com cisco.com quad9.net deb.oxen.io ntc.party akamaitechnologies.com deploy.static.akamaitechnologies.com akamaistream.net AX0.AKAMAISTREAM.NET AX1.AKAMAISTREAM.NET AX2.AKAMAISTREAM.NET AX3.AKAMAISTREAM.NET NS2-32.AKAMAISTREAM.NET NS3-32.AKAMAISTREAM.NET NS6-32.AKAMAISTREAM.NET P5.AKAMAISTREAM.NET P6.AKAMAISTREAM.NET P7.AKAMAISTREAM.NET P8.AKAMAISTREAM.NET 149.34.0.0/16 cloudfront.net datapacket.com wholesale.adamo.es  ###Ubuntu и форки ubuntu.com archive.ubuntu.com linuxmint.com packages.linuxmint.com tuxedocomputers.com os.tuxedocomputers.com mirror.init7.net kde.org ubuntucinnamon.org 23.192.0.0/11 23.128.64.0/23  ###Проверка Tor check.torproject.org

Перезпускаем и включаем сервис ByeDPI

service byedpi restart
service byedpi enable

Проверить результат можно с помощью тестирования скорости загрузки домена googlevideo.com

curl --connect-to ::speedtest.selectel.ru https://manifest.googlevideo.com/100MB -k -o/dev/null


ссылка на оригинал статьи https://habr.com/ru/articles/856312/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *