Конфигурация КОМРАД сервера
Описание возможностей настройки конфигурации komrad-server.yaml
.
Для редактирования конфигурационного файла выполните команду:
sudo nano /etc/echelon/komrad/komrad-server.yaml
Лицензия на продукт
Лицензия на продукт, можно вставить путь к файлу лицензии в поле path либо текст лицензии base64 в поле license.
license:
path: /etc/echelon/komrad/license.lic (1)
license: |
ewogICAgImlkI ... aFo3QSIKfQ== (2)
transport: SMTP Service (3)
email: info@info.ru
AlertInterval: 2 (4)
1 | приоритетно - путь к файлу лицензии; |
2 | опционально (необязательно) - текст лицензии закодированный в base64; |
3 | канал SMTP для отправки уведомлений об окончании; |
4 | интервал отправки e-mail сообщений (в часах); |
Пароль и модификатор входа для хэш-функции (соль)
Пароль и соль для шифрования секретов (паролей, учётных данных), хранимых в БД КОМРАД.
secrets:
storage:
type: FILESYSTEM
secretsdir: /home/user/echelon/polygon/komrad/build/secrets
SecretCacheTTL: 5m
SecretExpansion: true
FilesystemRoot: /home/user/echelon/polygon/komrad/build/secrets
vault:
address: https://127.0.0.1:8200 (1)
AgentAddress: "" (2)
MaxRetries: 2 (3)
timeout: 60s (4)
SRVLookup: true (5)
tls:
disable: false
ServerName: komrad-server
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
keys:
type: FILESYSTEM
FilesystemRoot: /home/user/echelon/polygon/komrad/build/keys
keysize: 32
password: default-insecure-password
salt: default-insecure-salt
1 | адрес Vault; |
2 | адрес агента Vault; |
3 | максимальное число повторов при ошибке от агента Vault (по умолчанию 2); |
4 | параметр таймаута для HTTP клиента Vault (по умолчанию 60s); |
5 | SRVLookup разрешает клиенту Vault осуществлять поиск агентов через DNS SRVLookup; |
Авторизация PAuth
Настройки связи с сервером авторизации PAuth.
auth:
addr: localhost:2021 (1)
tls:
disable: true
ServerName: komrad-server
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
http:
addr: ":3400" (2)
PublicDomain: localhost (3)
cookieexpiration: 86400 (4)
CookieKeyPath: /etc/echelon/komrad/cookie-key.dat (5)
cors: (6)
enabled: true
allowedorigins: (7)
- https://localhost
- https://localhost:3400
- https://localhost:9050
- http://localhost:8080
- https://localhost:3400
- https://localhost:443
secure:
enabled: false
BrowserXssFilter: false (8)
CustomBrowserXssValue: "" (9)
ContentTypeNosniff: false (10)
ForceSTSHeader: true (11)
STSIncludeSubdomains: true (12)
STSPreload: false (13)
STSSeconds: 315360000 (14)
FrameDeny: true (15)
IsDevelopment: false (16)
TLSRedirect: true (17)
TLSForceHost: true (18)
AllowedHosts: (19)
- localhost
- localhost:3400
- localhost
- localhost:3400
- localhost:443
- localhost:8080
- komrad.enterprise.lan
TLSTemporaryRedirect: false (20)
ContentSecurityPolicy: "" (21)
ContentSecurityPolicyReportOnly: "" (22)
CustomFrameOptionsValue: "" (23)
ReferrerPolicy: "" (24)
PermissionsPolicy: "" (25)
HostsProxyHeaders: [] (26)
TLSProxyHeaders: (27)
X-Forwarded-Proto: httpsм
EventsSearchBackwardsTimeLimit: 240h (28)
logging: (29)
enabled: true
level: info
tls: (30)
disable: true
ServerName: komrad-server
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
1 | адрес gRPC сервера; |
2 | адрес для старта HTTP сервера. Если выбран порт 443, тогда сервису потребуется расширенные привилегии в ОС; |
3 | имя публичного домена (пример: komrad.enterprise.lan); |
4 | срок истечения cookie в секундах, по умолчанию одни сутки (86 400); |
5 | путь до файла где будет храниться один из двух ключей для генерации Secure Cookie; |
6 | настройки защиты для Cross-Origin-Sharing (CORS); |
7 | при возникновении ошибок с CORS возможный выход - небезопасная настройка allowedorigins: [*] |
8 | по умолчанию отключен. Добавить заголовок X-XSS-Protection со значением 1; mode=block ; |
9 | CustomBrowserXssValue позволяет указать собственное значение заголовка X-XSS-Protection, если не пустая строка - имеет приоритет перед BrowserXssFilter; |
10 | добавить заголовок X-Content-Type-Options со значением nosniff ; |
11 | добавить заголовок Strict Transport Security даже для попыток HTTP соединений, по умолчанию включено. Этот параметр можно выключить если вы используете proxe (nginx, caddy, haproxy, apache); |
12 | применять Strict-Transport-Security для поддоменов, по умолчанию включено; |
13 | добавлять флаг preload к заголовку Strict-Transport-Security, по умолчанию отключено; |
14 | определяет срок жизни в секундах (maxage) заголовка Strict-Transport-Security; |
15 | добавляет параметр X-Frame-Options со значением DENY, по умолчанию включен; |
16 | включает режим отладки приложения, отключает большинство настроек безопасности; |
17 | включить обязательный редирект HTTP на HTTPS, по умолчанию включено; |
18 | если задан параметр TLSHost - автоматически переадресовывать все запросы с оличными от TLSHost хостами, даже если они HTTPS. По умолчанию включено; |
19 | список FQDN от которых разрешены запросы, если список пустой - запросы со всех хостов будут приниматься. Можно использовать регулярные выражения; |
20 | использовать 302 HTTP статус вместо 301 во время переадресации запросов TLS; |
21 | заголовок Content-Security-Police; |
22 | заголовок Content-Security-Police-Report-Only; |
23 | позволяет задавать пользовательские заголовки X-Frame-Options; |
24 | управляет поведение браузеров при передаче заголовков Referer; |
25 | PermissionPolicy позволяет селективно управлять настройками браузера и API; |
26 | Набор имён заголовков из которых можно извлечь имя проксированного хоста; |
27 | список заголовков, по которым можно принимать запрос как корректный HTTPs запрос, полезно при наличии прокси-сервера: nginx, hsproxy, caddy, apache; |
28 | Ограничение периода поиска по событиям в прошлом; |
29 | настройки логирования модуля Web HTTP; |
30 | включение шифрования передачи данных Web сервера; |
gRPC
grpc:
addr: ":3401"
tls:
disable: true
ServerName: komrad-server
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
client:
ClientCert: /var/lib/echelon/komrad/certs/client.pem
ClientKey: /var/lib/echelon/komrad/certs/client-key.pem
komradbusclient:
url: nats://localhost:3490
cluster: polygon
clientid: komrad-server
starttimeout: 60s
bus:
name: komrad-server
servers: polygon
url: nats://localhost:3490
s3:
endpoint: localhost:9050
AccessKeyID: komradadmin
SecretAccessKey: komradadmin
tls: (1)
disable: true
ServerName: komrad-server (2)
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem (3)
Cert: /var/lib/echelon/komrad/certs/client.pem (4)
CertKey: /var/lib/echelon/komrad/certs/client-key.pem (5)
BucketName: komrad-images
1 | TLS для создания защищённого соединения; |
2 | имя сервера; |
3 | корневой сертификат Центра Сертификации; |
4 | сертификат TLS; |
5 | приватный ключ сертификата TLS; |
DB
database:
pg:
TLSCertPath: /var/lib/echelon/komrad/certs/client.pem
TLSKeyPath: /var/lib/echelon/komrad/certs/client-key.pem
TLSRootCAPath: /var/lib/echelon/komrad/certs/ca.pem
db: komrad-preferences
host: localhost
password: pass
port: 5432
tlsmode: disable
user: postgres
secrets:
type: IN_MEMORY
SecretsDir: ""
SecretCacheTTL: 5m
SecretExpansion: false
keys:
type: FILESYSTEM
FilesystemRoot: ""
addresses:
incidentmanagerhttp: http://localhost:3410
incidentmanagergrpc: localhost:3411
correlationdispatcherhttp: http://localhost:3415
correlationdispatchergrpc: localhost:3416
reactorhttp: http://localhost:3440
scannergrpcserver: localhost:3301
processorgrpcserver: localhost:3405
widgetsgrpc: localhost:3446
searchgrpc: localhost:3456
Уведомления инцидентов
notificationtransport:
transports:
senderaddress: sender-address@service.address
aggregation-window: 1m
emailtransports:
name: SMTP Service
client:
host: localhost
idletimeout: 30s
password: password
port: 465
username: email-address@service.address
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: komrad-server
Insecure: true
syslogtransports:
name: syslog service
client:
idletimeout: 30s
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: komrad-server
Insecure: true
retroindexationsegment: 24h
gettingdocstimeout: 15s
gettingkeystimeout: 30s
eventfieldscache:
cacheexpiration: 1m
widgets:
byseverityinterval: 168h0m0s
bystatusinterval: 24h0m0s
requesttimeout: 5s
updateinterval: 1h0m0s
reconnecttimeout: 5s
jwt:
secret: komrad
token-expiration: 1m
Настройка выводов логов приложения
Сервис может отправлять логи сразу в несколько целей: файл, системный журнал ОС, консоль, syslog.
log:
- filename: stdout
format: color
filter: ""
levels:
- all
monitoring:
http:
correlationdispatcher:
url: http://localhost:3415
interval: 10s
incidentmanager:
url: http://localhost:3410
interval: 10s
reactor:
url: localhost:3441
interval: 10s
statestoragepath: .