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

Вышел Gately v0.6.3 ​

2 ноября 2026 г.

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

Мониторинг производительности (#59) ​

Новый модуль «Производительность» каждые 5 секунд собирает CPU, память, диск и нагрузку хоста, а также CPU, память, файловые дескрипторы и число горутин процесса Gately:

  • страница показывает графики за 60 секунд / 1 час / 24 часа, а рядом запросы в обработке, запросы в секунду, долю 5xx, время до первого байта (P95) и состояние бэкендов работающих сайтов; щелчок по сайту открывает его статистику;
  • Веб-сайты теперь измеряют время до первого байта (от получения запроса до отправки заголовков ответа), статистика сайта получила кривые P50 / P95, в Prometheus появились gately_site_request_duration_seconds и метрики gately_host_* и gately_process_*, а панель Grafana обновлена;
  • правило оповещения выбирает метрику, способ сравнения и порог, затем длительность (от 1 до 1440 минут); оно срабатывает, только если условие выполняется всю длительность, а при восстановлении отправляется отдельное уведомление. Для доли 5xx и задержки можно задать минимальное число запросов, поэтому при малом трафике оценка не выполняется. Оповещения уходят через Центр уведомлений, а если на них не подписано ни одно правило уведомлений, страница предупреждает об этом.

История хранится только в памяти и после перезапуска копится заново. См. Производительность.

WAF с SafeLine ​

Экземпляр WAF может передавать запросы вашему собственному движку обнаружения SafeLine Community Edition для семантического анализа, без дополнительного обратного прокси перед Gately или за ним:

  • укажите адрес детектора (host:port либо unix: и путь к snserver.sock); «Проверить подключение» отправляет heartbeat и пример SQL-инъекции и показывает время обращения и ID события, записанный SafeLine;
  • SafeLine выполняется раньше групп правил, и при использовании только SafeLine группы можно не выбирать; режим «Только обнаружение» записывает срабатывания, но не блокирует;
  • блокировки учитываются в счётчиках WAF, журнале WAF (с ID события), журналах доступа, статистике сайтов и в Защите от вторжений;
  • можно задать тайм-аут обнаружения (по умолчанию 1 секунда), предел проверяемого тела (по умолчанию 1024 КБ, остальное передаётся без изменений) и то, пропускать ли запросы или отвечать 503, когда движок недоступен (по умолчанию пропускать).

См. Брандмауэр WAF · Подключение SafeLine.

Пакетные операции (#57) ​

Режим «Сортировка» в списках теперь называется «Сортировка и пакет»: отметив элементы, их можно разом включить, отключить и удалить, а перед удалением показывается список имён для подтверждения. Сайты Веб-служб можно отмечать сразу на нескольких слушателях, чтобы массово добавлять и удалять домены, заменять суффикс основного домена (old.com → new.com заодно переписывает www.old.com и *.old.com) и массово менять сжатие, журналы доступа, CORS, пересылаемые заголовки, разрыв соединения при отказе и ссылки на WAF; неизменённые параметры сохраняют значения каждого сайта. Весь пакет сначала проверяется и сохраняется за один раз, при сбое любого элемента ничего не применяется, перезагружаются только затронутые слушатели, а текущие соединения не разрываются. API состоит из общих PUT <путь>-enable и POST <путь>-delete, а также POST /api/webservice/sites/batch.

STUN: автоматическое открытие портов в брандмауэре ​

Правила STUN получили «Открыть порт в брандмауэре»: при включении Gately открывает порт обхода в брандмауэре этой машины (вместе с внутренним портом UPnP / NAT-PMP, если он задан) и убирает его при остановке или удалении правила. Поддерживаются nftables (OpenWrt fw4, firewalld) и iptables (fw3, ufw), после перезагрузки брандмауэра правила восстанавливаются в течение 30 секунд, а карточка правила показывает результат или причину сбоя. См. STUN-обход NAT.

Исправление: сбой выпуска из-за wildcard-CNAME (#61) ​

Если у домена есть wildcard-запись вроде *.example.com, указывающая на example.com, то _acme-challenge тоже разрешается в CNAME, проверочная запись DNS-01 записывалась в @, и центр сертификации сообщал, что не находит TXT-запись. Теперь Gately определяет это сам: явно заданный CNAME по-прежнему отслеживается, что позволяет делегировать проверку другому домену; CNAME, возникший из wildcard-записи, распознаётся, и запись создаётся в _acme-challenge.<домен>. У сертификатов также появился параметр «Не следовать CNAME для _acme-challenge». См. SSL-сертификаты.

Журналы Веб-служб (#62) ​

  • Журналы доступа записывают причину блокировки (бан, список IP, страна, ограничение частоты, WAF), а запросы с сеансом входа в панель этого экземпляра записывают имя пользователя панели;
  • на странице журнала появились «Скрыть заблокированные источники» (по умолчанию выключено, чтобы запросы, вызвавшие бан, оставались видны для аудита) и «Скрыть запросы панели» (по умолчанию включено); они влияют только на отображение, журналы сохраняются как раньше;
  • фильтр IP принимает исключения, начинающиеся с ! или -: адреса, диапазоны и неполные адреса.

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

  • В топологии сети появился «Фильтр»: по слушателю, только проблемные узлы и сайты по причине блокировки; в маскировании появился стиль «Псевдонимы», заменяющий адреса номерами вроде Visitor-01 и Backend-01 (#54);
  • ознакомительное видео в README сразу начинается с титульной карточки;
  • обновлены зависимости: go-jose до v4.1.7 и klauspost/compress до v1.18.7.

Исправления и усиление защиты ​

  • Если бэкенд сайта с WAF сам возвращает 403, это больше не считается блокировкой WAF: раньше такой ответ увеличивал счётчики блокировок и порождал событие waf.blocked, и правило Защиты от вторжений, подписанное на блокировки WAF, могло забанить обычного посетителя;
  • «Скрыть запросы панели» доверяет только сеансам администратора, поэтому cookie входа учётной записи только для чтения не позволяет пометить запросы как запросы панели; заблокированные запросы не получают отметку панели;
  • пакетные операции ограничивают число присланных элементов до удаления дубликатов, а пакет с несуществующим экземпляром WAF отклоняется;
  • если на одном хосте работают несколько Gately, автоматически открытые правила брандмауэра различаются по экземплярам и не удаляют друг друга.

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

  • Docker: скачайте новый образ и пересоздайте контейнер; если смонтирован сокет Docker, Gately может обновить и сам себя на странице Docker. OpenWrt: установите новый .apk / .ipk поверх старого. fnOS: вручную установите новый .fpk в Центре приложений. Остальные варианты развёртывания можно обновить онлайн в настройках.

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