Точечный обход блокировок по доменам на роутере с OpenWrt

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Статья о том, как настроить точечный обход блокировок по нужным доменам на роутере с OpenWrt. На мой взгляд, это самый удобный способ, который можно реализовать сейчас.

Я предоставляю уже готовый конфиг с самыми востребованными доменами, который можно дополнять.

Настроить роутер можно с помощью скрипта. Если вдруг не заведётся сразу, то другим скриптом можно найти, что не работает. Настройка с помощью Ansible никуда не делась, только модифицировалась и стала лучше.

Помимо инструкций по настройке туннелей Wireguard и OpenVPN, написал инструкцию по использованию технологий, которые помогут в обходе блокировок по протоколу: Shadowsocks, VLESS и прочими.

Эта инструкция написана под свежую OpenWrt 23.05 и скрипт работает только с ней. Но на предыдущих версиях можно также настроить всё вручную, либо с помощью Ansible. На них всё работает, но есть свои особенности, которые описаны в первой статье.

Видеоверсия

Зачем обходить блокировки точечно

Думаю, в 2023 году большинство людей сами могут ответить на этот вопрос. Но список лишним не будет:

  • Есть российские сайты, которые блокируют доступ с нероссийских IP-адресов. Уверен, вы с этим сталкивались

  • Высокий Latency, время ожидания открытия ресурса. Если вы, например, находитесь в Москве, а сервер с сайтом в Подмосковье, то у вас короткий маршрут. Через VPN делается петля через другую страну. Это влияет на скорость загрузки ресурса

  • Сайты определяют вашу локацию по стране, где расположен VPN-сервер. Например, гугл вас будет приветствовать по-немецки. Нужно будет переключать локацию вручную, чтоб делать поиск по российским ресурсам

  • Если у вас не быстрый VPN-сервер, то все ваши гигабиты по оптике превращаются в тыкву. VPN создаёт бутылочное горлышко

  • Юрисдикция другой страны. Например, у некоторых правообладателей поставлены на поток обнаружение раздач нелегальных копий их контента. Система обнаружения отработает, и владелец VPN-сервера получит автоматическую абузу на сервер и вытекающие из неё проблемы

  • Нагрузка на сам VPN-сервер. Об мало задумываются. Точечный обход блокировок - жирный плюс для VPN-сервера

Проблемы готовых списков IP-адресов

Главная проблема - это отсутствие необходимого вам ресурса в подготовленных списках. Как это решать? Можно резолвить домены, получать IP-адреса ресурса и заносить их в свой ещё один список. Со временем эти IP-адреса меняются и придётся делать по новой.

Antifilter постарались решить эту проблемы с помощью сommunity списка. Чтоб каждый мог добавить нужный ему сайт. Есть список доменов и список IP-адресов, которые автоматически добавляются через резолвинг доменов. Крутая идея, но многих доменов нет, а их добавление не факт, что будет одобрено. Как я понимаю, резолвинг доменов в списки работает не из одной локации, но всё равно бывает так, что адрес, который резолвится у вас, будет отсутствовать в списках.

Вторая проблема касается непосредственно OpenWrt. В 22ой версии совершился переход от iptables к nftables. Nftables sets потребляет больше памяти, чем ipset. Большие списки IP-адресов на роутерах с небольшим количеством оперативной памяти стали выдавать ошибку:

netlink: Error: Could not process rule: No buffer space available
The rendered ruleset contains errors, not doing firewall restart.

Это означает переполнение памяти. Если эта ошибка появляется только при перезагрузке фаервола (тут срабатывает атомарность nftables, существующие списки не удаляются сразу, а ждут полного добавления новых из файла), то помогает "обнуление" списков перед загрузкой новых nft flush ruleset.

Моя реализация списка доменов

Каждому по отдельности вытаскивать самостоятельно домены заблокированных сервисов довольно непродуктивно для сообщества. Поэтому я сформировал свои списки доменов. Да, именно спискИ.

На данный момент есть три списка:

  • Россия, для людей внутри страны. Тут всё понятно думаю

  • Россия, для людей извне. Список из сайтов, которые пускают к себе только с российских IP-адресов

  • Украина. Тут просто берётся список с ресурса https://uablacklist.net/

Раньше приходилось конвертировать списки в конфиг dnsmasq прямо на роутере. Я сделал уже готовый конфиг для dnsmasq и получились такие форматы:

  • RAW - это просто списки доменов

  • Dnsmasq ipset - готовый конфиг для ipset+iptables (Для OpenWrt 21ой версии и более ранних)

  • Dnsmasq nfset - готовый конфиг для nfset+nftables (Для OpenWrt начиная с 22ой версии)

Сейчас они лежат просто в репозитории на GitHub:
https://github.com/itdoginfo/allow-domains

Более подробно почитать о том, как можно добавить свои домены, как формируются списки и т.д. можно в README репозитория.

Ну а если вы думаете, что ваш домен точно нужен только вам или вы не хотите показывать его другим

Источник: https://habr.com/ru/articles/767464/


Интересные статьи

Интересные статьи

Установка клиента Outline (shadowsocks) одним скриптомПонадобится любая версия OpenWRT (проверялось на 19.07, 21.02, 22.03 и 23.05-rc1) и установленные пакеты kmod-tun и ip-full, а так же настроенный ...
Ежедневные изменения, происходящие в мире, сейчас тревожат всех, они касаются разных сфер нашей жизни, но не каждый человек может этим с кем-то поделиться и открыто выразить свои чувства относительно ...
10 ноября компания Intel пропатчила уязвимость CVE-2020-8705 в механизме Intel Boot Guard, которая позволяет обходить ключевые методы защиты компьютера, если он находится в режиме сна. Уя...
Никита Проскурин, СЕО Rummy Games Studio, компании которая занимается разработкой пошаговой стратегической игры Saturated Outer Space поделился личными ссадинами, шишками и любовно собран...
IEEE P802.3ba, стандарт для передачи данных по 100-гигабитным каналам Ethernet (100GbE), разрабатывался в период с 2007 по 2010 год [3], но получил широкое распространение только в 2018 [5]. Поче...