Skip to content

Nikitid/ikev2-manager-openwrt

Repository files navigation

IKEv2 Manager для OpenWrt

English

CI Лицензия: MIT

Приложение LuCI для исходящего IKEv2-туннеля, дополнительного входящего IKEv2-сервера и выборочной маршрутизации IPv4-трафика в OpenWrt.

Обычный трафик продолжает идти через домашний WAN. Выбранные сервисы, домены, IP-адреса, сети или устройства могут использовать удаленный IKEv2-шлюз. Если туннель недоступен, такой трафик блокируется и не уходит напрямую через WAN.

Проект совместим с ikev2-manager-ubuntu в качестве удаленного шлюза.

Возможности

  • исходящий IKEv2/EAP-клиент через XFRM-интерфейс;
  • маршрутизация доменов через sing-box FakeIP и nftables TProxy;
  • встроенные списки сервисов, пользовательские домены, IPv4-адреса и CIDR;
  • маршрутизация приложений, использующих фиксированные IP-сети;
  • режимы устройств: домены через VPN, весь трафик через VPN или прямой WAN;
  • fail-closed PBR и автоматическое восстановление туннеля и маршрутов;
  • дополнительный входящий IKEv2/EAP-сервер с управлением пользователями;
  • отдельные правила доступа входящих клиентов к Интернету, локальным сетям и службам роутера;
  • управление DNS upstream: UDP, TCP, DoT, DoH, HTTP/3, DoQ и DNSCrypt;
  • интеграция с ACME;
  • русский и английский интерфейсы LuCI.

Требования

  • официальный OpenWrt 24.10.x;
  • firewall4/nftables и соответствующие официальные пакеты;
  • IPv4 WAN;
  • достаточно места для strongSwan, PBR, sing-box, dnsmasq-full и dnsproxy.

Vendor firmware, snapshots, firewall3 и OpenWrt 25.12+ в текущем выпуске не поддерживаются. Разработка проверена на GL.iNet Flint 2 с официальным OpenWrt 24.10.7, но совместимость определяется возможностями системы, а не списком моделей роутеров.

Установка

Скачайте luci-app-ikev2-manager_1.0.1_all.ipk из Releases и загрузите пакет через:

System -> Software -> Upload Package

Установка IPK не запускает VPN, не заменяет DNS и не включает PBR. После установки откройте:

Services -> IKEv2 Manager for OpenWrt -> Overview

Затем:

  1. установите проверенные runtime-зависимости;
  2. выберите WAN и защищаемые сети роутера;
  3. включите управляемый режим;
  4. настройте и подключите исходящий туннель;
  5. выберите сервисы или добавьте назначения в разделе Policy Routing;
  6. при необходимости настройте входящий сервер, ACME и VPN-пользователей.

CLI-установка, миграция, диагностика и восстановление описаны в Operations.

Поддержка

Вопросы по настройке размещайте в GitHub Discussions, а воспроизводимые ошибки — в GitHub Issues. Перед отчетом об ошибке выполните:

/usr/libexec/ikev2-manager-system doctor
/usr/libexec/ikev2-manager overview

Удалите из вывода публичные IP-адреса, приватные домены, имена пользователей и учетные данные. Не прикладывайте резервную копию роутера и файлы из /etc/ikev2-manager/ или /etc/swanctl/private/.

Маршрутизация

Надежный режим оставляет dnsmasq-full клиентским резолвером и отправляет публичные DNS-запросы через sing-box. Выбранные доменные суффиксы получают постоянные FakeIP-адреса из 198.18.0.0/15; nftables перехватывает только эти назначения. sing-box отправляет подходящие источники через ipsec-out, не затрагивая остальной трафик.

Сервисы с фиксированными сетями могут содержать проверенные CIDR. Также можно добавить:

  • пользовательские домены — один суффикс в строке;
  • пользовательские IPv4-адреса и сети — один адрес или CIDR в строке;
  • правила устройств — доменная маршрутизация, полный туннель или прямой WAN.

Списки собираются во временных файлах и заменяются только после проверки. Ошибки загрузки или неверные пользовательские записи не повреждают предыдущую рабочую конфигурацию. Служба здоровья восстанавливает FakeIP и direct-IP маршрутизацию без перезапуска WAN.

Для классификации доменов клиенты должны использовать DNS роутера. Browser DoH, Android Private DNS и Apple Private Relay могут обходить классификацию. Политики прямых IP/CIDR от DNS не зависят.

Источники списков доменов

Небольшие списки проекта находятся в luci-ikev2-domains/local-services/. Дополнительные списки загружаются во время работы из itdoginfo/allow-domains, проверяются, кэшируются и не включаются в репозиторий или IPK.

На момент интеграции upstream-репозиторий не публиковал лицензию, поэтому загружаемые данные не покрываются MIT-лицензией этого проекта. См. NOTICE.

Безопасность

  • новая установка неактивна;
  • неподдерживаемая прошивка и отсутствующие kernel-пакеты отклоняются до настройки;
  • выбранный трафик получает недоступный резервный маршрут при отключении IKEv2;
  • обновления DNS, маршрутов и списков используют проверку и откат;
  • длительные действия LuCI сериализованы и показывают фактический результат;
  • VPN- и ACME-секреты передаются через временные файлы с ограниченными правами;
  • резервные копии содержат учетные данные и закрытые ключи.

Сборка

Основная команда проверки и сборки для macOS и Linux:

./scripts/ci-check.sh

Она проверяет версии, публичное дерево, синтаксис shell и JavaScript, JSON, runtime-модули, операции со списками доменов/CIDR и воспроизводимость IPK. Артефакты записываются в dist/.

Документация

Лицензия

Исходный код и списки проекта доступны по лицензии MIT. Дополнительные загружаемые списки описаны в NOTICE.

About

LuCI application for IKEv2 tunnels and selective policy routing on OpenWrt.

Topics

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors