Перейти к основному содержимому
Версия: 4.5.X

KOMRAD-сервер

/etc/echelon/komrad/komrad-server.yaml
### schema: komrad/komrad-server/4.1.33
# Лицензия на продукт, можно вставить путь к файлу лицензии в поле path ЛИБО текст лицензии base64 в поле license.
license:
# Приоритетно - путь к файлу лицензии
path: /etc/echelon/komrad/license/
# Опционально - текст лицензии закодированный в base64
license: ""
# Канал SMTP для отправки уведомлений об окончании
transport: SMTP Service
email: info@info.ru
# Интервал отправки e-mail сообщений (в часах)
AlertInterval: 2
# Пароль и соль для шифрования секретов (паролей, учётных данных), хранимых в БД Комрад.
secrets:
storage:
type: FILESYSTEM
secretsdir: /etc/echelon/komrad/secrets
SecretCacheTTL: 5m
SecretExpansion: true
FilesystemRoot: /etc/echelon/komrad/secrets
vault:
# Адрес Vault
address: https://127.0.0.1:8200
# Адрес агента Vault
AgentAddress: ""
# Максимальное число повторов при ошибке от агента Vault, по умолчанию 2
MaxRetries: 2
# параметр таймаута для HTTP клиента Vault, по умолчанию 60s
timeout: 60s
# SRVLookup разрешает клиенту Vault осуществлять поиск агента через DNS SRV lookup
SRVLookup: true
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
keys:
type: FILESYSTEM
FilesystemRoot: /etc/echelon/komrad/keys
keysize: 32
password: default-insecure-password
salt: default-insecure-salt
# Настройки связи с сервером авторизации PAuth
auth:
# адрес gRPC сервера PAuth
addr: 127.0.0.1:2021
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
http:
# Адрес для старта HTTP сервера. Если выбран порт 443 -- сервису потребуются расширенные привилегии в ОС.
addr: 10.0.5.197:443
# Имя публичного домена, например komrad.enterprise.lan. Служит для увеличения безопасности cookie
# Раздел Path в https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Set-Cookie
PublicDomain: 127.0.0.1
# Срок истечения cookie в секундах, по умолчанию одни сутки (86 400)
cookieexpiration: 86400
# Путь до файла где будет храниться один из двух ключей для генерации Secure Cookie
CookieKeyPath: /etc/echelon/komrad/komrad-server/cookie-key.dat
# Настройки алгоритма ограничения числа запросов к HTTP
rate-limit:
# Включить лимиты на HTTP запросы
enabled: true
# Максимальное число запросов от одного пользователя на один метод API в секунду.
# На ограничение стоит допуск со стандартным распределением вероятности +-50%.
rps: 200
# Считать раздельно лимиты для выбранных HTTP заголовков.
vary-by-headers: []
# Считать раздельно лимиты для запросов от одного пользователя с разных IP адресов.
# В этом случае раздельно будут считаться запросы от одного и того же пользователя с разных IP адресов.
vary-by-remote-address: false
# Настройки защиты для Cross-Origin-Resource-Sharing (CORS)
cors:
enabled: true
# При возникновении ошибок с CORS возможный выход - небезопасная настройка `allowedorigins: ["*"]`
# allowedorigins: ["*"]
allowedorigins:
- http://127.0.0.1:8080
- http://localhost:8080
- https://10.0.5.197
- https://10.0.5.197:443
- https://127.0.0.1
- https://127.0.0.1:3400
- https://127.0.0.1:443
- https://127.0.0.1:9050
- https://::1
- https://[::1]:443
- https://localhost
- https://localhost:3400
- https://localhost:443
- https://trofscan
- https://trofscan:443
secure:
# Включён
enabled: true
# Добавить заголовок X-XSS-Protection со значением `1; mode=block`. По умолчанию отключен.
BrowserXssFilter: false
# CustomBrowserXssValue позволяет указать собственное значение заголовка X-XSS-Protection,
# если не пустая строка - имеет приоритет перед BrowserXssFilter
CustomBrowserXssValue: ""
# Добавить заголовок X-Content-Type-Options со значением `nosniff`
ContentTypeNosniff: false
# Добавить заголовок Strict Transport Security даже для попыток HTTP соединений, по умолчанию включено
# подробнее -- https://tools.ietf.org/html/rfc6797#section-7.2
# Этот параметр можно выключить если вы используете proxy (nginx, caddy, haproxy, apache)
ForceSTSHeader: true
# Применять Strict-Transport-Security для поддоменов, по умолчанию - включено
STSIncludeSubdomains: true
# Добавляет флаг `preload` к заголовку Strict-Transport-Security, по-умолчанию отключено
STSPreload: false
# Определяет срок жизни в секундах (maxage) заголовка Strict-Transport-Security
# Если равно 0
STSSeconds: 315360000
# Добавляет параметр X-Frame-Options со значением DENY, по умолчанию включен
FrameDeny: true
# Включает режим отладки приложения, отключает большинство настроек безопасности
IsDevelopment: false
# Включить обязательный редирект HTTP на HTTPS, по умолчанию включено
TLSRedirect: true
# Если задан параметр TLSHost - автоматически переадресовывать все запросы с
# отличными от TLSHost хостами, даже если они HTTPS. По умолчанию - включено.
TLSForceHost: true
# Список FQDN от которых разрешены запросы, если список пустой - запросы со всех
# хостов будут приниматься. Можно использовать регулярные выражения.
AllowedHosts:
- ip-komrad
- ip-komrad:443
- 127.0.0.1
- 127.0.0.1:3400
- 127.0.0.1:443
- 127.0.0.1:8080
- "::1"
- "[::1]:443"
- komrad.enterprise.lan
- localhost
- localhost:3400
- localhost:443
- localhost:8080
- trofscan
- trofscan:443
TLSTemporaryRedirect: false
# Заголовок Content-Security-Policy
ContentSecurityPolicy: ""
# Заголовок Content-Security-Policy-Report-Only
ContentSecurityPolicyReportOnly: ""
# Позволяет задать пользовательское значение заголовку X-Frame-Options
CustomFrameOptionsValue: ""
# Управляет поведением браузеров при передаче заголовков Referer
ReferrerPolicy: ""
# PermissionsPolicy позволяет селективно управлять настройками браузеров и API
PermissionsPolicy: ""
# Набор имён заголовков из которых можно извлечь имя проксированного хоста
HostsProxyHeaders: []
# Список заголовков, по которым можно принимать запрос как корректный HTTPS запрос,
# полезно при наличии прокси-серверов -- NGINX, HAProxy, Caddy, Apache.
TLSProxyHeaders:
X-Forwarded-Proto: https
# Ограничение периода поиска по событиям в прошлом
EventsSearchBackwardsTimeLimit: 240h
# Настройки логирования модуля Web HTTP
logging:
enabled: true
level: info
# Включение шифрования передачи данных Web сервера
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/server.pem
CertKey: /var/lib/echelon/komrad/certs/server-key.pem
system-pool: false
min-version: "1.3"
# Тип авторизации клиента TLS/mTLS.
# Может принимать одно из значений: no-client-cert, request-client-cert,
# require-any-client-cert, verify-client-cert-if-given,
# require-and-verify-client-cert
client-auth: no-client-cert
grpc:
addr: 127.0.0.1:3401
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/server.pem
CertKey: /var/lib/echelon/komrad/certs/server-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
client:
ClientCert: /var/lib/echelon/komrad/certs/client.pem
ClientKey: /var/lib/echelon/komrad/certs/client-key.pem
starttimeout: 10m
bus:
servers:
- nats://ip-komrad:3490
user: komrad
password: pass
user-credentials: ""
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
tuning:
# Возможность установить время ожидания при соединении.
connect-timeout: 10s
# Возможность установить максимальное количество попыток повторного подключения.
max-reconnects: 1000000
# Устанавливает максимальное количество времени, в течение которого мы будем ждать ответа.
max-wait: 0s
# Параметр для установки периода для клиентских команд ping.
ping-interval: 2m
# Возможность установить максимальное количество запросов ping,
# которые могут остаться без ответа сервера, прежде чем закрыть соединение.
max-pings-outstanding: 2
# Устанавливает максимальное количество незавершенных асинхронных публикаций,
# которые могут быть одновременно запущены.
publish-async-max-pending: 0
# Интервал переподключения.
reconnect-interval: 5s
# Возможность установить время ожидания между попытками повторного подключения.
reconnect-wait: 1s
# Устанавливает соединение в состояние повторного подключения, если оно не может подключиться.
retry-on-failed-connect: false
s3:
endpoint: 127.0.0.1:9050
AccessKeyID: komrad-s3
SecretAccessKey: komrad-s3-password
tls:
disable: false
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
BucketName: komrad-images
database:
pg:
db: komrad-preferences
host: 127.0.0.1
port: 5432
tlsmode: disable
user: postgres
secrets:
type: IN_MEMORY
# /var/run/secrets
SecretsDir: ""
SecretCacheTTL: 5m
SecretExpansion: false
keys:
type: FILESYSTEM
# /var/run/secrets
FilesystemRoot: ""
addresses:
incidentmanagerhttp: http://127.0.0.1:3410
incidentmanagergrpc: 127.0.0.1:3411
correlationdispatcherhttp: http://127.0.0.1:3415
correlationdispatchergrpc: 127.0.0.1:3416
reactorhttp: http://127.0.0.1:3440
scannergrpcserver: 127.0.0.1:3301
processorgrpcserver: 127.0.0.1:3405
# Настройки каналов уведомлений. Доступно подключение неограниченного числа каналов
# электронной почты (SMTP), syslog CEF.
notification:
# Временное окно для накапливания уведомлений и отправкой одним письмом, используется для защиты от спама.
# По умолчанию - 1m (одна минута).
aggregation-window: 1m
# Silence window используется для защиты от спама. При включенной в уведомлениях опции, гарантируется,
# что сообщения по каждой директиве будут приходить не чаще выставленного значения.
# По умолчанию - 1m (одна минута).
silence-window: 1m
# Задержка перед повторной попыткой отправки уведомления из DLQ очереди.
# По умолчанию - 10m (десять минут).
dlq-retry-delay: 10m
# Максимальное время жизни уведомлений в DLQ очереди.
# По умолчанию - 8760h (один год).
dlq-notifications-ttl: 8760h
# Выражение на языке CEL для фильтрации обновлений по инцидентам по статусам, важности и другим параметрам.
# Выражение по-умолчанию: "!is_update || (is_update && status == 'investigating' && severity == 'high')"
# Допустимые значения для статусов (status) : new investigating closed fp
# Допустимые значения для важности (severity): baseline low medium high
# Доступные поля: is_update, status, severity, incident.AssignedTo, incident.StatusReason
# Если указано аналогичное выражение для конкретного транспорта, оно имеет больший приоритет над этим.
cel-filter: "!is_update || (is_update && status == 'investigating' && severity == 'high')"
# Список подключенных каналов для отправки уведомлений по электронной почте.
# Описание параметров для элементов списка:
# name: Имя почтового сервера, используется для отображения в визуальном интерфейсе
# disable: выключить (true) канал либо включить (false)
# client: Настройки клиента почтового сервера"
# host: Адрес хоста SMTP сервера. Например, mail.enterprise.ru
# idletimeout: Время через которое соединение SMTP будет разорвано в случае отсутствия активных сообщений
# password: Пароль почтового ящика. Можно хранить пароль в отдельном файле и указывать путь к нему в виде:
# password: "file:/run/secrets/mailbox_password"
# Тогда сервер будет вычитывать пароль при каждом соединении из файла
# identity: Почтовый адрес отправителя, используется и для аутентификации как параметр identity
# port: Порт SMTP сервера. Обычно один из:
# - 25 ("opportunistic_start_tls" explicit TLS => STARTTLS)
# - 465 ("mandatory_start_tls" implicit TLS)
# - 587 ("opportunistic_start_tls" explicit TLS => STARTTLS)
# local_name: Используется для тонкой настройки при включенном TLS соединении.
# Задаёт имя хоста в команде HELO/EHLO. Если не задана клиент представит себя автоматически
# как "localhost".
# username: Логин почтового аккаунта, например, siem@mail.enterprise.ru
# cel-filter: Выражение на языке CEL для фильтрации обновлений по инцидентам по статусам, важности и другим параметрам.
# start_tls: StartTLS настраивает стратегию информирования почтового сервера о том, что
# почтовый клиент хочет перейти с небезопасного соединения на
# безопасный с использованием TLS.
# SMTP всегда запускается незашифрованным. Команда StartTLS запускает согласование
# между сервером и клиентом.
#
# "opportunistic_start_tls" (в литературе встречается также как Explicit TLS) позволяет
# почтовому клиенту доставлять на самом высоком уровне шифрования,
# который принимает сервер-получатель.
# Если сервер-получатель не принимает соединения с TLS, почтовый клиент попробует согласовать
# с сервером переход на незашифрованное соединение.
# Затем сообщение будет отправлено в незашифрованном текстовом виде.
# Этот метод удобен тем, что вы можете использовать один и тот же порт для зашифрованных и
# обычных текстовых сообщений электронной почты.
#
# "mandatory_start_tls" (в литературе встречается также как or Implicit TLS) требует,
# чтобы почта была отправлена через безопасное соединение.
# Если соединение не зашифровано, отправка почты будет заблокирована.
# Этот метод гораздо более безопасен, чем opportunistic_start_tls, но приводит
# к возможной потере большего количества почты из-за неверной конфигурации
# клиента либо сервера почты.
#
# "no_start_tls" do not starts STARTTLS negotiating with server, do not use it in production!
smtp:
- name: SMTP Service
disable: true
host: 127.0.0.1
idle-timeout: 30s
password: password
port: 465
username: siem-noreply@mail.komrad.enterprise.ru
identity: siem-noreply@mail.komrad.enterprise.ru
cel-filter: ""
start_tls: opportunistic_start_tls
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: false
local_name: ""
# Конфигурация отправки инцидентов по syslog в формате CEF.
# Возможна отправка на протоколы tcp и udp. Возможно включение шифрования передачи данных TLS.
syslog-cef:
- name: syslog CEF
idle-timeout: 30s
dial-timeout: 30s
disable: true
recipient: tcp://127.0.0.1:49000
hostname: komrad-node
mapping: /etc/echelon/komrad/komrad-server-notification-mapping-syslog-cef.yaml
cel-filter: ""
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: true
framing: delimiter
# Список подключенных каналов для отправки уведомлений в Kafka.
# Поддерживается Apache Kafka 2.5+, Redpanda.
# Описание параметров для элементов списка:
# disable: выключить (true) канал либо включить (false)
# cel-filter: индивидуальный фильтр CEL для фильтрации событий через канал
# producer.enable: должен быть всегда true
# producer.topic: имя целевого топика в Kafka, будет создан если не существует и если есть права на создание
# producer.compression: сжатие данных, если пусто - не сжимать, возможные значения - gz, zstd, snappy, lz4
# brokers: список адресов брокеров Kafka, IPv4 или DNS и порт
# client-id: имя клиента, можно оставить пустым
# rack-id: идентификатор стойки, можно оставить пустым
# tls: настройки защиты соединения TLS, можно указать клиентский сертификат для включения mTLS
# либо указать самоподписной сертификат, либо использовать сертификаты ОС.
# startup.establishConnectionEagerly: если true то сервер будет завершаться с ошибкой на старте
# при недоступности Kafka, по умолчанию отключена, false.
# sasl.enabled: включить SASL для аутентификации в Kafka
# sasl.mechanism: пусто означает PLAIN, или SCRAM-SHA-256 или SCRAM-SHA-512 или GSSAPI или OAUTHBEARER
# sasl.oauth: настройки OAuth если включен sasl.mechanism=OAUTHBEARER
# sasl.gssapi: настройки Kerberos/GSSAPI если включен sasl.mechanism=GSSAPI
# sasl.username: имя пользователя если sasl.mechanism PLAIN или SCRAM-SHA-256 или SCRAM-SHA-512
# sasl.password: пароль если sasl.mechanism PLAIN или хэш пароля для SCRAM-SHA-256 или SCRAM-SHA-512
kafka:
- name: kafka-notifications
disable: true
cel-filter: true
producer:
enable: true
compression: zstd
brokers:
- 10.0.10.42:9092
client-id: ""
rack-id: ""
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: true
startup:
establishConnectionEagerly: false
sasl:
enabled: false
username: ""
password: ""
mechanism: ""
oauth: {}
gssapi: {}
webhook:
- name: telegram
url: https://api.telegram.org/bot<INSERT_TOKEN>/sendMessage
disable: true
method: POST
content-type: application/json
cel-filter: ""
body-template: "{\"chat_id\":\"insert user id\",\"text\":\"Зарегистрирован инцидент №{{ incident.ID }} по директиве \\\"{{ directive }}\\\" (ID={{ incident.DirectiveID }}).\"}"
client:
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: true
timeout: 30s
retroindexationsegment: 96h
eventfieldscache:
cacheexpiration: 1m
widgets:
byseverityinterval: 168h0m0s
bystatusinterval: 24h0m0s
requesttimeout: 5s
updateinterval: 1h0m0s
reconnecttimeout: 5s
sources:
kind: clickhouse
clickhouse:
name: komrad_events
user: komrad
password: pass
host: 127.0.0.1
port: 9000
debug: false
sslmode: disable
dial-timeout: 30s
compress: ""
connection-open-strategy: in-order
max-open-conns: 15
max-idle-conns: 10
conn-max-lifetime: 1h
settings: {}
tls:
disable: true
ServerName: ""
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
jwt:
secret: komrad
token-expiration: 1m
# Настройки вывода логов приложения.
# Сервис может отправлять логи сразу в несколько целей -- файл, системный журнал ОС, консоль, syslog.
# Включить вывод логов в консоль для режима отладки приложения
# - filename: stdout
# format: color
# filter: ""
# levels: [all]
# Включить вывод логов в файл с ротацией.
# ВАЖНО: старые файлы с логами не удаляются, необходимо производить мониторинг использования диска.
# - filename: "/var/log/echelon/komrad/service.log"
# format: json
# возможно задать выражение для фильтрации выводимых логов
# filter: ""
# levels: [info, error, warn, panic, fatal]
log:
- filename: systemd/journal
format: json
filter: ""
levels:
- info
- error
- panic
- fatal
- warn
monitoring:
http:
correlationdispatcher:
url: http://127.0.0.1:3415
interval: 10s
incidentmanager:
url: http://127.0.0.1:3410
interval: 10s
reactor:
url: 127.0.0.1:3441
interval: 10s
statestoragepath: .
event-card:
allowed-redirect-hosts:
- 127.0.0.1
- "*.etecs.ru"
# Внешний адрес КОМРАД, использующийся для указания источника инцидента, отправленного во внешние системы.
external-provider-address: https://127.0.0.1:443
# Адрес сервиса, использующегося для предоставления внешним системам возможности синхронизировать информацию об инцидентах.
external-incidents-synchronizer: 127.0.0.1:3440
# Путь до директории с пакетами экспертиз. Они будут сохранены в системе после запуска всей системы.
expertise-pack-import-path: /var/lib/echelon/komrad/expertise-packs