Skip to content
Эта страница переведена с помощью ИИ и может содержать неточности. Помогите улучшить перевод на GitHub.

Вышел Gately v0.6.5.5 ​

11 ноября 2026 г.

Скачать v0.6.5.5 · GitHub Release

Port Knocking (#80) ​

Новый модуль Port Knocking (в группе «Сеть») реализует авторизацию одним пакетом (SPA), совместимую с клиентом fwknop: защищённые порты недоступны извне, клиент сначала отправляет зашифрованный пакет-стук с аутентификацией, и после проверки на ограниченное время открывается доступ только для этого адреса источника. Это удобно для защиты прямого SSH-доступа: scp, удалённая разработка из IDE и другие сценарии, которые не покрывает веб-терминал, могут безопасно подключаться из интернета.

  • Безопасность: пакеты шифруются AES и аутентифицируются HMAC, причём HMAC проверяется до расшифровки; каждый пакет можно использовать только один раз (защита от повтора), а пакеты с меткой времени вне срока действия (по умолчанию 120 секунд) отклоняются; правило может ограничить имя пользователя и требовать, чтобы пакет указывал открываемый адрес;
  • Блокировка брандмауэром: пакеты-стуки по умолчанию принимаются на UDP 62201; правило может записать защищённые порты в системный брандмауэр (nftables, а при отсутствии nf_tables в ядре — iptables + ipset), и адрес, успешно постучавший, может открывать новые соединения в течение времени допуска (по умолчанию 30 секунд); установленные соединения не затрагиваются;
  • Без риска запереть себя: по умолчанию включена «Локальная сеть без стука», поэтому частным адресам и публичным IPv6-префиксам локальных интерфейсов стук не нужен (диапазон операторского NAT 100.64.0.0/10 в него не входит); можно добавить список исключений;
  • Допуск входов Gately по стуку: в IP-контроле доступа проброса портов, протокольной маршрутизации и встроенной переадресации STUN можно выбрать «Требовать стук»; решение принимает сам Gately без прав на брандмауэр, поэтому это работает и в Windows, macOS, и в контейнерах без NET_ADMIN;
  • Только один открытый порт: протокольная маршрутизация может требовать стук для отдельного маршрута и получила маршрут «Port Knocking» (протокол spa), принимающий пакеты-стуки по TCP (fwknop -P tcp); один и тот же порт принимает стук, а затем пропускает SSH и другие маршруты;
  • Защита от вторжений: отклонённые стуки можно использовать как источник событий, встроенный шаблон «Неудачи Port Knocking» по умолчанию блокирует на сутки после 5 неудач за 10 минут; UDP-пакеты, не прошедшие проверку HMAC, только подсчитываются и не учитываются, потому что их источник можно подделать; на успешные и отклонённые стуки можно подписаться в центре уведомлений;
  • Настройка клиента: кнопка «Клиент» на карточке правила формирует командную строку fwknop и блок ~/.fwknoprc, ключи в том же формате, что у fwknop -k.

Подробнее: Port Knocking.

Wake-on-LAN: удалённое выключение через агента ​

У удалённого выключения появился способ «Агент»: установите агента в Windows, Linux, macOS или OpenWrt (как задание планировщика или как службу systemd / OpenRC, launchd или procd). Агент сам обращается к Gately по длинному опросу за командами, поэтому на устройстве не нужно открывать порты, а Gately не хранит учётные данные для входа на устройство.

  • Агент выполняет только три фиксированных действия: выключение, перезагрузку и сон; API POST /api/wol/devices/{key}/shutdown принимает {"action": "reboot"} или {"action": "sleep"} для перезагрузки или сна;
  • Команда действительна 10 секунд после отправки: агент сначала подтверждает её и выполняет только после ответа Gately; если агент не в сети, запрос сразу завершается ошибкой и не ставится в очередь до следующего подключения;
  • Команда установки сначала проверяет SHA-256 скрипта и останавливается при несовпадении; учётные данные передаются в теле запроса и переменных окружения и никогда не появляются в URL или аргументах командной строки;
  • Карточка устройства показывает, в сети ли агент, а также сообщённые им имя хоста, систему и адрес источника; после повторного создания учётных данных старый агент сразу отключается.

Добавлен и способ «HTTP-запрос» для Home Assistant, умных розеток и других служб с HTTP API: укажите URL, метод, заголовки и тело, код ответа 2xx считается успехом. Подробнее: Wake-on-LAN · Агент.

Веб-служба: доверять вошедшим пользователям (#81) ​

У сайтов появился параметр «Доверять вошедшим пользователям»: посетители, прошедшие аутентификацию Gately на этом сайте, минуют WAF, а их запросы не учитываются при обнаружении зондирования веб-путей защитой от вторжений — для случаев, когда WAF или правила путей-приманок блокируют своих. Доверие получают сеансы веб-аутентификации, поимённо перечисленные в списке разрешённых удостоверения входа через сторонние сервисы, единый вход общих пользователей и проверенная базовая аутентификация; удостоверения, разрешённые шаблоном провайдер:* вроде github:*, доверия не получают. Блокировки, контроль доступа по IP и странам и ограничение частоты действуют как прежде. Подробнее: Брандмауэр WAF.

Распределение по пользователям для других типов сайтов (#79) ​

Сайты с перенаправлением, статическими файлами, панелью навигации и фиксированным текстом тоже могут распределять запросы по аутентифицированным пользователям: пользователи, подходящие под правило, проксируются на бэкенд этого правила, остальные посетители обрабатываются по типу сайта, как и раньше; например, администраторы попадают в панель управления, а другие вошедшие пользователи перенаправляются на справочную страницу. Подробнее: Веб-служба · Распределение по пользователям.

Запросы администраторов минуют WAF сайта ​

Когда интерфейс управления открывают через сайт с включённым WAF, запросы с действующим сеансом администратора этого экземпляра минуют WAF сайта, поэтому сохранение настроек с путями к файлам, HTML или скриптами больше не блокируется правилами CRS с кодом 403. Учётные записи только для чтения, посетители и запросы к интерфейсу управления других экземпляров по-прежнему проверяются.

Исправления ​

  • Пакеты OpenWrt (#82): apk в OpenWrt 25.12 заменяет файлы даже после неудачной проверки архитектуры, поэтому пакет arm64, попавший в офлайн-папку при встраивании пакетов в образ прошивки, приводил к циклическим падениям программы после прошивки. Теперь, если apk устанавливает пакет для другой архитектуры, работающая программа gately сохраняется, о чём выводится сообщение. При встраивании в прошивку или офлайн-установке кладите в папку только пакет gately для архитектуры устройства; подробнее: Установка и развёртывание · OpenWrt.

Другие улучшения ​

  • В документации API перечислены конечные точки модулей без входа (например, опрос, подтверждение и загрузка скриптов агента Wake-on-LAN) с пометкой, что они используют собственные учётные данные модуля, и добавлены поля Port Knocking.

Об обновлении ​

  • Docker: скачайте новый образ и пересоздайте контейнер. OpenWrt: установите новый .apk / .ipk поверх старого, а для страницы LuCI установите ещё и luci-app-gately той же версии. fnOS: вручную установите новый .fpk в Центре приложений. Остальные установки можно обновить онлайн в разделе «Системные настройки».
  • Блокировке брандмауэром в Port Knocking нужны root или CAP_NET_ADMIN; в Docker нужны сеть host и cap_add: NET_ADMIN.

Распространяется по лицензии Apache-2.0.