Лайфхаки

Маленькие, полезные хитрости

Обхода блокировок много не бывает на роутерах Keenetic

28.08.2023 в 13:32

Обхода блокировок много не бывает на роутерах Keenetic

Прошло почти 3 месяца с моей предыдущей статьи , я решил написать ещё одну. Она частично будет повторять мою предыдущую статью и статью , на основе которой она была написана. Исходя из различных комментариев на форумах и под этими статьями, я попытался в этой инструкции показать, как можно использовать различные обходы блокировок. Для большинства специалистов по этой теме ничего нового тут не будет. А для остальных, думаю, будет что почитать и чем заняться на досуге. Сильно страшного в этой инструкции, как и в предыдущих, ничего нет, нужно просто двигаться по ней, не пропуская ни одного шага.

Итак, зачем нужен этот обход блокировок:

    Для захода на необходимые сайты, которые блокируются в любой конкретной стране.

    Для «обмана» сайтов из других стран, которые не хотят работать для граждан конкретной страны.

С помощью действий, описанных в этой статье, Вы сможете подключить все устройства домашней сети (телефоны, смарт-тв, компьютеры и ноутбуки и другие «домашние» устройства) к данному обходу блокировок, а также подключаться к Вашему роутеру не из дома и пользоваться его обходом блокировок для доступа к любимым сайтам и приложениям. Кроме того, из обеих этих сетей (домашней и через подключение к роутеру), из любого браузера можно будет пользоваться onion-сайтами.

В данной статье будет описана работа телеграм-бота, написанного на python. С его помощью будет возможна установка данного обхода с небольшими предварительными настройками, а также работа со списками блокировок.

Для каждого конкретного обхода блокировок, мы будем устанавливать свой список сайтов и ip адресов для обхода. Изменять любой из этих списков будет достаточно легко (через телеграм бот, либо вручную, но тоже несложно), потому не пугайтесь. Частью функционала Вы можете и не пользоваться — Ваше право. Весь код будет в открытом доступе, информация о Ваших данных будет храниться на локальном роутере.

Статья разбита на 2 части. Первая для тех, кому «побыстрее чтоб работало», и для тех, кто хочет покопаться в настройках и понять как это всё работает. Так что не пугайтесь размеров статьи

Необходимо

    Любой Keenetic с поддержкой USB;

    Актуальная версия KeeneticOs (на данный момент 3.8.3);

    Flash-накопитель размером от 1Гб;

    Не побояться прочитать инструкцию;

    Около 30 минут времени, попивая кофе. Основная часть работы это будет время ожидания установки.

Подготовка Flash-накопителя, роутера и установка Entware

    Используем инструкцию на сайте Keenetic. Для корректной работы телеграм-бота нам необходим будет файл подкачки. Возможно на «старших» моделях роутера это будет и необязательно, тогда можно воспользоваться предыдущей инструкцией (без файла подкачки), но на моём Keenetic Extra 1711 файл подкачки необходим. На флешке необходимо создать два раздела, один Linux Swap, второй — Ext4. Можно вместо Ext4 использовать NTFS, но для этого необходимо будет установить соответствующий компонент . Для работы с разделами в данной статье используется   MiniTool Partition Wizard . Если что на всем известных сайтах можно найти взломанную версию, хотя, может, и бесплатная сработает.

    Для установки Entware воспользуемся инструкцией на официальном сайте Keenetic.

    Скачиваем mipsel .

    Вставляем отформатированную флешку в роутер.

    Заходим в раздел Управление – Приложения и выбираем нашу флешку.

    В настройках роутера предварительно должно быть включено приложение « Сервер SMB » для доступа к подключаемым USB-дискам по сети.

      Keenetic VPN для определенных сайтов. Настраиваем свой VPN-сервер на Keenetic

      Сервер позволяет подключить к другой сети, роутеру (все лучшие VPN для роутеров любой фирмы), или маршрутизатору Keenetic. Это обеспечивает возможность удаленного доступа через смартфон, планшет или с любого другого устройства, даже если пользователь находится не дома.

      Вход в настройки и включение DDNS

      Подключить к локальной сети Keenetic можно двумя способами:

      • Кабелем через локальный порт;
      • По Wi-Fi.

      Для использования интерфейса в браузере нужно ввести IP-адрес роутера (192.168.1.1) или адрес сайта - my.keenetic.net . Остается авторизоваться в системе, используя логин и пароль (если не были изменены, то их можно найти на коробке с устройством).

      Смысл сервера – в доступе к нему извне. Подключение производится через внешний адрес маршрутизатора. Однако есть нюансы. Провайдеры выдают два адреса:

      • Белый динамический;
      • Серый статический.

      Обязательно, чтобы провайдер выдал внешний фиксированный (белый) адрес. Если нет – на новых прошивках KeenDNS есть возможность подключиться к статистическому IP. Создается облачный DDNS, работающую напрямую или через облако. При взаимодействии с последними сборками прошивки:

      • Перейдите в параметр "Доменное имя" и вводим любое название, нажимаем "Зарегистрировать".
      • Если имя не занято – роутер уведомит об этом и выдаст 3 поддомена (можно выбрать любой).
      • Для серого IP перейдите в "Общие настройки" и активируйте "Keenetic Cloud".
      • На экране появится диалоговое окно – дождитесь, пока оборудование загрузит SSL-сертификаты. Затем выберите "Режим работы": через облако – для серого IP, прямой доступ – для белого адреса.

      Если на роутере старая прошивка, то с серым IP ничего не сделать. Можно только подключиться к другому провайдеру или купить новую модель Keenetic. Для пользователей с белым IP – нужно аналогично настроить DDNS:

      • Зайдите в параметр "Интернет", затем в "DDNS".
      • Изучите список серверов. В стандартном варианте доступны: Dyn, No-Ip и DNS-Master.
      • Зайдите на сайт этих серверов, зарегистрируйте и сформируете DDNS.
      • Зайдите обратно в настройки и введите параметры DDNS.

      Настройка WireGuard-сервера

      Из-за особенностей протокола обозначения "клиент" и "сервер" становятся условными. Возможность организовать WireGuard-туннель появилась в версии ПО KeeneticOS 3.3 — функция работает только на новых устройствах. Подключение работает в формате "Site-To-Site VPN". Если у одного из интернет-центров есть белый IP — лучше настроить его как сервер. WireGuard можно использовать только для связи двух сетей (обычно роутеров) в одну локальную.

      Другой важный нюанс – настройка производится на обоих устройствах сразу. К примеру, параметры сервера обозначены с компьютера, а клиента – со смартфона ( лучшие VPN для телефона смотрите отдельно). При этом можно организовать туннель между роутерами в разных точках мира. Например, если подключается связь к серверу VPN-сервиса.Для настройки зайдите в компоненты и добавьте WireGuard. Затем:

      • В названии укажите имя английскими буквами. Для примера: на одном устройстве (сервере) – Sev, на другом (клиенте) – CL. Оба должны быть открыты.
      • Кликните на "Генерацию пары ключей".
      • В строке с адресом впишите IP-туннель с bitmask (допускается указание любого спектра из частного диапазона). Если проще, частные адреса – это те, что действуют внутри локальной сети и не доступны в интернете. Для примера возьмем 172.16.82.1/24, номер порта – 16632 (через него и будет оформляться подключение устройств, роутер сам его откроет). Нажмите на "Добавить".
      • В роутере CL добавьте подключение с названием Sev и кликните на "Генерация пары ключей", затем сразу на "Сохранить публичный ключ в буфер обмена".
      • Вернитесь в параметре сервера, где появится страница с настройкой пиров. Введите туда данные (при этом нельзя закрывать настройки клиента): имя пира (как в клиенте), публичный ключ – из буфера обмена; разрешенные подсети (спектр локальных адресов клиента – в данном случае 172.16.82.2), настройка маски - /32. При этом нужно не забыть указать о спектре локальных клиентских сетей (192.168.100.0/24). В периодичности проверке аёктивности подключения выберите 15 секунд.

      Keenetic обход блокировок WireGuard. Как установить и настроить WireGuard VPN на сервере Debian и маршрутизаторе Keenetic

      В начале я расскажу как, ну а потом уже зачем использовать WireGuard для построения VPN туннелей. В этой статье я подробно опишу как «связать» между собой внешний сервер с операционной системой Debian и домашний маршрутизатор серии Keenetic.

      Как установить WireGuard на Debian или Ubuntu

      В репозиториях Debian 10 и Ubuntu 20.04 уже есть пакет WireGuard, поэтому для его установки вам достаточно выполнить одну команду:

      # apt install wireguard

      или

      $ sudo apt install wireguard

      в зависимости от ваших привилегий в операционной системе.

      Как создать публичный и приватный ключи WireGuard

      После того как демон (сервис) WireGuard установлен для организации VPN тоннеля необходимо для каждого устройства создать два ключа: приватный и публичный. В минимальной конфигурации из 2-х участников всего нам понадобятся 4 ключа.

      Ключи можно создать на любом устройстве как индивидуально только для него, так и для всех устройств сразу. Команда создания ключей одна, при каждом запуске она создает новый уникальный ключ (пару ключей).

      Публичный ключ создается на основе приватного.

      Ключ — это просто строка (набор символов), которую мы будем указывать в файлах конфигурации VPN WireGuard. Сгенерированные строки мы запишем в файлы с уникальными названиями, чтобы потом их (строки с набором символов) оттуда взять. Сами файлы ключей напрямую нигде не использутся.

      Создадим приватный и публичный ключи на сервере с операционной системой Debian

      Для удобства сделаем отдельную директорию для хранения файлов ключей:

      cd ~ mkdir wireguard cd wireguard

      А затем создадим ключи для сервера и сохраним их.

      wg genkey | tee unit1-private.key | wg pubkey > unit1-public.key

      Аналогичным способом создадим приватный и публичный ключи клиента.

      Команда создания приватного и публичного ключей для клиента ничем не отличается от указанной выше для сервера, изменим лишь имена файлов в которые сохраним сгенерированные ключи:

      wg genkey | tee unit2-private.key | wg pubkey > unit2-public.key

      Если к серверу планируется несколько подключений, то подобным способом можно создать ключи для остальных участников:

      wg genkey | tee unit3-private.key | wg pubkey > unit3-public.key wg genkey | tee unit4-private.key | wg pubkey > unit4-public.key

      Сгенерированные таким способом ключи клиента являются «серверными» для самого клиента. Важно понимать это при настройке устройств. Логичнее именовать файлы с ключами не используя привилегии клиент-сервер, а как в моем примере, unit1, unit2 и т.п. (unit — блок, узел).

      Файл конфигурации сервера WireGuard

      Создайте любым удобным для вас способом файл конфигурации сервера /etc/wireguard/wg0.conf со следующим содержимым. Я, как правило, использую для этого редактор файлового менеджера Midnight Commander .

      # IP-адрес сервера в виртуальной сети Address = 172.29.111.1/24 # порт, на котором ожидать подключения ListenPort = 64999 # приватный ключ сервера PrivateKey = SNN6DRlhGKuG/12345Vn1jAhvIhcMDVwvMUjDRPUU=

      # публичный ключ клиента PublicKey = 8obhd57GKCXPR5M8W1Q2D67890hw6hskAmQkIYZQ4= # назначить клиенту следующий IP-адрес AllowedIPs = 172.29.111.2/32

      Разделов в файле конфигурации WireGuard может быть несколько.

      Обратите внимание , что при построении VPN тоннеля WireGuard в файле конфигурации первого устройства мы указали приватный ключ сервера (unit1-private) и публичный ключ клиента (unit2-public).

      При конфигурации второго устройства VPN WireGuard мы должны использовать unit2-private в качестве ключа сервера, а unit1-public в качестве ключа клиента.

      Более наглядно покажу на рисунке:

      Общее правило: Для организации связи каждое устройство должно иметь свой приватный ключ и публичные ключи устройств с которыми нужно организовать VPN туннель.

      Файл конфигурации клиента WireGuard

      Если сервер с операционной системой Debian выступает в роли клиента туннеля WireGuard, то его файл конфигурации будет отличаться от приведенного выше тем, что в нем указывается IP адрес сервера.

      PrivateKey = Uni2-Private-key Address = 172.29.111.2/24 PublicKey = Unit1-Public-key #Адрес сервера и его порт Endpoint = SERVER_IP_ADDRESS:64999 AllowedIPs = 0.0.0.0/0

      Настройка маршрутизатора серии Keenetic в качестве клиента будет описана чуть ниже.