Configuration & Usage Guide
Конфигурация (gixy.cfg)¶
Gixy читает конфигурацию из следующих путей (первый найденный побеждает):
/etc/gixy/gixy.cfg~/.config/gixy/gixy.conf
Также можно указать свой путь через -c/--config и сгенерировать шаблон с подсказками через --write-config.
Файл конфигурации использует пары key = value, необязательные секции и поддерживает списки в виде [a, b, c]. Имена ключей совпадают с длинными флагами CLI и используют дефисы, например --disable-includes → disable-includes.
Примечание: фильтр серьёзности доступен только через CLI с помощью повторов -l (например, -l, -ll, -lll). Из файла конфигурации он не читается.
Управление плагинами¶
- Запустить только выбранные плагины: укажите
testsсо списком имён классов плагинов через запятую. - Пропустить конкретные плагины: укажите
skipsсо списком имён классов плагинов через запятую.
Примеры:
# Запускать только эти плагины
tests = if_is_evil, http_splitting
# Эти плагины исключить
skips = origins, version_disclosure
Параметры плагинов¶
Опции плагинов можно указывать в секциях, где имя секции — это имя класса плагина с дефисами вместо подчёркиваний. Ключи в секциях также используют дефисы. Примеры:
[origins]
domains = example.com, example.org
https-only = true
[regex-redos]
deep = true
Того же эффекта можно добиться без секций, объединив имя плагина и опцию через дефис, например origins-domains = ..., но секции удобнее.
Другие полезные параметры¶
- Формат вывода:
format = console|text|json|checkstyle(то же, что-f/--format) - Запись отчёта в файл:
output = /path/to/report.txt(то же, что-o/--output) - Отключить обработку include:
disable-includes = true(то же, что--disable-includes) - Каталоги кастомных переменных:
vars-dirs = [/etc/gixy/vars, ~/.config/gixy/vars](см. «Пользовательские переменные (drop-ins)») - Глубокий анализ:
deep = true(то же, что--deep; требуетgixy-ng[deep]из pip или RPMgixy-deepи включает локальный анализ ReDoctor с автоматами и ограниченным фаззингом в собственной VM)
Полный пример¶
# gixy.cfg
format = console
output = /tmp/gixy-report.txt
disable-includes = false
# Ограничить анализ подмножеством плагинов
tests = if_is_evil, http_splitting
# Пропустить некоторые плагины
skips = version_disclosure
# Загрузить определения переменных (см. variables-dropins)
vars-dirs = [/etc/gixy/vars, ~/.config/gixy/vars]
[origins]
domains = example.com, example.org
https-only = true
[regex-redos]
deep = true
Версия и вариант NGINX¶
По умолчанию Gixy не запускает NGINX. Для явной цели используйте
nginx-version = 1.30.6 и при необходимости nginx-flavor = nginx-mod.
nginx-version = auto включает однократный локальный nginx -V из PATH
с тайм-аутом пять секунд. Это подтверждает, что локальный бинарный файл
является целью проверки; для удалённых или офлайн-файлов задайте версию явно.
В --server значение auto запрещено, явные версия и вариант допустимы.
Распознаются upstream и nginx-mod; неизвестный вариант из баннера
использует правила upstream. Явный nginx-flavor = upstream переопределяет
результат обнаружения. Неправильное явное имя считается ошибкой.
Для каждого параметра приоритет: CLI, затем GIXY_NGINX_VERSION /
GIXY_NGINX_FLAVOR, затем конфигурация. Старый nginx-cves-version
используется только при отсутствии общего параметра; ошибка auto
оставляет версию неизвестной и не включает этот запасной вариант.
Встроенные данные сохраняют настоящую версию и подавляют только конкретную
проверку или CVE с подтверждённым исправлением. Сейчас для nginx-mod
записано только исправление quic_bpf_reuseport в 1.30.6, исключений для CVE
нет; неоднозначная 1.30.5 сохраняет предупреждение. Диагностика идёт в stderr,
переопределения видны с --debug; JSON stdout остаётся отчётом. Библиотека,
справка, --version и --write-config никогда не запускают обнаружение.