podsec-inotify-check-images(1)
| PODSEC-INOTIFY-CHECK-IMAGES(1) | General Commands Manual | PODSEC-INOTIFY-CHECK-IMAGES(1) |
NAME
podsec-inotify-check-images - Плугин проверяет образы на предмет их соответствия настройки политикам контейнеризации на узле
## SYNOPSIS
podsec-inotify-check-images [-v[vv]] [-a интервал] [-f интервал] -c интервал -h интервал [-m интервал] х-w интервалъ [-l интервал] [-d интервал] [-M EMail]
DESCRIPTION
Плугин проверяет образы на предмет их соответствия настройки политикам контейнеризации на узле. Проверка идет по следующим параметрам:
| Параметр контроля пользователей | Вес метрики |
| наличие в политике пользователя регистраторов не поддерживающие электронную подпись | 101 |
| наличие в кэше образов неподписанных образов | 102 |
| наличие в кэше образов вне поддерживаемых политик | 103 |
Все веса метрик суммируются и формируется итоговая метрика.
OPTIONS
При указании флага -M Email итоговое сообщение отсылается указанному пользователю.
Уровень опасности определяется при запуске флагами:
- для системных логов:
-
Имя уровня | Уровень | Префикс | Флаг | Рекомендуемое значение интервала
------------|---------|------------|------|------------------------
аварийный | 7 | Crash | `-a` | не указывать
фатальный | 6 | Fatal | `-f` | не указывать
критический | 5 | Critical | `-c` | 100
высокий | 4 | Heigh | `-h` | 0
средний | 3 | Middle | `-m` | не указывать
низкий | 2 | Low | `-l` | не указывать
отладочный | 1 | Debug | `-d` | не указывать
- для сервера icigna:
-
Имя уровня | Уровень | Префикс | Флаг | Рекомендуемое значение интервала
---------------|---------|------------|------|-----------------------
критический | 2 | Critical | `-c` | 100
предупреждение | 1 | Warning | `-w` | 0
Любой параметр может отсутствовать. В этом случае он не рассматривается при просмотре соответствия полученной метрики интервалам.
Значение параметров имеют формат интервала, описанного в документации по nagios: Threshold and Ranges https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT.
Общее описание:
[@]start:end
Замечания:
- ○
- start ≤ end
- ○
- start и : не требуется если start=0
- ○
- если интервал задан в формате start: и конец не задан, то концом интервала считается бесконечность ꝏ
- ○
- для указания отрицательной бесконечности (-ꝏ) используйте ~
- ○
- триггер срабатывает когда значение метрики ВНЕ УКАЗАННОГО ИНТЕРВАЛА (начальные и конечные точки включаются в интервал)
- ○
- если интервал начинается с символа @, тогда условие инвертируется - триггер срабатывает при значении метрики В УКАЗАННОМ ИНТЕРВАЛЕ (начальные и конечные точки включаются в интервал)
Примеры возможных форматов:
-
Формат интервала | Описание условия срабатывания триггера -----------------|-------------------------------------- 100 | metrica < 0 || metrica > 100 (вне интервала 0-100) 100: | metrica < 100 (вне интервала 100-ꝏ) ~:100 | metrica > 100 (вне интервала -ꝏ-100) 20-100 | metrica < 20 || metrica > 100 (вне интервала 20-100) @20-100 | metrica >= 20 && metrica <= 100 (в интервале 20-100)
Системные логи
Для системных логов уровень опасности определяется для каждого сообщения. Интервалы уровней опасностей, заданные параметрами просматриваются в порядке от большого к меньшему. Уровень сообщения определяется по первому найденному соответствию (не забываете, что триггер срабатывает при нахождении метрики ВНЕ интервала). Если соответствие не найдено, сообщение в системный лог не выводится.
Исходя найденного уровня определяет приоритет сообщения и его тег (префикс). В системный лог командой logger посылается сообщение с указанным приоритетом и тегом:
-
# logger -p приоритет -t тег "тег: сообщение"
Кроме основного сообщения для icigna формируются:
- ○
- список пользователей нарушителей;
- ○
- укороченные сообщения для уровня детализации 1.
Логи icigna
Форматы сообщений и кодов завершения плугина описаны в Plugin Output for Nagios https://nagios-plugins.org/doc/guidelines.html#PLUGOUTPUT.
Уровень опасности для логов icigna определяется СУММАРНОЙ метрике. Суммарная метрика определяется для определения уровня сравнивается с интервалами, задаваемыми флагами
- ○
- -c - Critical
- ○
- -w - Warning
Если соответствие не найдено, в icigna выводится сообщение:
-
POLICY OK: Политики контейнеризации не нарушены
Код завершение программы (которое обрабатывается на стороне сервера icigna) - 0.
Формат логов для nagios зависит от уровня детализации, задаваемый флагом -v[vv] (см. Verbose Output https://nagios-plugins.org/doc/guidelines.html#AEN41):
-
Флаг | Уровень ------------|-------- отcутствует | 0 -v | 1 -vv | 2 -vvv | 3 ... | 3
Для всех уровней формируется префикс сообщение формата:
-
POLICY $prefix:
Где prefix в зависимости от уровня опасности принимает значения:
- ○
- -c - Critical
- ○
- -w - Warning
Если уровень детализации - 0, то выводится укороченное сообщение.
-
POLICY $prefix: Нарушение политик контейнеризации пользователей users
Где users - список пользователей у которых обнаружены нарушения.
Если уровень детализации - 1, то к сообщению с префиксом Есть пользователи: добавляется первый уровень детализации из списка укороченных сообщений сформированных при формировании системных логов.
-
POLICY $prefix: Нарушение политик контейнеризации пользователей $users | Есть пользователи: укороченное сообщение ...
Если уровень детализации - 2, то к сообщению добавляется второй уровень детализации из списка полных сообщений сформированных при формировании системных логов.
-
POLICY $prefix: Нарушение политик контейнеризации пользователей $users | Есть пользователи: укороченное сообщение ... укороченное сообщение | полное сообщение ...
После вывода сообщений плугин завершается кодом завершения:
- ○
- Critical - 2
- ○
- Warning - 1
Запуск сервиса через systemd/Timers
Кроме запуска скрипта через nagios скрипт может запускаться через systemd/Timers.
В состав пакета входит systemd-файлы podsec-inotify-check-images.service, podsec-inotify-check-images.timer. Файл сервисов podsec-inotify-check-images.service описывает в параметре ExecStart строку с описанием режима запуска скрипта podsec-inotify-check-images. Скрипт запускается с флагами -vvv -c 100 - выводить подробную информацию, все сообщения имеют уровень c - критический. Если во время работы скрипта обнаружены некорректные настройки политики, они выводятся в системный лог и передаются почтой системному администратору (root).
Расписание запуска сервиса podsec-inotify-check-images.service описывается в параметре OnCalendar файла расписания podsec-inotify-check-images.timer. Сервис вызывается ежечасно.
По умолчанию таймер запуска сервиса выключен. Для его включения наберите команду:
-
# systemctl enable --now podsec-inotify-check-images.timer
Если необходимо изменить режим запуска скрипта отредактируйте параметр OnCalendar файла расписания podsec-inotify-check-images.timer.
EXAMPLES
podsec-inotify-check-images -vvv -w 0 -h 0 -c 100
SECURITY CONSIDERATIONS
SEE ALSO
AUTHOR
Костарев Алексей, Базальт СПО kaf@basealt.ru
| October 2024 |
