Перейти к содержанию

Начало работы

Экспериментальная поддержка OpenWrt

KeenProxy можно попробовать на роутерах с OpenWrt, не менее 128 МиБ оперативной памяти и достаточным местом для бинарника и его данных. В релизах доступны обычные сборки и lite для Linux на ARM32 (ARMv5 и новее, soft float, суффикс armv5), ARM64 (arm64), MIPS little-endian (mipsle, soft float) и MIPS big-endian (mipsbe, soft float).

Для тестирования на OpenWrt бинарник и конфигурацию устанавливают вручную. Инструкции по автоматической установке и обновлению ниже относятся к Keenetic и Netcraze с Entware. Для перехвата трафика нужны совместимые iptables, iptables-restore и поддержка в ядре. Проверьте перехват на тестовом клиенте с вашей прошивкой, особенно если она использует firewall4. Документация OpenWrt по Netfilter

Необязательный хук netfilter для NDM относится к совместимым прошивкам Keenetic/Netcraze. На OpenWrt без NDM он выключен и не создаёт файлов хука или событий NDM; обычный сторож продолжает проверять правила каждые 30 секунд по умолчанию. Интеграция с hotplug или firewall4 OpenWrt не устанавливается. Подробнее о восстановлении правил.

Подготовка роутера

Железо и прошивка

  • Процессор. Установщик Entware поддерживает ARM64 (aarch64) и MIPS little-endian (mipsle или mipsel, soft float). Найдите точный номер модели в руководстве. Для MIPS проверьте порядок байтов по архитектуре пакетов Entware или документации модели.
  • Прошивка. Нужна модель Keenetic или Netcraze с компонентом поддержки открытых пакетов (OPKG), оболочкой Entware и совместимыми утилитами iptables. Для перехвата TCP используется REDIRECT. Для перехвата UDP в режиме tproxy дополнительно нужны поддержка TPROXY в ядре и маршрутизация по политикам.
  • Накопитель. Используйте внешний USB-накопитель для Entware и KeenProxy. Сравните размер файла из релиза со свободным местом на /opt и оставьте запас для Entware, конфигурации, правил, списков фильтрации и копии для отката. Сборка lite занимает меньше места и поддерживает меньше протоколов.
  • Оперативная память. Единого проверенного минимума для всех моделей пока нет. Проверьте доступную память при работающих штатных службах. Оставьте запас для движка, соединений и включённых списков. При первом тесте с вашей конфигурацией следите за расходом памяти.

Рекомендуемый компонент прошивки. Включите «Модули ядра для Netfilter» вместе с OPKG, если компонент доступен для вашей модели. Он добавляет поддержку фильтрации пакетов в ядре для работы iptables. Утилиты Entware нужны отдельно. Сверьтесь со списком компонентов своей модели. Описание компонентов KeeneticOS

Куда установить Entware

Способ Как это работает
USB-накопитель (рекомендуется) Подойдёт обычная USB-флешка, которую распознаёт роутер и на которой достаточно места. Подготовьте раздел ext4 по инструкции ниже, включите компонент OPKG, положите архив установщика для своей модели в папку install на разделе и выберите этот раздел в менеджере OPKG. Инструкция Netcraze для USB · Инструкция Keenetic на английском
Встроенная память (не рекомендуется) Доступна на отдельных моделях и версиях прошивки. Во встроенном разделе может не хватить места для обновлений, списков фильтрации и копии для отката. Если выбрали этот вариант, проверьте свободное место на /opt до установки KeenProxy. В инструкциях производителя описана установка через менеджер OPKG, командную строку и из архива. Инструкция Netcraze для встроенной памяти · Инструкция Keenetic на английском

Как подготовить флешку на самом роутере. На поддерживаемых моделях с KeeneticOS или NetcrazeOS 5.1 и новее заранее установите компоненты поддержки файловой системы Ext и утилит для EXT4. Подключите флешку, откройте Управление → Накопители и устройства, выберите нужный раздел, нажмите Форматировать и укажите EXT4. Форматирование стирает данные на выбранном разделе, поэтому заранее сделайте резервную копию. Если на роутере нет этой функции, отформатируйте флешку в ext4 на компьютере. Инструкция Netcraze по форматированию

В инструкциях приведены примеры для конкретных моделей. Компоненты и архив установщика подбирайте по руководству своего роутера.

Проверка перед установкой KeenProxy

После установки Entware подключитесь к его оболочке из локальной сети и смените начальный пароль. Сохраните резервную копию настроек роутера и локальный доступ для восстановления. Перед копированием KeenProxy выполните команды, которые только выводят информацию:

uname -m
opkg print-architecture
df -h /opt
free
command -v iptables
command -v iptables-restore
iptables -t nat -S

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

Последняя команда выводит правила IPv4 NAT без их изменения. Для режима tproxy проверьте также, что iptables -t mangle -S выполняется успешно. Доступ к таблицам — предварительная проверка. Работу REDIRECT или TPROXY проверьте на трафике тестового клиента.

Установка и обновление с GitHub

Если curl и сертификаты ещё не установлены, добавьте их из оболочки Entware под root.

opkg update && opkg install curl ca-bundle ca-certificates

Перед установкой остановите другие службы, которые перехватывают трафик или DNS. При запуске KeenProxy начинает перехватывать DNS локальной сети даже с начальной конфигурацией. Запустите скрипт из main:

curl -fsSL https://raw.githubusercontent.com/ordo-systems/keen-proxy/main/tools/bootstrap.sh | /opt/bin/sh

Установщик читает version.txt из main, определяет архитектуру и сверяет файлы релиза с SHA256SUMS. Он устанавливает недостающие утилиты iptables из Entware, создаёт начальную конфигурацию при её отсутствии и регистрирует и запускает S99keenproxy через механизм служб Entware. Клиент TrustTunnel устанавливается по умолчанию. KeenProxy запускает его при наличии настроенного профиля. С начальной конфигурацией откройте LAN-адрес роутера на порту 8086. Токен находится на роутере в /opt/etc/keenproxy/token.

При чистой установке скрипт создаёт /opt/etc/keenproxy/config.yaml с schema_version: 1. KeenProxy подставляет значения по умолчанию при чтении файла. Если файла токена нет, служба создаёт токен при первом запуске. После обновления установки с заданным api.token_file ищите токен по этому пути.

Для обновления повторите ту же команду. Настройки и токен сохраняются. Установщик проверяет новую сборку до остановки службы. При ошибке запуска он пытается вернуть предыдущие файлы и запустить прежнюю службу. Экземпляр KeenProxy, запущенный вручную, нужно остановить перед переходом на установщик.

Чтобы выбрать версию, замените vX.Y.Z на опубликованный тег. Флаг --lite выбирает облегчённую сборку, а --without-trusttunnel пропускает установку внешнего клиента.

curl -fsSL https://raw.githubusercontent.com/ordo-systems/keen-proxy/main/tools/bootstrap.sh | /opt/bin/sh -s -- --version vX.Y.Z

Дождитесь появления файлов установщика и контрольных сумм в релизе. Если они ещё публикуются, повторите команду позже. Для управления службой используйте /opt/etc/init.d/S99keenproxy с командой status, start, stop или restart. Инструкции для ручной установки есть в корневом README. Справка по установке

Обновление из панели

В установке под управлением Entware раздел Настройки → Обновления показывает текущую версию, доступный стабильный релиз и предыдущую установленную версию, если она записана. Если текущая сборка ещё не умеет обновляться из панели, один раз обновите её установщиком из командной строки. Чтобы иметь возможность откатиться к старому релизу, перед обновлением запустите новый установщик с точным тегом и вариантом уже установленной сборки. Для установки, отката и изменения расписания нужен токен панели, в том числе в доверенной сети.

Автоустановка по умолчанию выключена. Панель продолжает проверять наличие релизов. Чтобы устанавливать их автоматически, включите автообновление и сохраните время. Служба установит доступный релиз в указанную минуту по часам роутера, один раз в день при условии, что KeenProxy в это время работает. Во время установки служба ненадолго перезапускается.

Откат переустанавливает предыдущую опубликованную версию и выключает автоустановку. Для этого нужен доступ к GitHub. Конфиг и токен сохраняются. Если конфиг несовместим, установщик сообщит об этом до перезапуска службы. Если в предыдущей версии ещё не было раздела обновлений, для следующего обновления воспользуйтесь установщиком из командной строки.

Первая настройка

Следуйте руководству пользователя: проверьте соединение, добавьте группу доменов, выберите политику сети/клиента, примените конфигурацию, затем проверьте результат через Диагностику и Журнал. Начните с нескольких доменов и одного тестового устройства.

Обновление и восстановление

Перед обновлением сохраните конфигурацию и старый бинарник. Прочитайте сведения о совместимости и миграции в выпуске. В Настройках можно открыть предыдущую конфигурацию как черновик; для её применения всё равно требуется Применить. Успешная HTTP-проверка не означает, что весь HTTPS-трафик работает.

Удаление

Выполните в оболочке Entware от имени root:

curl -fsSL https://raw.githubusercontent.com/ordo-systems/keen-proxy/main/tools/bootstrap.sh | /opt/bin/sh -s -- --uninstall

Команда остановит службу KeenProxy, созданную установщиком, и удалит /opt/bin/keenproxy и /opt/etc/init.d/S99keenproxy. Настройки и токен в /opt/etc/keenproxy/, журналы и рабочие данные в /opt/var/lib/keenproxy/ и клиент TrustTunnel сохранятся. При повторной установке KeenProxy подхватит сохранённые настройки.