mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-03-24 05:22:38 +01:00
Compare commits
59 Commits
zeekload
...
quickfixes
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d3938b61d2 | ||
|
|
83b7fecbbc | ||
|
|
d227cf71c8 | ||
|
|
020b9db610 | ||
|
|
cceaebe350 | ||
|
|
a982056363 | ||
|
|
db81834e06 | ||
|
|
318e4ec54b | ||
|
|
20bf05e9f3 | ||
|
|
4254769e68 | ||
|
|
c16ff2bd99 | ||
|
|
0c88b32fc2 | ||
|
|
0814f34f0e | ||
|
|
b6366e52ba | ||
|
|
825f377d2d | ||
|
|
74ad2990a7 | ||
|
|
738ce62d35 | ||
|
|
057ec6f0f1 | ||
|
|
20c4da50b1 | ||
|
|
5fb396fc09 | ||
|
|
a0b1e31717 | ||
|
|
cacae12ba3 | ||
|
|
83bd8a025c | ||
|
|
2a271b950b | ||
|
|
e19e83bebb | ||
|
|
066918e27d | ||
|
|
930985b770 | ||
|
|
346dc446de | ||
|
|
7e7b8dc8a8 | ||
|
|
341471d38e | ||
|
|
2349750e13 | ||
|
|
2c6c502067 | ||
|
|
00986dc2fd | ||
|
|
d60bef1371 | ||
|
|
5806a85214 | ||
|
|
2d97dfc8a1 | ||
|
|
d6263812a6 | ||
|
|
ef7d1771ab | ||
|
|
4dc377c99f | ||
|
|
a52e5d0474 | ||
|
|
1a943aefc5 | ||
|
|
4bb61d999d | ||
|
|
d2d2f0cb5f | ||
|
|
7bf63b822d | ||
|
|
1a7d72c630 | ||
|
|
4224713cc6 | ||
|
|
b452e70419 | ||
|
|
6809497730 | ||
|
|
eaf3f10adc | ||
|
|
84f4e460f6 | ||
|
|
88841c9814 | ||
|
|
744d8fdd5e | ||
|
|
6feb06e623 | ||
|
|
afc14ec29d | ||
|
|
59134c65d0 | ||
|
|
614537998a | ||
|
|
d2cee468a0 | ||
|
|
94f454c311 | ||
|
|
17881c9a36 |
@@ -1,24 +1,14 @@
|
|||||||
from os import path
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
def check():
|
def check():
|
||||||
|
|
||||||
osfam = __grains__['os_family']
|
|
||||||
retval = 'False'
|
retval = 'False'
|
||||||
|
|
||||||
if osfam == 'Debian':
|
cmd = 'needs-restarting -r > /dev/null 2>&1'
|
||||||
if path.exists('/var/run/reboot-required'):
|
|
||||||
retval = 'True'
|
|
||||||
|
|
||||||
elif osfam == 'RedHat':
|
try:
|
||||||
cmd = 'needs-restarting -r > /dev/null 2>&1'
|
needs_restarting = subprocess.check_call(cmd, shell=True)
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
try:
|
retval = 'True'
|
||||||
needs_restarting = subprocess.check_call(cmd, shell=True)
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
retval = 'True'
|
|
||||||
|
|
||||||
else:
|
|
||||||
retval = 'Unsupported OS: %s' % os
|
|
||||||
|
|
||||||
return retval
|
return retval
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
backup:
|
backup:
|
||||||
locations:
|
locations:
|
||||||
description: List of locations to back up to the destination.
|
description: List of locations to back up to the destination.
|
||||||
helpLink: backup.html
|
helpLink: backup
|
||||||
global: True
|
global: True
|
||||||
destination:
|
destination:
|
||||||
description: Directory to store the configuration backups in.
|
description: Directory to store the configuration backups in.
|
||||||
helpLink: backup.html
|
helpLink: backup
|
||||||
global: True
|
global: True
|
||||||
|
|
||||||
@@ -3,14 +3,14 @@ bpf:
|
|||||||
description: List of BPF filters to apply to the PCAP engine.
|
description: List of BPF filters to apply to the PCAP engine.
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: bpf.html
|
helpLink: bpf
|
||||||
suricata:
|
suricata:
|
||||||
description: List of BPF filters to apply to Suricata. This will apply to alerts and, if enabled, to metadata and PCAP logs generated by Suricata.
|
description: List of BPF filters to apply to Suricata. This will apply to alerts and, if enabled, to metadata and PCAP logs generated by Suricata.
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: bpf.html
|
helpLink: bpf
|
||||||
zeek:
|
zeek:
|
||||||
description: List of BPF filters to apply to Zeek.
|
description: List of BPF filters to apply to Zeek.
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: bpf.html
|
helpLink: bpf
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
@@ -18,9 +16,3 @@ trusttheca:
|
|||||||
- show_changes: False
|
- show_changes: False
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
|
|
||||||
{% if GLOBALS.os_family == 'Debian' %}
|
|
||||||
symlinkca:
|
|
||||||
file.symlink:
|
|
||||||
- target: /etc/pki/tls/certs/intca.crt
|
|
||||||
- name: /etc/ssl/certs/intca.crt
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"registry-mirrors": [
|
|
||||||
"https://:5000"
|
|
||||||
],
|
|
||||||
"bip": "172.17.0.1/24",
|
|
||||||
"default-address-pools": [
|
|
||||||
{
|
|
||||||
"base": "172.17.0.0/24",
|
|
||||||
"size": 24
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default-ulimits": {
|
|
||||||
"nofile": {
|
|
||||||
"Name": "nofile",
|
|
||||||
"Soft": 1048576,
|
|
||||||
"Hard": 1048576
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -20,11 +20,6 @@ kernel.printk:
|
|||||||
sysctl.present:
|
sysctl.present:
|
||||||
- value: "3 4 1 3"
|
- value: "3 4 1 3"
|
||||||
|
|
||||||
# Remove variables.txt from /tmp - This is temp
|
|
||||||
rmvariablesfile:
|
|
||||||
file.absent:
|
|
||||||
- name: /tmp/variables.txt
|
|
||||||
|
|
||||||
# Add socore Group
|
# Add socore Group
|
||||||
socoregroup:
|
socoregroup:
|
||||||
group.present:
|
group.present:
|
||||||
@@ -149,28 +144,6 @@ common_sbin_jinja:
|
|||||||
- so-import-pcap
|
- so-import-pcap
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if GLOBALS.role == 'so-heavynode' %}
|
|
||||||
remove_so-pcap-import_heavynode:
|
|
||||||
file.absent:
|
|
||||||
- name: /usr/sbin/so-pcap-import
|
|
||||||
|
|
||||||
remove_so-import-pcap_heavynode:
|
|
||||||
file.absent:
|
|
||||||
- name: /usr/sbin/so-import-pcap
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if not GLOBALS.is_manager%}
|
|
||||||
# prior to 2.4.50 these scripts were in common/tools/sbin on the manager because of soup and distributed to non managers
|
|
||||||
# these two states remove the scripts from non manager nodes
|
|
||||||
remove_soup:
|
|
||||||
file.absent:
|
|
||||||
- name: /usr/sbin/soup
|
|
||||||
|
|
||||||
remove_so-firewall:
|
|
||||||
file.absent:
|
|
||||||
- name: /usr/sbin/so-firewall
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
so-status_script:
|
so-status_script:
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: /usr/sbin/so-status
|
- name: /usr/sbin/so-status
|
||||||
|
|||||||
@@ -1,52 +1,5 @@
|
|||||||
# we cannot import GLOBALS from vars/globals.map.jinja in this state since it is called in setup.virt.init
|
# we cannot import GLOBALS from vars/globals.map.jinja in this state since it is called in setup.virt.init
|
||||||
# since it is early in setup of a new VM, the pillars imported in GLOBALS are not yet defined
|
# since it is early in setup of a new VM, the pillars imported in GLOBALS are not yet defined
|
||||||
{% if grains.os_family == 'Debian' %}
|
|
||||||
commonpkgs:
|
|
||||||
pkg.installed:
|
|
||||||
- skip_suggestions: True
|
|
||||||
- pkgs:
|
|
||||||
- apache2-utils
|
|
||||||
- wget
|
|
||||||
- ntpdate
|
|
||||||
- jq
|
|
||||||
- curl
|
|
||||||
- ca-certificates
|
|
||||||
- software-properties-common
|
|
||||||
- apt-transport-https
|
|
||||||
- openssl
|
|
||||||
- netcat-openbsd
|
|
||||||
- sqlite3
|
|
||||||
- libssl-dev
|
|
||||||
- procps
|
|
||||||
- python3-dateutil
|
|
||||||
- python3-docker
|
|
||||||
- python3-packaging
|
|
||||||
- python3-lxml
|
|
||||||
- git
|
|
||||||
- rsync
|
|
||||||
- vim
|
|
||||||
- tar
|
|
||||||
- unzip
|
|
||||||
- bc
|
|
||||||
{% if grains.oscodename != 'focal' %}
|
|
||||||
- python3-rich
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if grains.oscodename == 'focal' %}
|
|
||||||
# since Ubuntu requires and internet connection we can use pip to install modules
|
|
||||||
python3-pip:
|
|
||||||
pkg.installed
|
|
||||||
|
|
||||||
python-rich:
|
|
||||||
pip.installed:
|
|
||||||
- name: rich
|
|
||||||
- target: /usr/local/lib/python3.8/dist-packages/
|
|
||||||
- require:
|
|
||||||
- pkg: python3-pip
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if grains.os_family == 'RedHat' %}
|
|
||||||
|
|
||||||
remove_mariadb:
|
remove_mariadb:
|
||||||
pkg.removed:
|
pkg.removed:
|
||||||
@@ -84,5 +37,3 @@ commonpkgs:
|
|||||||
- unzip
|
- unzip
|
||||||
- wget
|
- wget
|
||||||
- yum-utils
|
- yum-utils
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -11,14 +11,6 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% set SOVERSION = salt['file.read']('/etc/soversion').strip() %}
|
{% set SOVERSION = salt['file.read']('/etc/soversion').strip() %}
|
||||||
|
|
||||||
remove_common_soup:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/saltstack/default/salt/common/tools/sbin/soup
|
|
||||||
|
|
||||||
remove_common_so-firewall:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/saltstack/default/salt/common/tools/sbin/so-firewall
|
|
||||||
|
|
||||||
# This section is used to put the scripts in place in the Salt file system
|
# This section is used to put the scripts in place in the Salt file system
|
||||||
# in case a state run tries to overwrite what we do in the next section.
|
# in case a state run tries to overwrite what we do in the next section.
|
||||||
copy_so-common_common_tools_sbin:
|
copy_so-common_common_tools_sbin:
|
||||||
|
|||||||
@@ -349,21 +349,16 @@ get_random_value() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
gpg_rpm_import() {
|
gpg_rpm_import() {
|
||||||
if [[ $is_oracle ]]; then
|
if [[ "$WHATWOULDYOUSAYYAHDOHERE" == "setup" ]]; then
|
||||||
if [[ "$WHATWOULDYOUSAYYAHDOHERE" == "setup" ]]; then
|
local RPMKEYSLOC="../salt/repo/client/files/$OS/keys"
|
||||||
local RPMKEYSLOC="../salt/repo/client/files/$OS/keys"
|
else
|
||||||
else
|
local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/$OS/keys"
|
||||||
local RPMKEYSLOC="$UPDATE_DIR/salt/repo/client/files/$OS/keys"
|
|
||||||
fi
|
|
||||||
RPMKEYS=('RPM-GPG-KEY-oracle' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub')
|
|
||||||
for RPMKEY in "${RPMKEYS[@]}"; do
|
|
||||||
rpm --import $RPMKEYSLOC/$RPMKEY
|
|
||||||
echo "Imported $RPMKEY"
|
|
||||||
done
|
|
||||||
elif [[ $is_rpm ]]; then
|
|
||||||
echo "Importing the security onion GPG key"
|
|
||||||
rpm --import ../salt/repo/client/files/oracle/keys/securityonion.pub
|
|
||||||
fi
|
fi
|
||||||
|
RPMKEYS=('RPM-GPG-KEY-oracle' 'RPM-GPG-KEY-EPEL-9' 'SALT-PROJECT-GPG-PUBKEY-2023.pub' 'docker.pub' 'securityonion.pub')
|
||||||
|
for RPMKEY in "${RPMKEYS[@]}"; do
|
||||||
|
rpm --import $RPMKEYSLOC/$RPMKEY
|
||||||
|
echo "Imported $RPMKEY"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
header() {
|
header() {
|
||||||
@@ -550,6 +545,22 @@ retry() {
|
|||||||
return $exitcode
|
return $exitcode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rollover_index() {
|
||||||
|
idx=$1
|
||||||
|
exists=$(so-elasticsearch-query $idx -o /dev/null -w "%{http_code}")
|
||||||
|
if [[ $exists -eq 200 ]]; then
|
||||||
|
rollover=$(so-elasticsearch-query $idx/_rollover -o /dev/null -w "%{http_code}" -XPOST)
|
||||||
|
|
||||||
|
if [[ $rollover -eq 200 ]]; then
|
||||||
|
echo "Successfully triggered rollover for $idx..."
|
||||||
|
else
|
||||||
|
echo "Could not trigger rollover for $idx..."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Could not find index $idx..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
run_check_net_err() {
|
run_check_net_err() {
|
||||||
local cmd=$1
|
local cmd=$1
|
||||||
local err_msg=${2:-"Unknown error occured, please check /root/$WHATWOULDYOUSAYYAHDOHERE.log for details."} # Really need to rename that variable
|
local err_msg=${2:-"Unknown error occured, please check /root/$WHATWOULDYOUSAYYAHDOHERE.log for details."} # Really need to rename that variable
|
||||||
@@ -615,69 +626,19 @@ salt_minion_count() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set_os() {
|
set_os() {
|
||||||
if [ -f /etc/redhat-release ]; then
|
if [ -f /etc/redhat-release ] && grep -q "Red Hat Enterprise Linux release 9" /etc/redhat-release && [ -f /etc/oracle-release ]; then
|
||||||
if grep -q "Rocky Linux release 9" /etc/redhat-release; then
|
OS=oracle
|
||||||
OS=rocky
|
OSVER=9
|
||||||
OSVER=9
|
is_oracle=true
|
||||||
is_rocky=true
|
is_rpm=true
|
||||||
is_rpm=true
|
|
||||||
elif grep -q "CentOS Stream release 9" /etc/redhat-release; then
|
|
||||||
OS=centos
|
|
||||||
OSVER=9
|
|
||||||
is_centos=true
|
|
||||||
is_rpm=true
|
|
||||||
elif grep -q "AlmaLinux release 9" /etc/redhat-release; then
|
|
||||||
OS=alma
|
|
||||||
OSVER=9
|
|
||||||
is_alma=true
|
|
||||||
is_rpm=true
|
|
||||||
elif grep -q "Red Hat Enterprise Linux release 9" /etc/redhat-release; then
|
|
||||||
if [ -f /etc/oracle-release ]; then
|
|
||||||
OS=oracle
|
|
||||||
OSVER=9
|
|
||||||
is_oracle=true
|
|
||||||
is_rpm=true
|
|
||||||
else
|
|
||||||
OS=rhel
|
|
||||||
OSVER=9
|
|
||||||
is_rhel=true
|
|
||||||
is_rpm=true
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
cron_service_name="crond"
|
|
||||||
elif [ -f /etc/os-release ]; then
|
|
||||||
if grep -q "UBUNTU_CODENAME=focal" /etc/os-release; then
|
|
||||||
OSVER=focal
|
|
||||||
UBVER=20.04
|
|
||||||
OS=ubuntu
|
|
||||||
is_ubuntu=true
|
|
||||||
is_deb=true
|
|
||||||
elif grep -q "UBUNTU_CODENAME=jammy" /etc/os-release; then
|
|
||||||
OSVER=jammy
|
|
||||||
UBVER=22.04
|
|
||||||
OS=ubuntu
|
|
||||||
is_ubuntu=true
|
|
||||||
is_deb=true
|
|
||||||
elif grep -q "VERSION_CODENAME=bookworm" /etc/os-release; then
|
|
||||||
OSVER=bookworm
|
|
||||||
DEBVER=12
|
|
||||||
is_debian=true
|
|
||||||
OS=debian
|
|
||||||
is_deb=true
|
|
||||||
fi
|
|
||||||
cron_service_name="cron"
|
|
||||||
fi
|
fi
|
||||||
|
cron_service_name="crond"
|
||||||
}
|
}
|
||||||
|
|
||||||
set_minionid() {
|
set_minionid() {
|
||||||
MINIONID=$(lookup_grain id)
|
MINIONID=$(lookup_grain id)
|
||||||
}
|
}
|
||||||
|
|
||||||
set_palette() {
|
|
||||||
if [[ $is_deb ]]; then
|
|
||||||
update-alternatives --set newt-palette /etc/newt/palette.original
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
set_version() {
|
set_version() {
|
||||||
CURRENTVERSION=0.0.0
|
CURRENTVERSION=0.0.0
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ if [[ $EXCLUDE_STARTUP_ERRORS == 'Y' ]]; then
|
|||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|not configured for GeoIP" # SO does not bundle the maxminddb with Zeek
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|not configured for GeoIP" # SO does not bundle the maxminddb with Zeek
|
||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|HTTP 404: Not Found" # Salt loops until Kratos returns 200, during startup Kratos may not be ready
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|HTTP 404: Not Found" # Salt loops until Kratos returns 200, during startup Kratos may not be ready
|
||||||
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Cancelling deferred write event maybeFenceReplicas because the event queue is now closed" # Kafka controller log during shutdown/restart
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Cancelling deferred write event maybeFenceReplicas because the event queue is now closed" # Kafka controller log during shutdown/restart
|
||||||
|
EXCLUDED_ERRORS="$EXCLUDED_ERRORS|Redis may have been restarted" # Redis likely restarted by salt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $EXCLUDE_FALSE_POSITIVE_ERRORS == 'Y' ]]; then
|
if [[ $EXCLUDE_FALSE_POSITIVE_ERRORS == 'Y' ]]; then
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
||||||
# Elastic License 2.0.
|
|
||||||
|
|
||||||
so-curator:
|
|
||||||
docker_container.absent:
|
|
||||||
- force: True
|
|
||||||
|
|
||||||
so-curator_so-status.disabled:
|
|
||||||
file.line:
|
|
||||||
- name: /opt/so/conf/so-status/so-status.conf
|
|
||||||
- match: ^so-curator$
|
|
||||||
- mode: delete
|
|
||||||
|
|
||||||
so-curator-cluster-close:
|
|
||||||
cron.absent:
|
|
||||||
- identifier: so-curator-cluster-close
|
|
||||||
|
|
||||||
so-curator-cluster-delete:
|
|
||||||
cron.absent:
|
|
||||||
- identifier: so-curator-cluster-delete
|
|
||||||
|
|
||||||
delete_curator_configuration:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/conf/curator
|
|
||||||
- recurse: True
|
|
||||||
|
|
||||||
{% set files = salt.file.find(path='/usr/sbin', name='so-curator*') %}
|
|
||||||
{% if files|length > 0 %}
|
|
||||||
delete_curator_scripts:
|
|
||||||
file.absent:
|
|
||||||
- names: {{files|yaml}}
|
|
||||||
{% endif %}
|
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
docker:
|
docker:
|
||||||
range: '172.17.1.0/24'
|
range: '172.17.1.0/24'
|
||||||
gateway: '172.17.1.1'
|
gateway: '172.17.1.1'
|
||||||
|
ulimits:
|
||||||
|
- name: nofile
|
||||||
|
soft: 1048576
|
||||||
|
hard: 1048576
|
||||||
containers:
|
containers:
|
||||||
'so-dockerregistry':
|
'so-dockerregistry':
|
||||||
final_octet: 20
|
final_octet: 20
|
||||||
@@ -9,6 +13,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-elastic-fleet':
|
'so-elastic-fleet':
|
||||||
final_octet: 21
|
final_octet: 21
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -16,6 +21,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-elasticsearch':
|
'so-elasticsearch':
|
||||||
final_octet: 22
|
final_octet: 22
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -24,6 +30,16 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits:
|
||||||
|
- name: memlock
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
- name: nofile
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
- name: nproc
|
||||||
|
soft: 4096
|
||||||
|
hard: 4096
|
||||||
'so-influxdb':
|
'so-influxdb':
|
||||||
final_octet: 26
|
final_octet: 26
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -31,6 +47,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-kibana':
|
'so-kibana':
|
||||||
final_octet: 27
|
final_octet: 27
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -38,6 +55,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-kratos':
|
'so-kratos':
|
||||||
final_octet: 28
|
final_octet: 28
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -46,6 +64,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-hydra':
|
'so-hydra':
|
||||||
final_octet: 30
|
final_octet: 30
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -54,6 +73,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-logstash':
|
'so-logstash':
|
||||||
final_octet: 29
|
final_octet: 29
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -70,6 +90,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-nginx':
|
'so-nginx':
|
||||||
final_octet: 31
|
final_octet: 31
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -81,6 +102,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-nginx-fleet-node':
|
'so-nginx-fleet-node':
|
||||||
final_octet: 31
|
final_octet: 31
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -88,6 +110,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-redis':
|
'so-redis':
|
||||||
final_octet: 33
|
final_octet: 33
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -96,11 +119,13 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-sensoroni':
|
'so-sensoroni':
|
||||||
final_octet: 99
|
final_octet: 99
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-soc':
|
'so-soc':
|
||||||
final_octet: 34
|
final_octet: 34
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -108,16 +133,19 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-backend':
|
'so-strelka-backend':
|
||||||
final_octet: 36
|
final_octet: 36
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-filestream':
|
'so-strelka-filestream':
|
||||||
final_octet: 37
|
final_octet: 37
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-frontend':
|
'so-strelka-frontend':
|
||||||
final_octet: 38
|
final_octet: 38
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -125,11 +153,13 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-manager':
|
'so-strelka-manager':
|
||||||
final_octet: 39
|
final_octet: 39
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-gatekeeper':
|
'so-strelka-gatekeeper':
|
||||||
final_octet: 40
|
final_octet: 40
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -137,6 +167,7 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-strelka-coordinator':
|
'so-strelka-coordinator':
|
||||||
final_octet: 41
|
final_octet: 41
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -144,11 +175,13 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-elastalert':
|
'so-elastalert':
|
||||||
final_octet: 42
|
final_octet: 42
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-elastic-fleet-package-registry':
|
'so-elastic-fleet-package-registry':
|
||||||
final_octet: 44
|
final_octet: 44
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -156,11 +189,13 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-idh':
|
'so-idh':
|
||||||
final_octet: 45
|
final_octet: 45
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-elastic-agent':
|
'so-elastic-agent':
|
||||||
final_octet: 46
|
final_octet: 46
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -169,23 +204,28 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-telegraf':
|
'so-telegraf':
|
||||||
final_octet: 99
|
final_octet: 99
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
'so-suricata':
|
'so-suricata':
|
||||||
final_octet: 99
|
final_octet: 99
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
ulimits:
|
ulimits: []
|
||||||
- memlock=524288000
|
|
||||||
'so-zeek':
|
'so-zeek':
|
||||||
final_octet: 99
|
final_octet: 99
|
||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits:
|
||||||
|
- name: core
|
||||||
|
soft: 0
|
||||||
|
hard: 0
|
||||||
'so-kafka':
|
'so-kafka':
|
||||||
final_octet: 88
|
final_octet: 88
|
||||||
port_bindings:
|
port_bindings:
|
||||||
@@ -196,3 +236,4 @@ docker:
|
|||||||
custom_bind_mounts: []
|
custom_bind_mounts: []
|
||||||
extra_hosts: []
|
extra_hosts: []
|
||||||
extra_env: []
|
extra_env: []
|
||||||
|
ulimits: []
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{% import_yaml 'docker/defaults.yaml' as DOCKERDEFAULTS %}
|
{% import_yaml 'docker/defaults.yaml' as DOCKERDEFAULTS %}
|
||||||
{% set DOCKER = salt['pillar.get']('docker', DOCKERDEFAULTS.docker, merge=True) %}
|
{% set DOCKERMERGED = salt['pillar.get']('docker', DOCKERDEFAULTS.docker, merge=True) %}
|
||||||
{% set RANGESPLIT = DOCKER.range.split('.') %}
|
{% set RANGESPLIT = DOCKERMERGED.range.split('.') %}
|
||||||
{% set FIRSTTHREE = RANGESPLIT[0] ~ '.' ~ RANGESPLIT[1] ~ '.' ~ RANGESPLIT[2] ~ '.' %}
|
{% set FIRSTTHREE = RANGESPLIT[0] ~ '.' ~ RANGESPLIT[1] ~ '.' ~ RANGESPLIT[2] ~ '.' %}
|
||||||
|
|
||||||
{% for container, vals in DOCKER.containers.items() %}
|
{% for container, vals in DOCKERMERGED.containers.items() %}
|
||||||
{% do DOCKER.containers[container].update({'ip': FIRSTTHREE ~ DOCKER.containers[container].final_octet}) %}
|
{% do DOCKERMERGED.containers[container].update({'ip': FIRSTTHREE ~ DOCKERMERGED.containers[container].final_octet}) %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
24
salt/docker/files/daemon.json.jinja
Normal file
24
salt/docker/files/daemon.json.jinja
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED -%}
|
||||||
|
{
|
||||||
|
"registry-mirrors": [
|
||||||
|
"https://:5000"
|
||||||
|
],
|
||||||
|
"bip": "172.17.0.1/24",
|
||||||
|
"default-address-pools": [
|
||||||
|
{
|
||||||
|
"base": "172.17.0.0/24",
|
||||||
|
"size": 24
|
||||||
|
}
|
||||||
|
]
|
||||||
|
{%- if DOCKERMERGED.ulimits %},
|
||||||
|
"default-ulimits": {
|
||||||
|
{%- for ULIMIT in DOCKERMERGED.ulimits %}
|
||||||
|
"{{ ULIMIT.name }}": {
|
||||||
|
"Name": "{{ ULIMIT.name }}",
|
||||||
|
"Soft": {{ ULIMIT.soft }},
|
||||||
|
"Hard": {{ ULIMIT.hard }}
|
||||||
|
}{{ "," if not loop.last else "" }}
|
||||||
|
{%- endfor %}
|
||||||
|
}
|
||||||
|
{%- endif %}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
# docker service requires the ca.crt
|
# docker service requires the ca.crt
|
||||||
@@ -15,39 +15,6 @@ dockergroup:
|
|||||||
- name: docker
|
- name: docker
|
||||||
- gid: 920
|
- gid: 920
|
||||||
|
|
||||||
{% if GLOBALS.os_family == 'Debian' %}
|
|
||||||
{% if grains.oscodename == 'bookworm' %}
|
|
||||||
dockerheldpackages:
|
|
||||||
pkg.installed:
|
|
||||||
- pkgs:
|
|
||||||
- containerd.io: 2.2.1-1~debian.12~bookworm
|
|
||||||
- docker-ce: 5:29.2.1-1~debian.12~bookworm
|
|
||||||
- docker-ce-cli: 5:29.2.1-1~debian.12~bookworm
|
|
||||||
- docker-ce-rootless-extras: 5:29.2.1-1~debian.12~bookworm
|
|
||||||
- hold: True
|
|
||||||
- update_holds: True
|
|
||||||
{% elif grains.oscodename == 'jammy' %}
|
|
||||||
dockerheldpackages:
|
|
||||||
pkg.installed:
|
|
||||||
- pkgs:
|
|
||||||
- containerd.io: 2.2.1-1~ubuntu.22.04~jammy
|
|
||||||
- docker-ce: 5:29.2.1-1~ubuntu.22.04~jammy
|
|
||||||
- docker-ce-cli: 5:29.2.1-1~ubuntu.22.04~jammy
|
|
||||||
- docker-ce-rootless-extras: 5:29.2.1-1~ubuntu.22.04~jammy
|
|
||||||
- hold: True
|
|
||||||
- update_holds: True
|
|
||||||
{% else %}
|
|
||||||
dockerheldpackages:
|
|
||||||
pkg.installed:
|
|
||||||
- pkgs:
|
|
||||||
- containerd.io: 1.7.21-1
|
|
||||||
- docker-ce: 5:27.2.0-1~ubuntu.20.04~focal
|
|
||||||
- docker-ce-cli: 5:27.2.0-1~ubuntu.20.04~focal
|
|
||||||
- docker-ce-rootless-extras: 5:27.2.0-1~ubuntu.20.04~focal
|
|
||||||
- hold: True
|
|
||||||
- update_holds: True
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
dockerheldpackages:
|
dockerheldpackages:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs:
|
- pkgs:
|
||||||
@@ -57,7 +24,6 @@ dockerheldpackages:
|
|||||||
- docker-ce-rootless-extras: 29.2.1-1.el9
|
- docker-ce-rootless-extras: 29.2.1-1.el9
|
||||||
- hold: True
|
- hold: True
|
||||||
- update_holds: True
|
- update_holds: True
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
#disable docker from managing iptables
|
#disable docker from managing iptables
|
||||||
iptables_disabled:
|
iptables_disabled:
|
||||||
@@ -75,10 +41,9 @@ dockeretc:
|
|||||||
file.directory:
|
file.directory:
|
||||||
- name: /etc/docker
|
- name: /etc/docker
|
||||||
|
|
||||||
# Manager daemon.json
|
|
||||||
docker_daemon:
|
docker_daemon:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://common/files/daemon.json
|
- source: salt://docker/files/daemon.json.jinja
|
||||||
- name: /etc/docker/daemon.json
|
- name: /etc/docker/daemon.json
|
||||||
- template: jinja
|
- template: jinja
|
||||||
|
|
||||||
@@ -109,8 +74,8 @@ dockerreserveports:
|
|||||||
sos_docker_net:
|
sos_docker_net:
|
||||||
docker_network.present:
|
docker_network.present:
|
||||||
- name: sobridge
|
- name: sobridge
|
||||||
- subnet: {{ DOCKER.range }}
|
- subnet: {{ DOCKERMERGED.range }}
|
||||||
- gateway: {{ DOCKER.gateway }}
|
- gateway: {{ DOCKERMERGED.gateway }}
|
||||||
- options:
|
- options:
|
||||||
com.docker.network.bridge.name: 'sobridge'
|
com.docker.network.bridge.name: 'sobridge'
|
||||||
com.docker.network.driver.mtu: '1500'
|
com.docker.network.driver.mtu: '1500'
|
||||||
|
|||||||
@@ -1,44 +1,82 @@
|
|||||||
docker:
|
docker:
|
||||||
gateway:
|
gateway:
|
||||||
description: Gateway for the default docker interface.
|
description: Gateway for the default docker interface.
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
advanced: True
|
advanced: True
|
||||||
range:
|
range:
|
||||||
description: Default docker IP range for containers.
|
description: Default docker IP range for containers.
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
advanced: True
|
advanced: True
|
||||||
|
ulimits:
|
||||||
|
description: |
|
||||||
|
Default ulimit settings applied to all containers via the Docker daemon. Each entry specifies a resource name (e.g. nofile, memlock, core, nproc) with soft and hard limits. Individual container ulimits override these defaults. Valid resource names include: cpu, fsize, data, stack, core, rss, nproc, nofile, memlock, as, locks, sigpending, msgqueue, nice, rtprio, rttime.
|
||||||
|
forcedType: "[]{}"
|
||||||
|
syntax: json
|
||||||
|
advanced: True
|
||||||
|
helpLink: docker.html
|
||||||
|
uiElements:
|
||||||
|
- field: name
|
||||||
|
label: Resource Name
|
||||||
|
required: True
|
||||||
|
regex: ^(cpu|fsize|data|stack|core|rss|nproc|nofile|memlock|as|locks|sigpending|msgqueue|nice|rtprio|rttime)$
|
||||||
|
regexFailureMessage: You must enter a valid ulimit name (cpu, fsize, data, stack, core, rss, nproc, nofile, memlock, as, locks, sigpending, msgqueue, nice, rtprio, rttime).
|
||||||
|
- field: soft
|
||||||
|
label: Soft Limit
|
||||||
|
forcedType: int
|
||||||
|
- field: hard
|
||||||
|
label: Hard Limit
|
||||||
|
forcedType: int
|
||||||
containers:
|
containers:
|
||||||
so-dockerregistry: &dockerOptions
|
so-dockerregistry: &dockerOptions
|
||||||
final_octet:
|
final_octet:
|
||||||
description: Last octet of the container IP address.
|
description: Last octet of the container IP address.
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
port_bindings:
|
port_bindings:
|
||||||
description: List of port bindings for the container.
|
description: List of port bindings for the container.
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
custom_bind_mounts:
|
custom_bind_mounts:
|
||||||
description: List of custom local volume bindings.
|
description: List of custom local volume bindings.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
description: List of additional host entries for the container.
|
description: List of additional host entries for the container.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
extra_env:
|
extra_env:
|
||||||
description: List of additional ENV entries for the container.
|
description: List of additional ENV entries for the container.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: docker.html
|
helpLink: docker
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
|
ulimits:
|
||||||
|
description: |
|
||||||
|
Ulimit settings for the container. Each entry specifies a resource name (e.g. nofile, memlock, core, nproc) with optional soft and hard limits. Valid resource names include: cpu, fsize, data, stack, core, rss, nproc, nofile, memlock, as, locks, sigpending, msgqueue, nice, rtprio, rttime.
|
||||||
|
advanced: True
|
||||||
|
helpLink: docker.html
|
||||||
|
forcedType: "[]{}"
|
||||||
|
syntax: json
|
||||||
|
uiElements:
|
||||||
|
- field: name
|
||||||
|
label: Resource Name
|
||||||
|
required: True
|
||||||
|
regex: ^(cpu|fsize|data|stack|core|rss|nproc|nofile|memlock|as|locks|sigpending|msgqueue|nice|rtprio|rttime)$
|
||||||
|
regexFailureMessage: You must enter a valid ulimit name (cpu, fsize, data, stack, core, rss, nproc, nofile, memlock, as, locks, sigpending, msgqueue, nice, rtprio, rttime).
|
||||||
|
- field: soft
|
||||||
|
label: Soft Limit
|
||||||
|
forcedType: int
|
||||||
|
- field: hard
|
||||||
|
label: Hard Limit
|
||||||
|
forcedType: int
|
||||||
so-elastic-fleet: *dockerOptions
|
so-elastic-fleet: *dockerOptions
|
||||||
so-elasticsearch: *dockerOptions
|
so-elasticsearch: *dockerOptions
|
||||||
so-influxdb: *dockerOptions
|
so-influxdb: *dockerOptions
|
||||||
@@ -62,42 +100,6 @@ docker:
|
|||||||
so-idh: *dockerOptions
|
so-idh: *dockerOptions
|
||||||
so-elastic-agent: *dockerOptions
|
so-elastic-agent: *dockerOptions
|
||||||
so-telegraf: *dockerOptions
|
so-telegraf: *dockerOptions
|
||||||
so-suricata:
|
so-suricata: *dockerOptions
|
||||||
final_octet:
|
|
||||||
description: Last octet of the container IP address.
|
|
||||||
helpLink: docker.html
|
|
||||||
readonly: True
|
|
||||||
advanced: True
|
|
||||||
global: True
|
|
||||||
port_bindings:
|
|
||||||
description: List of port bindings for the container.
|
|
||||||
helpLink: docker.html
|
|
||||||
advanced: True
|
|
||||||
multiline: True
|
|
||||||
forcedType: "[]string"
|
|
||||||
custom_bind_mounts:
|
|
||||||
description: List of custom local volume bindings.
|
|
||||||
advanced: True
|
|
||||||
helpLink: docker.html
|
|
||||||
multiline: True
|
|
||||||
forcedType: "[]string"
|
|
||||||
extra_hosts:
|
|
||||||
description: List of additional host entries for the container.
|
|
||||||
advanced: True
|
|
||||||
helpLink: docker.html
|
|
||||||
multiline: True
|
|
||||||
forcedType: "[]string"
|
|
||||||
extra_env:
|
|
||||||
description: List of additional ENV entries for the container.
|
|
||||||
advanced: True
|
|
||||||
helpLink: docker.html
|
|
||||||
multiline: True
|
|
||||||
forcedType: "[]string"
|
|
||||||
ulimits:
|
|
||||||
description: Ulimits for the container, in bytes.
|
|
||||||
advanced: True
|
|
||||||
helpLink: docker.html
|
|
||||||
multiline: True
|
|
||||||
forcedType: "[]string"
|
|
||||||
so-zeek: *dockerOptions
|
so-zeek: *dockerOptions
|
||||||
so-kafka: *dockerOptions
|
so-kafka: *dockerOptions
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- elastalert.config
|
- elastalert.config
|
||||||
@@ -24,7 +24,7 @@ so-elastalert:
|
|||||||
- user: so-elastalert
|
- user: so-elastalert
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-elastalert'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-elastalert'].ip }}
|
||||||
- detach: True
|
- detach: True
|
||||||
- binds:
|
- binds:
|
||||||
- /opt/so/rules/elastalert:/opt/elastalert/rules/:ro
|
- /opt/so/rules/elastalert:/opt/elastalert/rules/:ro
|
||||||
@@ -33,24 +33,30 @@ so-elastalert:
|
|||||||
- /opt/so/conf/elastalert/predefined/:/opt/elastalert/predefined/:ro
|
- /opt/so/conf/elastalert/predefined/:/opt/elastalert/predefined/:ro
|
||||||
- /opt/so/conf/elastalert/custom/:/opt/elastalert/custom/:ro
|
- /opt/so/conf/elastalert/custom/:/opt/elastalert/custom/:ro
|
||||||
- /opt/so/conf/elastalert/elastalert_config.yaml:/opt/elastalert/config.yaml:ro
|
- /opt/so/conf/elastalert/elastalert_config.yaml:/opt/elastalert/config.yaml:ro
|
||||||
{% if DOCKER.containers['so-elastalert'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-elastalert'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-elastalert'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-elastalert'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
||||||
{% if DOCKER.containers['so-elastalert'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-elastalert'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-elastalert'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-elastalert'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-elastalert'].extra_env %}
|
{% if DOCKERMERGED.containers['so-elastalert'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-elastalert'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-elastalert'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-elastalert'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-elastalert'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- cmd: wait_for_elasticsearch
|
- cmd: wait_for_elasticsearch
|
||||||
- file: elastarules
|
- file: elastarules
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
THIS IS A PLACEHOLDER FILE
|
|
||||||
@@ -1,47 +1,47 @@
|
|||||||
elastalert:
|
elastalert:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the ElastAlert 2 process. This process is critical for ensuring alerts arrive in SOC, and for outbound notification delivery.
|
description: Enables or disables the ElastAlert 2 process. This process is critical for ensuring alerts arrive in SOC, and for outbound notification delivery.
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
alerter_parameters:
|
alerter_parameters:
|
||||||
title: Custom Configuration Parameters
|
title: Custom Configuration Parameters
|
||||||
description: Optional configuration parameters made available as defaults for all rules and alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available configuration parameters. Requires a valid Security Onion license key.
|
description: Optional configuration parameters made available as defaults for all rules and alerters. Use YAML format for these parameters, and reference the ElastAlert 2 documentation, located at https://elastalert2.readthedocs.io, for available configuration parameters. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jira_api_key:
|
jira_api_key:
|
||||||
title: Jira API Key
|
title: Jira API Key
|
||||||
description: Optional configuration parameter for Jira API Key, used instead of the Jira username and password. Requires a valid Security Onion license key.
|
description: Optional configuration parameter for Jira API Key, used instead of the Jira username and password. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jira_pass:
|
jira_pass:
|
||||||
title: Jira Password
|
title: Jira Password
|
||||||
description: Optional configuration parameter for Jira password. Requires a valid Security Onion license key.
|
description: Optional configuration parameter for Jira password. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jira_user:
|
jira_user:
|
||||||
title: Jira Username
|
title: Jira Username
|
||||||
description: Optional configuration parameter for Jira username. Requires a valid Security Onion license key.
|
description: Optional configuration parameter for Jira username. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
smtp_pass:
|
smtp_pass:
|
||||||
title: SMTP Password
|
title: SMTP Password
|
||||||
description: Optional configuration parameter for SMTP password, required for authenticating email servers. Requires a valid Security Onion license key.
|
description: Optional configuration parameter for SMTP password, required for authenticating email servers. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
smtp_user:
|
smtp_user:
|
||||||
title: SMTP Username
|
title: SMTP Username
|
||||||
description: Optional configuration parameter for SMTP username, required for authenticating email servers. Requires a valid Security Onion license key.
|
description: Optional configuration parameter for SMTP username, required for authenticating email servers. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
forcedType: string
|
forcedType: string
|
||||||
files:
|
files:
|
||||||
custom:
|
custom:
|
||||||
@@ -49,91 +49,91 @@ elastalert:
|
|||||||
description: Optional custom Certificate Authority for connecting to an AlertManager server. To utilize this custom file, the alertmanager_ca_certs key must be set to /opt/elastalert/custom/alertmanager_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to an AlertManager server. To utilize this custom file, the alertmanager_ca_certs key must be set to /opt/elastalert/custom/alertmanager_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
gelf_ca__crt:
|
gelf_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to a Graylog server. To utilize this custom file, the graylog_ca_certs key must be set to /opt/elastalert/custom/graylog_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to a Graylog server. To utilize this custom file, the graylog_ca_certs key must be set to /opt/elastalert/custom/graylog_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
http_post_ca__crt:
|
http_post_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to a generic HTTP server, via the legacy HTTP POST alerter. To utilize this custom file, the http_post_ca_certs key must be set to /opt/elastalert/custom/http_post2_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to a generic HTTP server, via the legacy HTTP POST alerter. To utilize this custom file, the http_post_ca_certs key must be set to /opt/elastalert/custom/http_post2_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
http_post2_ca__crt:
|
http_post2_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to a generic HTTP server, via the newer HTTP POST 2 alerter. To utilize this custom file, the http_post2_ca_certs key must be set to /opt/elastalert/custom/http_post2_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to a generic HTTP server, via the newer HTTP POST 2 alerter. To utilize this custom file, the http_post2_ca_certs key must be set to /opt/elastalert/custom/http_post2_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
ms_teams_ca__crt:
|
ms_teams_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to Microsoft Teams server. To utilize this custom file, the ms_teams_ca_certs key must be set to /opt/elastalert/custom/ms_teams_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to Microsoft Teams server. To utilize this custom file, the ms_teams_ca_certs key must be set to /opt/elastalert/custom/ms_teams_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
pagerduty_ca__crt:
|
pagerduty_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to PagerDuty server. To utilize this custom file, the pagerduty_ca_certs key must be set to /opt/elastalert/custom/pagerduty_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to PagerDuty server. To utilize this custom file, the pagerduty_ca_certs key must be set to /opt/elastalert/custom/pagerduty_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
rocket_chat_ca__crt:
|
rocket_chat_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to PagerDuty server. To utilize this custom file, the rocket_chart_ca_certs key must be set to /opt/elastalert/custom/rocket_chat_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to PagerDuty server. To utilize this custom file, the rocket_chart_ca_certs key must be set to /opt/elastalert/custom/rocket_chat_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
smtp__crt:
|
smtp__crt:
|
||||||
description: Optional custom certificate for connecting to an SMTP server. To utilize this custom file, the smtp_cert_file key must be set to /opt/elastalert/custom/smtp.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom certificate for connecting to an SMTP server. To utilize this custom file, the smtp_cert_file key must be set to /opt/elastalert/custom/smtp.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
smtp__key:
|
smtp__key:
|
||||||
description: Optional custom certificate key for connecting to an SMTP server. To utilize this custom file, the smtp_key_file key must be set to /opt/elastalert/custom/smtp.key in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom certificate key for connecting to an SMTP server. To utilize this custom file, the smtp_key_file key must be set to /opt/elastalert/custom/smtp.key in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
slack_ca__crt:
|
slack_ca__crt:
|
||||||
description: Optional custom Certificate Authority for connecting to Slack. To utilize this custom file, the slack_ca_certs key must be set to /opt/elastalert/custom/slack_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
description: Optional custom Certificate Authority for connecting to Slack. To utilize this custom file, the slack_ca_certs key must be set to /opt/elastalert/custom/slack_ca.crt in the Alerter Parameters setting. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
file: True
|
file: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
config:
|
config:
|
||||||
disable_rules_on_error:
|
disable_rules_on_error:
|
||||||
description: Disable rules on failure.
|
description: Disable rules on failure.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
run_every:
|
run_every:
|
||||||
minutes:
|
minutes:
|
||||||
description: Amount of time in minutes between searches.
|
description: Amount of time in minutes between searches.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
buffer_time:
|
buffer_time:
|
||||||
minutes:
|
minutes:
|
||||||
description: Amount of time in minutes to look through.
|
description: Amount of time in minutes to look through.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
old_query_limit:
|
old_query_limit:
|
||||||
minutes:
|
minutes:
|
||||||
description: Amount of time in minutes between queries to start at the most recently run query.
|
description: Amount of time in minutes between queries to start at the most recently run query.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
es_conn_timeout:
|
es_conn_timeout:
|
||||||
description: Timeout in seconds for connecting to and reading from Elasticsearch.
|
description: Timeout in seconds for connecting to and reading from Elasticsearch.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
max_query_size:
|
max_query_size:
|
||||||
description: The maximum number of documents that will be returned from Elasticsearch in a single query.
|
description: The maximum number of documents that will be returned from Elasticsearch in a single query.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
alert_time_limit:
|
alert_time_limit:
|
||||||
days:
|
days:
|
||||||
description: The retry window for failed alerts.
|
description: The retry window for failed alerts.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
index_settings:
|
index_settings:
|
||||||
shards:
|
shards:
|
||||||
description: The number of shards for elastalert indices.
|
description: The number of shards for elastalert indices.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
replicas:
|
replicas:
|
||||||
description: The number of replicas for elastalert indices.
|
description: The number of replicas for elastalert indices.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- elastic-fleet-package-registry.config
|
- elastic-fleet-package-registry.config
|
||||||
@@ -21,30 +21,36 @@ so-elastic-fleet-package-registry:
|
|||||||
- user: 948
|
- user: 948
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-elastic-fleet-package-registry'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-elastic-fleet-package-registry'].ip }}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-elastic-fleet-package-registry'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet-package-registry'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-elastic-fleet-package-registry'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-elastic-fleet-package-registry'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-elastic-fleet-package-registry'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-elastic-fleet-package-registry'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-elastic-fleet-package-registry'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet-package-registry'].custom_bind_mounts %}
|
||||||
- binds:
|
- binds:
|
||||||
{% for BIND in DOCKER.containers['so-elastic-fleet-package-registry'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-elastic-fleet-package-registry'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-elastic-fleet-package-registry'].extra_env %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet-package-registry'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-elastic-fleet-package-registry'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-elastic-fleet-package-registry'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-elastic-fleet-package-registry'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-elastic-fleet-package-registry'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
delete_so-elastic-fleet-package-registry_so-status.disabled:
|
delete_so-elastic-fleet-package-registry_so-status.disabled:
|
||||||
file.uncomment:
|
file.uncomment:
|
||||||
- name: /opt/so/conf/so-status/so-status.conf
|
- name: /opt/so/conf/so-status/so-status.conf
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- ca
|
- ca
|
||||||
@@ -22,17 +22,17 @@ so-elastic-agent:
|
|||||||
- user: 949
|
- user: 949
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-elastic-agent'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-elastic-agent'].ip }}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-elastic-agent'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-elastic-agent'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-elastic-agent'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-elastic-agent'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-elastic-agent'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-elastic-agent'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -41,19 +41,25 @@ so-elastic-agent:
|
|||||||
- /etc/pki/tls/certs/intca.crt:/etc/pki/tls/certs/intca.crt:ro
|
- /etc/pki/tls/certs/intca.crt:/etc/pki/tls/certs/intca.crt:ro
|
||||||
- /nsm:/nsm:ro
|
- /nsm:/nsm:ro
|
||||||
- /opt/so/log:/opt/so/log:ro
|
- /opt/so/log:/opt/so/log:ro
|
||||||
{% if DOCKER.containers['so-elastic-agent'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-elastic-agent'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-elastic-agent'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-elastic-agent'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- environment:
|
- environment:
|
||||||
- FLEET_CA=/etc/pki/tls/certs/intca.crt
|
- FLEET_CA=/etc/pki/tls/certs/intca.crt
|
||||||
- LOGS_PATH=logs
|
- LOGS_PATH=logs
|
||||||
{% if DOCKER.containers['so-elastic-agent'].extra_env %}
|
{% if DOCKERMERGED.containers['so-elastic-agent'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-elastic-agent'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-elastic-agent'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-elastic-agent'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-elastic-agent'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- file: create-elastic-agent-config
|
- file: create-elastic-agent-config
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'elasticfleet/map.jinja' import ELASTICFLEETMERGED %}
|
{% from 'elasticfleet/map.jinja' import ELASTICFLEETMERGED %}
|
||||||
|
|
||||||
{# This value is generated during node install and stored in minion pillar #}
|
{# This value is generated during node install and stored in minion pillar #}
|
||||||
@@ -94,17 +94,17 @@ so-elastic-fleet:
|
|||||||
- user: 947
|
- user: 947
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-elastic-fleet'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-elastic-fleet'].ip }}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-elastic-fleet'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-elastic-fleet'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-elastic-fleet'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-elastic-fleet'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-elastic-fleet'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -112,8 +112,8 @@ so-elastic-fleet:
|
|||||||
- /etc/pki/elasticfleet-server.key:/etc/pki/elasticfleet-server.key:ro
|
- /etc/pki/elasticfleet-server.key:/etc/pki/elasticfleet-server.key:ro
|
||||||
- /etc/pki/tls/certs/intca.crt:/etc/pki/tls/certs/intca.crt:ro
|
- /etc/pki/tls/certs/intca.crt:/etc/pki/tls/certs/intca.crt:ro
|
||||||
- /opt/so/log/elasticfleet:/usr/share/elastic-agent/logs
|
- /opt/so/log/elasticfleet:/usr/share/elastic-agent/logs
|
||||||
{% if DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-elastic-fleet'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-elastic-fleet'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -128,11 +128,17 @@ so-elastic-fleet:
|
|||||||
- FLEET_CA=/etc/pki/tls/certs/intca.crt
|
- FLEET_CA=/etc/pki/tls/certs/intca.crt
|
||||||
- FLEET_SERVER_ELASTICSEARCH_CA=/etc/pki/tls/certs/intca.crt
|
- FLEET_SERVER_ELASTICSEARCH_CA=/etc/pki/tls/certs/intca.crt
|
||||||
- LOGS_PATH=logs
|
- LOGS_PATH=logs
|
||||||
{% if DOCKER.containers['so-elastic-fleet'].extra_env %}
|
{% if DOCKERMERGED.containers['so-elastic-fleet'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-elastic-fleet'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-elastic-fleet'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-elastic-fleet'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-elastic-fleet'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
- x509: etc_elasticfleet_key
|
- x509: etc_elasticfleet_key
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ elasticfleet:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Elastic Fleet process. This process is critical for managing Elastic Agents.
|
description: Enables or disables the Elastic Fleet process. This process is critical for managing Elastic Agents.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
enable_manager_output:
|
enable_manager_output:
|
||||||
description: Setting this option to False should only be considered if there is at least one receiver node in the grid. If True, Elastic Agent will send events to the manager and receivers. If False, events will only be send to the receivers.
|
description: Setting this option to False should only be considered if there is at least one receiver node in the grid. If True, Elastic Agent will send events to the manager and receivers. If False, events will only be send to the receivers.
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
files:
|
files:
|
||||||
soc:
|
soc:
|
||||||
elastic-defend-disabled-filters__yaml:
|
elastic-defend-disabled-filters__yaml:
|
||||||
@@ -17,7 +17,7 @@ elasticfleet:
|
|||||||
syntax: yaml
|
syntax: yaml
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
elastic-defend-custom-filters__yaml:
|
elastic-defend-custom-filters__yaml:
|
||||||
title: Custom Elastic Defend filters
|
title: Custom Elastic Defend filters
|
||||||
@@ -25,31 +25,31 @@ elasticfleet:
|
|||||||
syntax: yaml
|
syntax: yaml
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
logging:
|
logging:
|
||||||
zeek:
|
zeek:
|
||||||
excluded:
|
excluded:
|
||||||
description: This is a list of Zeek logs that are excluded from being shipped through the data processing pipeline. If you remove a log from this list, Elastic Agent will attempt to process it. If an ingest node pipeline is not available to process the logs, you may experience errors.
|
description: This is a list of Zeek logs that are excluded from being shipped through the data processing pipeline. If you remove a log from this list, Elastic Agent will attempt to process it. If an ingest node pipeline is not available to process the logs, you may experience errors.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: zeek.html
|
helpLink: zeek
|
||||||
config:
|
config:
|
||||||
defend_filters:
|
defend_filters:
|
||||||
enable_auto_configuration:
|
enable_auto_configuration:
|
||||||
description: Enable auto-configuration and management of the Elastic Defend Exclusion filters.
|
description: Enable auto-configuration and management of the Elastic Defend Exclusion filters.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
subscription_integrations:
|
subscription_integrations:
|
||||||
description: Enable the installation of integrations that require an Elastic license.
|
description: Enable the installation of integrations that require an Elastic license.
|
||||||
global: True
|
global: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
auto_upgrade_integrations:
|
auto_upgrade_integrations:
|
||||||
description: Enables or disables automatically upgrading Elastic Agent integrations.
|
description: Enables or disables automatically upgrading Elastic Agent integrations.
|
||||||
global: True
|
global: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
outputs:
|
outputs:
|
||||||
logstash:
|
logstash:
|
||||||
bulk_max_size:
|
bulk_max_size:
|
||||||
@@ -57,67 +57,67 @@ elasticfleet:
|
|||||||
global: True
|
global: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
worker:
|
worker:
|
||||||
description: The number of workers per configured host publishing events.
|
description: The number of workers per configured host publishing events.
|
||||||
global: True
|
global: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
advanced: true
|
advanced: true
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
queue_mem_events:
|
queue_mem_events:
|
||||||
title: queued events
|
title: queued events
|
||||||
description: The number of events the queue can store. This value should be evenly divisible by the smaller of 'bulk_max_size' to avoid sending partial batches to the output.
|
description: The number of events the queue can store. This value should be evenly divisible by the smaller of 'bulk_max_size' to avoid sending partial batches to the output.
|
||||||
global: True
|
global: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
timeout:
|
timeout:
|
||||||
description: The number of seconds to wait for responses from the Logstash server before timing out. Eg 30s
|
description: The number of seconds to wait for responses from the Logstash server before timing out. Eg 30s
|
||||||
regex: ^[0-9]+s$
|
regex: ^[0-9]+s$
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
loadbalance:
|
loadbalance:
|
||||||
description: If true and multiple Logstash hosts are configured, the output plugin load balances published events onto all Logstash hosts. If false, the output plugin sends all events to one host (determined at random) and switches to another host if the selected one becomes unresponsive.
|
description: If true and multiple Logstash hosts are configured, the output plugin load balances published events onto all Logstash hosts. If false, the output plugin sends all events to one host (determined at random) and switches to another host if the selected one becomes unresponsive.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
compression_level:
|
compression_level:
|
||||||
description: The gzip compression level. The compression level must be in the range of 1 (best speed) to 9 (best compression).
|
description: The gzip compression level. The compression level must be in the range of 1 (best speed) to 9 (best compression).
|
||||||
regex: ^[1-9]$
|
regex: ^[1-9]$
|
||||||
forcedType: int
|
forcedType: int
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
server:
|
server:
|
||||||
custom_fqdn:
|
custom_fqdn:
|
||||||
description: Custom FQDN for Agents to connect to. One per line.
|
description: Custom FQDN for Agents to connect to. One per line.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
enable_auto_configuration:
|
enable_auto_configuration:
|
||||||
description: Enable auto-configuration of Logstash Outputs & Fleet Host URLs.
|
description: Enable auto-configuration of Logstash Outputs & Fleet Host URLs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
endpoints_enrollment:
|
endpoints_enrollment:
|
||||||
description: Endpoint enrollment key.
|
description: Endpoint enrollment key.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
es_token:
|
es_token:
|
||||||
description: Elastic auth token.
|
description: Elastic auth token.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
grid_enrollment:
|
grid_enrollment:
|
||||||
description: Grid enrollment key.
|
description: Grid enrollment key.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
optional_integrations:
|
optional_integrations:
|
||||||
@@ -125,57 +125,57 @@ elasticfleet:
|
|||||||
enabled_nodes:
|
enabled_nodes:
|
||||||
description: Fleet nodes with the Sublime Platform integration enabled. Enter one per line.
|
description: Fleet nodes with the Sublime Platform integration enabled. Enter one per line.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for Sublime Platform.
|
description: API key for Sublime Platform.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
sensitive: True
|
sensitive: True
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for Sublime Platform.
|
description: Base URL for Sublime Platform.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
poll_interval:
|
poll_interval:
|
||||||
description: Poll interval for alerts from Sublime Platform.
|
description: Poll interval for alerts from Sublime Platform.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
limit:
|
limit:
|
||||||
description: The maximum number of message groups to return from Sublime Platform.
|
description: The maximum number of message groups to return from Sublime Platform.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
kismet:
|
kismet:
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for Kismet.
|
description: Base URL for Kismet.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
poll_interval:
|
poll_interval:
|
||||||
description: Poll interval for wireless device data from Kismet. Integration is currently configured to return devices seen as active by any Kismet sensor within the last 10 minutes.
|
description: Poll interval for wireless device data from Kismet. Integration is currently configured to return devices seen as active by any Kismet sensor within the last 10 minutes.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for Kismet.
|
description: API key for Kismet.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
sensitive: True
|
sensitive: True
|
||||||
enabled_nodes:
|
enabled_nodes:
|
||||||
description: Fleet nodes with the Kismet integration enabled. Enter one per line.
|
description: Fleet nodes with the Kismet integration enabled. Enter one per line.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% import_yaml 'elasticsearch/defaults.yaml' as ELASTICSEARCHDEFAULTS with context %}
|
{% import_yaml 'elasticsearch/defaults.yaml' as ELASTICSEARCHDEFAULTS with context %}
|
||||||
|
|
||||||
{% set HIGHLANDER = salt['pillar.get']('global:highlander', False) %}
|
|
||||||
|
|
||||||
{# this is a list of dicts containing hostname:ip for elasticsearch nodes that need to know about each other for cluster #}
|
{# this is a list of dicts containing hostname:ip for elasticsearch nodes that need to know about each other for cluster #}
|
||||||
{% set ELASTICSEARCH_SEED_HOSTS = [] %}
|
{% set ELASTICSEARCH_SEED_HOSTS = [] %}
|
||||||
{% set node_data = salt['pillar.get']('elasticsearch:nodes', {GLOBALS.role.split('-')[1]: {GLOBALS.hostname: {'ip': GLOBALS.node_ip}}}) %}
|
{% set node_data = salt['pillar.get']('elasticsearch:nodes', {GLOBALS.role.split('-')[1]: {GLOBALS.hostname: {'ip': GLOBALS.node_ip}}}) %}
|
||||||
@@ -36,14 +34,8 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif grains.id.split('_') | last == 'searchnode' %}
|
{% elif grains.id.split('_') | last == 'searchnode' %}
|
||||||
{% if HIGHLANDER %}
|
|
||||||
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.roles.extend(['ml', 'master', 'transform']) %}
|
|
||||||
{% endif %}
|
|
||||||
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.update({'discovery': {'seed_hosts': [GLOBALS.manager]}}) %}
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.update({'discovery': {'seed_hosts': [GLOBALS.manager]}}) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if HIGHLANDER %}
|
|
||||||
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.xpack.ml.update({'enabled': true}) %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'name': GLOBALS.hostname}) %}
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.node.update({'name': GLOBALS.hostname}) %}
|
||||||
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.cluster.update({'name': GLOBALS.hostname}) %}
|
{% do ELASTICSEARCHDEFAULTS.elasticsearch.config.cluster.update({'name': GLOBALS.hostname}) %}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
vm.max_map_count:
|
vm.max_map_count:
|
||||||
sysctl.present:
|
sysctl.present:
|
||||||
- value: 262144
|
- value: {{ ELASTICSEARCHMERGED.vm.max_map_count }}
|
||||||
|
|
||||||
# Add ES Group
|
# Add ES Group
|
||||||
elasticsearchgroup:
|
elasticsearchgroup:
|
||||||
@@ -98,10 +98,6 @@ esrolesdir:
|
|||||||
- group: 939
|
- group: 939
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
|
|
||||||
eslibdir:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/conf/elasticsearch/lib
|
|
||||||
|
|
||||||
esingestdynamicconf:
|
esingestdynamicconf:
|
||||||
file.recurse:
|
file.recurse:
|
||||||
- name: /opt/so/conf/elasticsearch/ingest
|
- name: /opt/so/conf/elasticsearch/ingest
|
||||||
@@ -119,11 +115,6 @@ esingestconf:
|
|||||||
- group: 939
|
- group: 939
|
||||||
- show_changes: False
|
- show_changes: False
|
||||||
|
|
||||||
# Remove .fleet_final_pipeline-1 because we are using global@custom now
|
|
||||||
so-fleet-final-pipeline-remove:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/conf/elasticsearch/ingest/.fleet_final_pipeline-1
|
|
||||||
|
|
||||||
# Auto-generate Elasticsearch ingest node pipelines from pillar
|
# Auto-generate Elasticsearch ingest node pipelines from pillar
|
||||||
{% for pipeline, config in ELASTICSEARCHMERGED.pipelines.items() %}
|
{% for pipeline, config in ELASTICSEARCHMERGED.pipelines.items() %}
|
||||||
es_ingest_conf_{{pipeline}}:
|
es_ingest_conf_{{pipeline}}:
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ elasticsearch:
|
|||||||
enabled: false
|
enabled: false
|
||||||
version: 9.0.8
|
version: 9.0.8
|
||||||
index_clean: true
|
index_clean: true
|
||||||
|
vm:
|
||||||
|
max_map_count: 1048576
|
||||||
config:
|
config:
|
||||||
action:
|
action:
|
||||||
destructive_requires_name: true
|
destructive_requires_name: true
|
||||||
@@ -117,7 +119,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- so-case*
|
- so-case*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -129,8 +131,6 @@ elasticsearch:
|
|||||||
match_mapping_type: string
|
match_mapping_type: string
|
||||||
settings:
|
settings:
|
||||||
index:
|
index:
|
||||||
lifecycle:
|
|
||||||
name: so-case-logs
|
|
||||||
mapping:
|
mapping:
|
||||||
total_fields:
|
total_fields:
|
||||||
limit: 1500
|
limit: 1500
|
||||||
@@ -141,14 +141,7 @@ elasticsearch:
|
|||||||
sort:
|
sort:
|
||||||
field: '@timestamp'
|
field: '@timestamp'
|
||||||
order: desc
|
order: desc
|
||||||
policy:
|
|
||||||
phases:
|
|
||||||
hot:
|
|
||||||
actions: {}
|
|
||||||
min_age: 0ms
|
|
||||||
so-common:
|
so-common:
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
composed_of:
|
composed_of:
|
||||||
@@ -212,7 +205,9 @@ elasticsearch:
|
|||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- winlog-mappings
|
- winlog-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-*-so*
|
- logs-*-so*
|
||||||
@@ -272,7 +267,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- so-detection*
|
- so-detection*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -284,8 +279,6 @@ elasticsearch:
|
|||||||
match_mapping_type: string
|
match_mapping_type: string
|
||||||
settings:
|
settings:
|
||||||
index:
|
index:
|
||||||
lifecycle:
|
|
||||||
name: so-detection-logs
|
|
||||||
mapping:
|
mapping:
|
||||||
total_fields:
|
total_fields:
|
||||||
limit: 1500
|
limit: 1500
|
||||||
@@ -296,11 +289,6 @@ elasticsearch:
|
|||||||
sort:
|
sort:
|
||||||
field: '@timestamp'
|
field: '@timestamp'
|
||||||
order: desc
|
order: desc
|
||||||
policy:
|
|
||||||
phases:
|
|
||||||
hot:
|
|
||||||
actions: {}
|
|
||||||
min_age: 0ms
|
|
||||||
sos-backup:
|
sos-backup:
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
@@ -460,7 +448,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- endgame*
|
- endgame*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -508,8 +496,6 @@ elasticsearch:
|
|||||||
priority: 50
|
priority: 50
|
||||||
min_age: 30d
|
min_age: 30d
|
||||||
so-idh:
|
so-idh:
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
composed_of:
|
composed_of:
|
||||||
@@ -564,10 +550,13 @@ elasticsearch:
|
|||||||
- dtc-user_agent-mappings
|
- dtc-user_agent-mappings
|
||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- so-idh-*
|
- logs-idh-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -677,11 +666,13 @@ elasticsearch:
|
|||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- winlog-mappings
|
- winlog-mappings
|
||||||
- hash-mappings
|
- hash-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-import-so*
|
- logs-import-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -736,7 +727,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- so-ip*
|
- so-ip*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -751,19 +742,12 @@ elasticsearch:
|
|||||||
mapping:
|
mapping:
|
||||||
total_fields:
|
total_fields:
|
||||||
limit: 1500
|
limit: 1500
|
||||||
lifecycle:
|
|
||||||
name: so-ip-mappings-logs
|
|
||||||
number_of_replicas: 0
|
number_of_replicas: 0
|
||||||
number_of_shards: 1
|
number_of_shards: 1
|
||||||
refresh_interval: 30s
|
refresh_interval: 30s
|
||||||
sort:
|
sort:
|
||||||
field: '@timestamp'
|
field: '@timestamp'
|
||||||
order: desc
|
order: desc
|
||||||
policy:
|
|
||||||
phases:
|
|
||||||
hot:
|
|
||||||
actions: {}
|
|
||||||
min_age: 0ms
|
|
||||||
so-items:
|
so-items:
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
@@ -772,7 +756,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- .items-default-**
|
- .items-default-**
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -851,8 +835,6 @@ elasticsearch:
|
|||||||
priority: 50
|
priority: 50
|
||||||
min_age: 30d
|
min_age: 30d
|
||||||
so-kratos:
|
so-kratos:
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
composed_of:
|
composed_of:
|
||||||
@@ -873,7 +855,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-kratos-so*
|
- logs-kratos-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -921,8 +903,6 @@ elasticsearch:
|
|||||||
priority: 50
|
priority: 50
|
||||||
min_age: 30d
|
min_age: 30d
|
||||||
so-hydra:
|
so-hydra:
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
composed_of:
|
composed_of:
|
||||||
@@ -983,7 +963,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-hydra-so*
|
- logs-hydra-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -1038,7 +1018,7 @@ elasticsearch:
|
|||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- .lists-default-**
|
- .lists-default-**
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -1524,6 +1504,9 @@ elasticsearch:
|
|||||||
- so-fleet_integrations.ip_mappings-1
|
- so-fleet_integrations.ip_mappings-1
|
||||||
- so-fleet_globals-1
|
- so-fleet_globals-1
|
||||||
- so-fleet_agent_id_verification-1
|
- so-fleet_agent_id_verification-1
|
||||||
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates:
|
ignore_missing_component_templates:
|
||||||
- logs-elastic_agent.cloudbeat@custom
|
- logs-elastic_agent.cloudbeat@custom
|
||||||
index_patterns:
|
index_patterns:
|
||||||
@@ -1759,6 +1742,9 @@ elasticsearch:
|
|||||||
- so-fleet_integrations.ip_mappings-1
|
- so-fleet_integrations.ip_mappings-1
|
||||||
- so-fleet_globals-1
|
- so-fleet_globals-1
|
||||||
- so-fleet_agent_id_verification-1
|
- so-fleet_agent_id_verification-1
|
||||||
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates:
|
ignore_missing_component_templates:
|
||||||
- logs-elastic_agent.heartbeat@custom
|
- logs-elastic_agent.heartbeat@custom
|
||||||
index_patterns:
|
index_patterns:
|
||||||
@@ -3018,8 +3004,6 @@ elasticsearch:
|
|||||||
priority: 50
|
priority: 50
|
||||||
min_age: 30d
|
min_age: 30d
|
||||||
so-logs-soc:
|
so-logs-soc:
|
||||||
close: 30
|
|
||||||
delete: 365
|
|
||||||
index_sorting: false
|
index_sorting: false
|
||||||
index_template:
|
index_template:
|
||||||
composed_of:
|
composed_of:
|
||||||
@@ -3074,11 +3058,13 @@ elasticsearch:
|
|||||||
- dtc-user_agent-mappings
|
- dtc-user_agent-mappings
|
||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-soc-so*
|
- logs-soc-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -3668,10 +3654,13 @@ elasticsearch:
|
|||||||
- vulnerability-mappings
|
- vulnerability-mappings
|
||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-logstash-default*
|
- logs-logstash-default*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -3969,10 +3958,13 @@ elasticsearch:
|
|||||||
- vulnerability-mappings
|
- vulnerability-mappings
|
||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-redis-default*
|
- logs-redis.log*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -4083,11 +4075,13 @@ elasticsearch:
|
|||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- hash-mappings
|
- hash-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-strelka-so*
|
- logs-strelka-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -4197,11 +4191,13 @@ elasticsearch:
|
|||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- hash-mappings
|
- hash-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-suricata-so*
|
- logs-suricata-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -4311,11 +4307,13 @@ elasticsearch:
|
|||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- hash-mappings
|
- hash-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-suricata.alerts-*
|
- logs-suricata.alerts-*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -4425,11 +4423,13 @@ elasticsearch:
|
|||||||
- vulnerability-mappings
|
- vulnerability-mappings
|
||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-syslog-so*
|
- logs-syslog-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
@@ -4541,11 +4541,13 @@ elasticsearch:
|
|||||||
- common-settings
|
- common-settings
|
||||||
- common-dynamic-mappings
|
- common-dynamic-mappings
|
||||||
- hash-mappings
|
- hash-mappings
|
||||||
data_stream: {}
|
data_stream:
|
||||||
|
allow_custom_routing: false
|
||||||
|
hidden: false
|
||||||
ignore_missing_component_templates: []
|
ignore_missing_component_templates: []
|
||||||
index_patterns:
|
index_patterns:
|
||||||
- logs-zeek-so*
|
- logs-zeek-so*
|
||||||
priority: 500
|
priority: 501
|
||||||
template:
|
template:
|
||||||
mappings:
|
mappings:
|
||||||
date_detection: false
|
date_detection: false
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCH_NODES %}
|
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCH_NODES %}
|
||||||
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCH_SEED_HOSTS %}
|
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCH_SEED_HOSTS %}
|
||||||
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCHMERGED %}
|
{% from 'elasticsearch/config.map.jinja' import ELASTICSEARCHMERGED %}
|
||||||
@@ -28,15 +28,15 @@ so-elasticsearch:
|
|||||||
- user: elasticsearch
|
- user: elasticsearch
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-elasticsearch'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-elasticsearch'].ip }}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for node in ELASTICSEARCH_NODES %}
|
{% for node in ELASTICSEARCH_NODES %}
|
||||||
{% for hostname, ip in node.items() %}
|
{% for hostname, ip in node.items() %}
|
||||||
- {{hostname}}:{{ip}}
|
- {{hostname}}:{{ip}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-elasticsearch'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-elasticsearch'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-elasticsearch'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-elasticsearch'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -45,17 +45,19 @@ so-elasticsearch:
|
|||||||
- discovery.type=single-node
|
- discovery.type=single-node
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- ES_JAVA_OPTS=-Xms{{ GLOBALS.elasticsearch.es_heap }} -Xmx{{ GLOBALS.elasticsearch.es_heap }} -Des.transport.cname_in_publish_address=true -Dlog4j2.formatMsgNoLookups=true
|
- ES_JAVA_OPTS=-Xms{{ GLOBALS.elasticsearch.es_heap }} -Xmx{{ GLOBALS.elasticsearch.es_heap }} -Des.transport.cname_in_publish_address=true -Dlog4j2.formatMsgNoLookups=true
|
||||||
ulimits:
|
{% if DOCKERMERGED.containers['so-elasticsearch'].extra_env %}
|
||||||
- memlock=-1:-1
|
{% for XTRAENV in DOCKERMERGED.containers['so-elasticsearch'].extra_env %}
|
||||||
- nofile=65536:65536
|
|
||||||
- nproc=4096
|
|
||||||
{% if DOCKER.containers['so-elasticsearch'].extra_env %}
|
|
||||||
{% for XTRAENV in DOCKER.containers['so-elasticsearch'].extra_env %}
|
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-elasticsearch'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-elasticsearch'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-elasticsearch'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-elasticsearch'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -75,8 +77,8 @@ so-elasticsearch:
|
|||||||
- {{ repo }}:{{ repo }}:rw
|
- {{ repo }}:{{ repo }}:rw
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-elasticsearch'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-elasticsearch'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-elasticsearch'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-elasticsearch'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
0
salt/elasticsearch/files/ingest-dynamic/.gitkeep
Normal file
0
salt/elasticsearch/files/ingest-dynamic/.gitkeep
Normal file
@@ -1,5 +1,3 @@
|
|||||||
{%- set HIGHLANDER = salt['pillar.get']('global:highlander', False) -%}
|
|
||||||
{%- raw -%}
|
|
||||||
{
|
{
|
||||||
"description" : "common",
|
"description" : "common",
|
||||||
"processors" : [
|
"processors" : [
|
||||||
@@ -67,19 +65,7 @@
|
|||||||
{ "append": { "if": "ctx.dataset_tag_temp != null", "field": "tags", "value": "{{dataset_tag_temp.1}}" } },
|
{ "append": { "if": "ctx.dataset_tag_temp != null", "field": "tags", "value": "{{dataset_tag_temp.1}}" } },
|
||||||
{ "grok": { "if": "ctx.http?.response?.status_code != null", "field": "http.response.status_code", "patterns": ["%{NUMBER:http.response.status_code:long} %{GREEDYDATA}"]} },
|
{ "grok": { "if": "ctx.http?.response?.status_code != null", "field": "http.response.status_code", "patterns": ["%{NUMBER:http.response.status_code:long} %{GREEDYDATA}"]} },
|
||||||
{ "set": { "if": "ctx?.metadata?.kafka != null" , "field": "kafka.id", "value": "{{metadata.kafka.partition}}{{metadata.kafka.offset}}{{metadata.kafka.timestamp}}", "ignore_failure": true } },
|
{ "set": { "if": "ctx?.metadata?.kafka != null" , "field": "kafka.id", "value": "{{metadata.kafka.partition}}{{metadata.kafka.offset}}{{metadata.kafka.timestamp}}", "ignore_failure": true } },
|
||||||
{ "remove": { "field": [ "message2", "type", "fields", "category", "module", "dataset", "dataset_tag_temp", "event.dataset_temp" ], "ignore_missing": true, "ignore_failure": true } }
|
{ "remove": { "field": [ "message2", "type", "fields", "category", "module", "dataset", "dataset_tag_temp", "event.dataset_temp" ], "ignore_missing": true, "ignore_failure": true } },
|
||||||
{%- endraw %}
|
|
||||||
{%- if HIGHLANDER %}
|
|
||||||
,
|
|
||||||
{
|
|
||||||
"pipeline": {
|
|
||||||
"name": "ecs"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{%- endif %}
|
|
||||||
{%- raw %}
|
|
||||||
,
|
|
||||||
{ "pipeline": { "name": "global@custom", "ignore_missing_pipeline": true, "description": "[Fleet] Global pipeline for all data streams" } }
|
{ "pipeline": { "name": "global@custom", "ignore_missing_pipeline": true, "description": "[Fleet] Global pipeline for all data streams" } }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
{% endraw %}
|
|
||||||
@@ -2,7 +2,7 @@ elasticsearch:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Elasticsearch process. This process provides the log event storage system. WARNING - Disabling this process is unsupported.
|
description: Enables or disables the Elasticsearch process. This process provides the log event storage system. WARNING - Disabling this process is unsupported.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
version:
|
version:
|
||||||
description: "This specifies the version of the following containers: so-elastic-fleet-package-registry, so-elastic-agent, so-elastic-fleet, so-kibana, so-logstash and so-elasticsearch. Modifying this value in the Elasticsearch defaults.yaml will result in catastrophic grid failure."
|
description: "This specifies the version of the following containers: so-elastic-fleet-package-registry, so-elastic-agent, so-elastic-fleet, so-kibana, so-logstash and so-elasticsearch. Modifying this value in the Elasticsearch defaults.yaml will result in catastrophic grid failure."
|
||||||
readonly: True
|
readonly: True
|
||||||
@@ -10,15 +10,20 @@ elasticsearch:
|
|||||||
advanced: True
|
advanced: True
|
||||||
esheap:
|
esheap:
|
||||||
description: Specify the memory heap size in (m)egabytes for Elasticsearch.
|
description: Specify the memory heap size in (m)egabytes for Elasticsearch.
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
index_clean:
|
index_clean:
|
||||||
description: Determines if indices should be considered for deletion by available disk space in the cluster. Otherwise, indices will only be deleted by the age defined in the ILM settings. This setting only applies to EVAL, STANDALONE, and HEAVY NODE installations. Other installations can only use ILM settings.
|
description: Determines if indices should be considered for deletion by available disk space in the cluster. Otherwise, indices will only be deleted by the age defined in the ILM settings. This setting only applies to EVAL, STANDALONE, and HEAVY NODE installations. Other installations can only use ILM settings.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
|
vm:
|
||||||
|
max_map_count:
|
||||||
|
description: The maximum number of memory map areas a process may use. Elasticsearch uses a mmapfs directory by default to store its indices. The default operating system limits on mmap counts could be too low, which may result in out of memory exceptions.
|
||||||
|
forcedType: int
|
||||||
|
helpLink: elasticsearch
|
||||||
retention:
|
retention:
|
||||||
retention_pct:
|
retention_pct:
|
||||||
decription: Total percentage of space used by Elasticsearch for multi node clusters
|
decription: Total percentage of space used by Elasticsearch for multi node clusters
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
global: True
|
global: True
|
||||||
config:
|
config:
|
||||||
cluster:
|
cluster:
|
||||||
@@ -26,55 +31,55 @@ elasticsearch:
|
|||||||
description: The name of the Security Onion Elasticsearch cluster, for identification purposes.
|
description: The name of the Security Onion Elasticsearch cluster, for identification purposes.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
logsdb:
|
logsdb:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Elasticsearch logsdb index mode. When enabled, most logs-* datastreams will convert to logsdb from standard after rolling over.
|
description: Enables or disables the Elasticsearch logsdb index mode. When enabled, most logs-* datastreams will convert to logsdb from standard after rolling over.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
routing:
|
routing:
|
||||||
allocation:
|
allocation:
|
||||||
disk:
|
disk:
|
||||||
threshold_enabled:
|
threshold_enabled:
|
||||||
description: Specifies whether the Elasticsearch node will monitor the available disk space for low disk space conditions and take action to protect the cluster.
|
description: Specifies whether the Elasticsearch node will monitor the available disk space for low disk space conditions and take action to protect the cluster.
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
watermark:
|
watermark:
|
||||||
low:
|
low:
|
||||||
description: The lower percentage of used disk space representing a healthy node.
|
description: The lower percentage of used disk space representing a healthy node.
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
high:
|
high:
|
||||||
description: The higher percentage of used disk space representing an unhealthy node.
|
description: The higher percentage of used disk space representing an unhealthy node.
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
flood_stage:
|
flood_stage:
|
||||||
description: The max percentage of used disk space that will cause the node to take protective actions, such as blocking incoming events.
|
description: The max percentage of used disk space that will cause the node to take protective actions, such as blocking incoming events.
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
script:
|
script:
|
||||||
max_compilations_rate:
|
max_compilations_rate:
|
||||||
description: Max rate of script compilations permitted in the Elasticsearch cluster. Larger values will consume more resources.
|
description: Max rate of script compilations permitted in the Elasticsearch cluster. Larger values will consume more resources.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
indices:
|
indices:
|
||||||
query:
|
query:
|
||||||
bool:
|
bool:
|
||||||
max_clause_count:
|
max_clause_count:
|
||||||
description: Max number of boolean clauses per query.
|
description: Max number of boolean clauses per query.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
pipelines:
|
pipelines:
|
||||||
custom001: &pipelines
|
custom001: &pipelines
|
||||||
description:
|
description:
|
||||||
description: Description of the ingest node pipeline
|
description: Description of the ingest node pipeline
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
processors:
|
processors:
|
||||||
description: Processors for the ingest node pipeline
|
description: Processors for the ingest node pipeline
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
custom002: *pipelines
|
custom002: *pipelines
|
||||||
custom003: *pipelines
|
custom003: *pipelines
|
||||||
custom004: *pipelines
|
custom004: *pipelines
|
||||||
@@ -94,24 +99,24 @@ elasticsearch:
|
|||||||
description: Number of replicas required for all indices. Multiple replicas protects against data loss, but also increases storage costs. This setting will be applied to all indices.
|
description: Number of replicas required for all indices. Multiple replicas protects against data loss, but also increases storage costs. This setting will be applied to all indices.
|
||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
refresh_interval:
|
refresh_interval:
|
||||||
description: Seconds between index refreshes. Shorter intervals can cause query performance to suffer since this is a synchronous and resource-intensive operation.
|
description: Seconds between index refreshes. Shorter intervals can cause query performance to suffer since this is a synchronous and resource-intensive operation.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
number_of_shards:
|
number_of_shards:
|
||||||
description: Number of shards required for this index. Using multiple shards increases fault tolerance, but also increases storage and network costs.
|
description: Number of shards required for this index. Using multiple shards increases fault tolerance, but also increases storage and network costs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
sort:
|
sort:
|
||||||
field:
|
field:
|
||||||
description: The field to sort by. Must set index_sorting to True.
|
description: The field to sort by. Must set index_sorting to True.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
order:
|
order:
|
||||||
description: The order to sort by. Must set index_sorting to True.
|
description: The order to sort by. Must set index_sorting to True.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
policy:
|
policy:
|
||||||
phases:
|
phases:
|
||||||
hot:
|
hot:
|
||||||
@@ -121,16 +126,16 @@ elasticsearch:
|
|||||||
description: Priority of index. This is used for recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
description: Priority of index. This is used for recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
rollover:
|
rollover:
|
||||||
max_age:
|
max_age:
|
||||||
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
max_primary_shard_size:
|
max_primary_shard_size:
|
||||||
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
shrink:
|
shrink:
|
||||||
method:
|
method:
|
||||||
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
||||||
@@ -178,13 +183,13 @@ elasticsearch:
|
|||||||
regex: ^[0-9]{1,5}d$
|
regex: ^[0-9]{1,5}d$
|
||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
actions:
|
actions:
|
||||||
set_priority:
|
set_priority:
|
||||||
priority:
|
priority:
|
||||||
description: Used for index recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
description: Used for index recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
allocate:
|
allocate:
|
||||||
number_of_replicas:
|
number_of_replicas:
|
||||||
description: Set the number of replicas. Remains the same as the previous phase by default.
|
description: Set the number of replicas. Remains the same as the previous phase by default.
|
||||||
@@ -197,14 +202,14 @@ elasticsearch:
|
|||||||
regex: ^[0-9]{1,5}d$
|
regex: ^[0-9]{1,5}d$
|
||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
actions:
|
actions:
|
||||||
set_priority:
|
set_priority:
|
||||||
priority:
|
priority:
|
||||||
description: Priority of index. This is used for recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
description: Priority of index. This is used for recovery after a node restart. Indices with higher priorities are recovered before indices with lower priorities.
|
||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
shrink:
|
shrink:
|
||||||
method:
|
method:
|
||||||
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
||||||
@@ -257,13 +262,13 @@ elasticsearch:
|
|||||||
regex: ^[0-9]{1,5}d$
|
regex: ^[0-9]{1,5}d$
|
||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
so-logs: &indexSettings
|
so-logs: &indexSettings
|
||||||
index_sorting:
|
index_sorting:
|
||||||
description: Sorts the index by event time, at the cost of additional processing resource consumption.
|
description: Sorts the index by event time, at the cost of additional processing resource consumption.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
index_template:
|
index_template:
|
||||||
index_patterns:
|
index_patterns:
|
||||||
description: Patterns for matching multiple indices or tables.
|
description: Patterns for matching multiple indices or tables.
|
||||||
@@ -271,7 +276,7 @@ elasticsearch:
|
|||||||
multiline: True
|
multiline: True
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
template:
|
template:
|
||||||
settings:
|
settings:
|
||||||
index:
|
index:
|
||||||
@@ -280,35 +285,35 @@ elasticsearch:
|
|||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
mapping:
|
mapping:
|
||||||
total_fields:
|
total_fields:
|
||||||
limit:
|
limit:
|
||||||
description: Max number of fields that can exist on a single index. Larger values will consume more resources.
|
description: Max number of fields that can exist on a single index. Larger values will consume more resources.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
refresh_interval:
|
refresh_interval:
|
||||||
description: Seconds between index refreshes. Shorter intervals can cause query performance to suffer since this is a synchronous and resource-intensive operation.
|
description: Seconds between index refreshes. Shorter intervals can cause query performance to suffer since this is a synchronous and resource-intensive operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
number_of_shards:
|
number_of_shards:
|
||||||
description: Number of shards required for this index. Using multiple shards increases fault tolerance, but also increases storage and network costs.
|
description: Number of shards required for this index. Using multiple shards increases fault tolerance, but also increases storage and network costs.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
sort:
|
sort:
|
||||||
field:
|
field:
|
||||||
description: The field to sort by. Must set index_sorting to True.
|
description: The field to sort by. Must set index_sorting to True.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
order:
|
order:
|
||||||
description: The order to sort by. Must set index_sorting to True.
|
description: The order to sort by. Must set index_sorting to True.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
mappings:
|
mappings:
|
||||||
_meta:
|
_meta:
|
||||||
package:
|
package:
|
||||||
@@ -316,43 +321,43 @@ elasticsearch:
|
|||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
managed_by:
|
managed_by:
|
||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
managed:
|
managed:
|
||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
composed_of:
|
composed_of:
|
||||||
description: The index template is composed of these component templates.
|
description: The index template is composed of these component templates.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
priority:
|
priority:
|
||||||
description: The priority of the index template.
|
description: The priority of the index template.
|
||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
data_stream:
|
data_stream:
|
||||||
hidden:
|
hidden:
|
||||||
description: Hide the data stream.
|
description: Hide the data stream.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
allow_custom_routing:
|
allow_custom_routing:
|
||||||
description: Allow custom routing for the data stream.
|
description: Allow custom routing for the data stream.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
policy:
|
policy:
|
||||||
phases:
|
phases:
|
||||||
hot:
|
hot:
|
||||||
@@ -360,7 +365,7 @@ elasticsearch:
|
|||||||
description: Minimum age of index. This determines when the index should be moved to the hot tier.
|
description: Minimum age of index. This determines when the index should be moved to the hot tier.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
actions:
|
actions:
|
||||||
set_priority:
|
set_priority:
|
||||||
priority:
|
priority:
|
||||||
@@ -368,18 +373,18 @@ elasticsearch:
|
|||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
rollover:
|
rollover:
|
||||||
max_age:
|
max_age:
|
||||||
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
max_primary_shard_size:
|
max_primary_shard_size:
|
||||||
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
shrink:
|
shrink:
|
||||||
method:
|
method:
|
||||||
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
||||||
@@ -428,7 +433,7 @@ elasticsearch:
|
|||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
actions:
|
actions:
|
||||||
set_priority:
|
set_priority:
|
||||||
priority:
|
priority:
|
||||||
@@ -436,18 +441,18 @@ elasticsearch:
|
|||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
rollover:
|
rollover:
|
||||||
max_age:
|
max_age:
|
||||||
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum age of index. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
max_primary_shard_size:
|
max_primary_shard_size:
|
||||||
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
description: Maximum primary shard size. Once an index reaches this limit, it will be rolled over into a new index.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
shrink:
|
shrink:
|
||||||
method:
|
method:
|
||||||
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
description: Shrink the index to a new index with fewer primary shards. Shrink operation is by count or size.
|
||||||
@@ -501,7 +506,7 @@ elasticsearch:
|
|||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
actions:
|
actions:
|
||||||
set_priority:
|
set_priority:
|
||||||
priority:
|
priority:
|
||||||
@@ -509,7 +514,7 @@ elasticsearch:
|
|||||||
forcedType: int
|
forcedType: int
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
allocate:
|
allocate:
|
||||||
number_of_replicas:
|
number_of_replicas:
|
||||||
description: Set the number of replicas. Remains the same as the previous phase by default.
|
description: Set the number of replicas. Remains the same as the previous phase by default.
|
||||||
@@ -523,25 +528,25 @@ elasticsearch:
|
|||||||
forcedType: string
|
forcedType: string
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
_meta:
|
_meta:
|
||||||
package:
|
package:
|
||||||
name:
|
name:
|
||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
managed_by:
|
managed_by:
|
||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
managed:
|
managed:
|
||||||
description: Meta settings for the mapping.
|
description: Meta settings for the mapping.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
so-logs-system_x_auth: *indexSettings
|
so-logs-system_x_auth: *indexSettings
|
||||||
so-logs-system_x_syslog: *indexSettings
|
so-logs-system_x_syslog: *indexSettings
|
||||||
so-logs-system_x_system: *indexSettings
|
so-logs-system_x_system: *indexSettings
|
||||||
@@ -606,18 +611,18 @@ elasticsearch:
|
|||||||
description: Sorts the index by event time, at the cost of additional processing resource consumption.
|
description: Sorts the index by event time, at the cost of additional processing resource consumption.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
index_template:
|
index_template:
|
||||||
ignore_missing_component_templates:
|
ignore_missing_component_templates:
|
||||||
description: Ignore component templates if they aren't in Elasticsearch.
|
description: Ignore component templates if they aren't in Elasticsearch.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
index_patterns:
|
index_patterns:
|
||||||
description: Patterns for matching multiple indices or tables.
|
description: Patterns for matching multiple indices or tables.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
template:
|
template:
|
||||||
settings:
|
settings:
|
||||||
index:
|
index:
|
||||||
@@ -625,33 +630,33 @@ elasticsearch:
|
|||||||
description: Type of mode used for this index. Time series indices can be used for metrics to reduce necessary storage.
|
description: Type of mode used for this index. Time series indices can be used for metrics to reduce necessary storage.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
number_of_replicas:
|
number_of_replicas:
|
||||||
description: Number of replicas required for this index. Multiple replicas protects against data loss, but also increases storage costs.
|
description: Number of replicas required for this index. Multiple replicas protects against data loss, but also increases storage costs.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
composed_of:
|
composed_of:
|
||||||
description: The index template is composed of these component templates.
|
description: The index template is composed of these component templates.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
priority:
|
priority:
|
||||||
description: The priority of the index template.
|
description: The priority of the index template.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
data_stream:
|
data_stream:
|
||||||
hidden:
|
hidden:
|
||||||
description: Hide the data stream.
|
description: Hide the data stream.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
allow_custom_routing:
|
allow_custom_routing:
|
||||||
description: Allow custom routing for the data stream.
|
description: Allow custom routing for the data stream.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
so-metrics-fleet_server_x_agent_versions: *fleetMetricsSettings
|
so-metrics-fleet_server_x_agent_versions: *fleetMetricsSettings
|
||||||
so_roles:
|
so_roles:
|
||||||
so-manager: &soroleSettings
|
so-manager: &soroleSettings
|
||||||
@@ -662,7 +667,7 @@ elasticsearch:
|
|||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
global: False
|
global: False
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
so-managersearch: *soroleSettings
|
so-managersearch: *soroleSettings
|
||||||
so-standalone: *soroleSettings
|
so-standalone: *soroleSettings
|
||||||
so-searchnode: *soroleSettings
|
so-searchnode: *soroleSettings
|
||||||
|
|||||||
@@ -27,14 +27,12 @@ iptables_config:
|
|||||||
- source: salt://firewall/iptables.jinja
|
- source: salt://firewall/iptables.jinja
|
||||||
- template: jinja
|
- template: jinja
|
||||||
|
|
||||||
{% if grains.os_family == 'RedHat' %}
|
|
||||||
disable_firewalld:
|
disable_firewalld:
|
||||||
service.dead:
|
service.dead:
|
||||||
- name: firewalld
|
- name: firewalld
|
||||||
- enable: False
|
- enable: False
|
||||||
- require:
|
- require:
|
||||||
- file: iptables_config
|
- file: iptables_config
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
iptables_restore:
|
iptables_restore:
|
||||||
cmd.run:
|
cmd.run:
|
||||||
@@ -44,7 +42,6 @@ iptables_restore:
|
|||||||
- onlyif:
|
- onlyif:
|
||||||
- iptables-restore --test {{ iptmap.configfile }}
|
- iptables-restore --test {{ iptmap.configfile }}
|
||||||
|
|
||||||
{% if grains.os_family == 'RedHat' %}
|
|
||||||
enable_firewalld:
|
enable_firewalld:
|
||||||
service.running:
|
service.running:
|
||||||
- name: firewalld
|
- name: firewalld
|
||||||
@@ -52,7 +49,6 @@ enable_firewalld:
|
|||||||
- onfail:
|
- onfail:
|
||||||
- file: iptables_config
|
- file: iptables_config
|
||||||
- cmd: iptables_restore
|
- cmd: iptables_restore
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
{% set iptmap = salt['grains.filter_by']({
|
{% set iptmap = {
|
||||||
'Debian': {
|
'service': 'iptables',
|
||||||
'service': 'netfilter-persistent',
|
'iptpkg': 'iptables-nft',
|
||||||
'iptpkg': 'iptables',
|
'persistpkg': 'iptables-nft-services',
|
||||||
'persistpkg': 'iptables-persistent',
|
'configfile': '/etc/sysconfig/iptables'
|
||||||
'configfile': '/etc/iptables/rules.v4'
|
} %}
|
||||||
},
|
|
||||||
'RedHat': {
|
|
||||||
'service': 'iptables',
|
|
||||||
'iptpkg': 'iptables-nft',
|
|
||||||
'persistpkg': 'iptables-nft-services',
|
|
||||||
'configfile': '/etc/sysconfig/iptables'
|
|
||||||
},
|
|
||||||
}) %}
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{%- from 'vars/globals.map.jinja' import GLOBALS %}
|
{%- from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{%- from 'docker/docker.map.jinja' import DOCKER %}
|
{%- from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{%- from 'firewall/map.jinja' import FIREWALL_MERGED %}
|
{%- from 'firewall/map.jinja' import FIREWALL_MERGED %}
|
||||||
{%- set role = GLOBALS.role.split('-')[1] %}
|
{%- set role = GLOBALS.role.split('-')[1] %}
|
||||||
{%- from 'firewall/containers.map.jinja' import NODE_CONTAINERS %}
|
{%- from 'firewall/containers.map.jinja' import NODE_CONTAINERS %}
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
{%- set D1 = [] %}
|
{%- set D1 = [] %}
|
||||||
{%- set D2 = [] %}
|
{%- set D2 = [] %}
|
||||||
{%- for container in NODE_CONTAINERS %}
|
{%- for container in NODE_CONTAINERS %}
|
||||||
{%- set IP = DOCKER.containers[container].ip %}
|
{%- set IP = DOCKERMERGED.containers[container].ip %}
|
||||||
{%- if DOCKER.containers[container].port_bindings is defined %}
|
{%- if DOCKERMERGED.containers[container].port_bindings is defined %}
|
||||||
{%- for binding in DOCKER.containers[container].port_bindings %}
|
{%- for binding in DOCKERMERGED.containers[container].port_bindings %}
|
||||||
{#- cant split int so we convert to string #}
|
{#- cant split int so we convert to string #}
|
||||||
{%- set binding = binding|string %}
|
{%- set binding = binding|string %}
|
||||||
{#- split the port binding by /. if proto not specified, default is tcp #}
|
{#- split the port binding by /. if proto not specified, default is tcp #}
|
||||||
@@ -33,13 +33,13 @@
|
|||||||
{%- set hostPort = bsa[0] %}
|
{%- set hostPort = bsa[0] %}
|
||||||
{%- set containerPort = bsa[1] %}
|
{%- set containerPort = bsa[1] %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- do PR.append("-A POSTROUTING -s " ~ DOCKER.containers[container].ip ~ "/32 -d " ~ DOCKER.containers[container].ip ~ "/32 -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ containerPort ~ " -j MASQUERADE") %}
|
{%- do PR.append("-A POSTROUTING -s " ~ DOCKERMERGED.containers[container].ip ~ "/32 -d " ~ DOCKERMERGED.containers[container].ip ~ "/32 -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ containerPort ~ " -j MASQUERADE") %}
|
||||||
{%- if bindip | length and bindip != '0.0.0.0' %}
|
{%- if bindip | length and bindip != '0.0.0.0' %}
|
||||||
{%- do D1.append("-A DOCKER -d " ~ bindip ~ "/32 ! -i sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ hostPort ~ " -j DNAT --to-destination " ~ DOCKER.containers[container].ip ~ ":" ~ containerPort) %}
|
{%- do D1.append("-A DOCKER -d " ~ bindip ~ "/32 ! -i sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ hostPort ~ " -j DNAT --to-destination " ~ DOCKERMERGED.containers[container].ip ~ ":" ~ containerPort) %}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{%- do D1.append("-A DOCKER ! -i sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ hostPort ~ " -j DNAT --to-destination " ~ DOCKER.containers[container].ip ~ ":" ~ containerPort) %}
|
{%- do D1.append("-A DOCKER ! -i sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ hostPort ~ " -j DNAT --to-destination " ~ DOCKERMERGED.containers[container].ip ~ ":" ~ containerPort) %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- do D2.append("-A DOCKER -d " ~ DOCKER.containers[container].ip ~ "/32 ! -i sobridge -o sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ containerPort ~ " -j ACCEPT") %}
|
{%- do D2.append("-A DOCKER -d " ~ DOCKERMERGED.containers[container].ip ~ "/32 ! -i sobridge -o sobridge -p " ~ proto ~ " -m " ~ proto ~ " --dport " ~ containerPort ~ " -j ACCEPT") %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
:DOCKER - [0:0]
|
:DOCKER - [0:0]
|
||||||
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
|
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
|
||||||
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
|
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
|
||||||
-A POSTROUTING -s {{DOCKER.range}} ! -o sobridge -j MASQUERADE
|
-A POSTROUTING -s {{DOCKERMERGED.range}} ! -o sobridge -j MASQUERADE
|
||||||
{%- for rule in PR %}
|
{%- for rule in PR %}
|
||||||
{{ rule }}
|
{{ rule }}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% import_yaml 'firewall/defaults.yaml' as FIREWALL_DEFAULT %}
|
{% import_yaml 'firewall/defaults.yaml' as FIREWALL_DEFAULT %}
|
||||||
|
|
||||||
{# add our ip to self #}
|
{# add our ip to self #}
|
||||||
{% do FIREWALL_DEFAULT.firewall.hostgroups.self.append(GLOBALS.node_ip) %}
|
{% do FIREWALL_DEFAULT.firewall.hostgroups.self.append(GLOBALS.node_ip) %}
|
||||||
{# add dockernet range #}
|
{# add dockernet range #}
|
||||||
{% do FIREWALL_DEFAULT.firewall.hostgroups.dockernet.append(DOCKER.range) %}
|
{% do FIREWALL_DEFAULT.firewall.hostgroups.dockernet.append(DOCKERMERGED.range) %}
|
||||||
|
|
||||||
{% if GLOBALS.role == 'so-idh' %}
|
{% if GLOBALS.role == 'so-idh' %}
|
||||||
{% from 'idh/opencanary_config.map.jinja' import IDH_PORTGROUPS %}
|
{% from 'idh/opencanary_config.map.jinja' import IDH_PORTGROUPS %}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ firewall:
|
|||||||
analyst: &hostgroupsettings
|
analyst: &hostgroupsettings
|
||||||
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
multiline: True
|
multiline: True
|
||||||
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
||||||
regexFailureMessage: You must enter a valid IP address or CIDR.
|
regexFailureMessage: You must enter a valid IP address or CIDR.
|
||||||
@@ -11,7 +11,7 @@ firewall:
|
|||||||
anywhere: &hostgroupsettingsadv
|
anywhere: &hostgroupsettingsadv
|
||||||
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
multiline: True
|
multiline: True
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
||||||
@@ -22,7 +22,7 @@ firewall:
|
|||||||
dockernet: &ROhostgroupsettingsadv
|
dockernet: &ROhostgroupsettingsadv
|
||||||
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
description: List of IP or CIDR blocks to allow access to this hostgroup.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
multiline: True
|
multiline: True
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
@@ -53,7 +53,7 @@ firewall:
|
|||||||
customhostgroup0: &customhostgroupsettings
|
customhostgroup0: &customhostgroupsettings
|
||||||
description: List of IP or CIDR blocks to allow to this hostgroup.
|
description: List of IP or CIDR blocks to allow to this hostgroup.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
regex: ^(([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?)?$
|
||||||
@@ -73,14 +73,14 @@ firewall:
|
|||||||
tcp: &tcpsettings
|
tcp: &tcpsettings
|
||||||
description: List of TCP ports for this port group.
|
description: List of TCP ports for this port group.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
duplicates: True
|
duplicates: True
|
||||||
udp: &udpsettings
|
udp: &udpsettings
|
||||||
description: List of UDP ports for this port group.
|
description: List of UDP ports for this port group.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
duplicates: True
|
duplicates: True
|
||||||
@@ -206,7 +206,7 @@ firewall:
|
|||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
duplicates: True
|
duplicates: True
|
||||||
sensor:
|
sensor:
|
||||||
portgroups: *portgroupsdocker
|
portgroups: *portgroupsdocker
|
||||||
@@ -262,7 +262,7 @@ firewall:
|
|||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: firewall.html
|
helpLink: firewall
|
||||||
duplicates: True
|
duplicates: True
|
||||||
dockernet:
|
dockernet:
|
||||||
portgroups: *portgroupshost
|
portgroups: *portgroupshost
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
host:
|
host:
|
||||||
mainint:
|
mainint:
|
||||||
description: Main interface of the grid host.
|
description: Main interface of the grid host.
|
||||||
helpLink: host.html
|
helpLink: ip-address
|
||||||
mainip:
|
mainip:
|
||||||
description: Main IP address of the grid host.
|
description: Main IP address of the grid host.
|
||||||
helpLink: host.html
|
helpLink: ip-address
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% if 'api' in salt['pillar.get']('features', []) %}
|
{% if 'api' in salt['pillar.get']('features', []) %}
|
||||||
|
|
||||||
@@ -26,32 +26,38 @@ so-hydra:
|
|||||||
- name: so-hydra
|
- name: so-hydra
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-hydra'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-hydra'].ip }}
|
||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/hydra/:/hydra-conf:ro
|
- /opt/so/conf/hydra/:/hydra-conf:ro
|
||||||
- /opt/so/log/hydra/:/hydra-log:rw
|
- /opt/so/log/hydra/:/hydra-log:rw
|
||||||
- /nsm/hydra/db:/hydra-data:rw
|
- /nsm/hydra/db:/hydra-data:rw
|
||||||
{% if DOCKER.containers['so-hydra'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-hydra'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-hydra'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-hydra'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-hydra'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-hydra'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-hydra'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-hydra'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-hydra'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-hydra'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-hydra'].extra_env %}
|
{% if DOCKERMERGED.containers['so-hydra'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-hydra'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-hydra'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-hydra'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-hydra'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- restart_policy: unless-stopped
|
- restart_policy: unless-stopped
|
||||||
- watch:
|
- watch:
|
||||||
- file: hydraconfig
|
- file: hydraconfig
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
hydra:
|
hydra:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the API authentication system, used for service account authentication. Enabling this feature requires a valid Security Onion license key. Defaults to False.
|
description: Enables or disables the API authentication system, used for service account authentication. Enabling this feature requires a valid Security Onion license key. Defaults to False.
|
||||||
helpLink: connect.html
|
helpLink: connect-api
|
||||||
global: True
|
global: True
|
||||||
config:
|
config:
|
||||||
ttl:
|
ttl:
|
||||||
@@ -9,16 +9,16 @@ hydra:
|
|||||||
description: Amount of time that the generated access token will be valid. Specified in the form of 2h, which means 2 hours.
|
description: Amount of time that the generated access token will be valid. Specified in the form of 2h, which means 2 hours.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: connect.html
|
helpLink: connect-api
|
||||||
log:
|
log:
|
||||||
level:
|
level:
|
||||||
description: Log level to use for Kratos logs.
|
description: Log level to use for Kratos logs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: connect.html
|
helpLink: connect-api
|
||||||
format:
|
format:
|
||||||
description: Log output format for Kratos logs.
|
description: Log output format for Kratos logs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: connect.html
|
helpLink: connect-api
|
||||||
secrets:
|
secrets:
|
||||||
system:
|
system:
|
||||||
description: Secrets used for token generation. Generated during installation.
|
description: Secrets used for token generation. Generated during installation.
|
||||||
@@ -26,4 +26,4 @@ hydra:
|
|||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: connect.html
|
helpLink: connect-api
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- idh.config
|
- idh.config
|
||||||
@@ -22,23 +22,29 @@ so-idh:
|
|||||||
- /nsm/idh:/var/tmp:rw
|
- /nsm/idh:/var/tmp:rw
|
||||||
- /opt/so/conf/idh/http-skins:/usr/local/lib/python3.12/site-packages/opencanary/modules/data/http/skin:ro
|
- /opt/so/conf/idh/http-skins:/usr/local/lib/python3.12/site-packages/opencanary/modules/data/http/skin:ro
|
||||||
- /opt/so/conf/idh/opencanary.conf:/etc/opencanaryd/opencanary.conf:ro
|
- /opt/so/conf/idh/opencanary.conf:/etc/opencanaryd/opencanary.conf:ro
|
||||||
{% if DOCKER.containers['so-idh'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-idh'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-idh'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-idh'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-idh'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-idh'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-idh'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-idh'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-idh'].extra_env %}
|
{% if DOCKERMERGED.containers['so-idh'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-idh'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-idh'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-idh'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-idh'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: opencanary_config
|
- file: opencanary_config
|
||||||
- require:
|
- require:
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
include:
|
include:
|
||||||
- idh.openssh
|
- idh.openssh
|
||||||
|
|
||||||
{% if grains.os_family == 'RedHat' %}
|
|
||||||
idh_sshd_selinux:
|
idh_sshd_selinux:
|
||||||
selinux.port_policy_present:
|
selinux.port_policy_present:
|
||||||
- port: {{ openssh_map.config.port }}
|
- port: {{ openssh_map.config.port }}
|
||||||
@@ -13,7 +12,6 @@ idh_sshd_selinux:
|
|||||||
- file: openssh_config
|
- file: openssh_config
|
||||||
- require:
|
- require:
|
||||||
- pkg: python_selinux_mgmt_tools
|
- pkg: python_selinux_mgmt_tools
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
openssh_config:
|
openssh_config:
|
||||||
file.replace:
|
file.replace:
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ openssh:
|
|||||||
- name: {{ openssh_map.service }}
|
- name: {{ openssh_map.service }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if grains.os_family == 'RedHat' %}
|
|
||||||
python_selinux_mgmt_tools:
|
python_selinux_mgmt_tools:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: policycoreutils-python-utils
|
- name: policycoreutils-python-utils
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
idh:
|
idh:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Intrusion Detection Honeypot (IDH) process.
|
description: Enables or disables the Intrusion Detection Honeypot (IDH) process.
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
opencanary:
|
opencanary:
|
||||||
config:
|
config:
|
||||||
logger:
|
logger:
|
||||||
@@ -10,7 +10,7 @@ idh:
|
|||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
kwargs:
|
kwargs:
|
||||||
formatters:
|
formatters:
|
||||||
plain:
|
plain:
|
||||||
@@ -24,53 +24,53 @@ idh:
|
|||||||
filename: *loggingOptions
|
filename: *loggingOptions
|
||||||
portscan_x_enabled: &serviceOptions
|
portscan_x_enabled: &serviceOptions
|
||||||
description: To enable this opencanary module, set this value to true. To disable set to false. This option only applies to IDH nodes within your grid.
|
description: To enable this opencanary module, set this value to true. To disable set to false. This option only applies to IDH nodes within your grid.
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
portscan_x_logfile: *loggingOptions
|
portscan_x_logfile: *loggingOptions
|
||||||
portscan_x_synrate:
|
portscan_x_synrate:
|
||||||
description: Portscan - syn rate limiting
|
description: Portscan - syn rate limiting
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
portscan_x_nmaposrate:
|
portscan_x_nmaposrate:
|
||||||
description: Portscan - nmap OS rate limiting
|
description: Portscan - nmap OS rate limiting
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
portscan_x_lorate:
|
portscan_x_lorate:
|
||||||
description: Portscan - lo rate limiting
|
description: Portscan - lo rate limiting
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_x_maxnum:
|
tcpbanner_x_maxnum:
|
||||||
description: Portscan - maxnum
|
description: Portscan - maxnum
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_x_enabled: *serviceOptions
|
tcpbanner_x_enabled: *serviceOptions
|
||||||
tcpbanner_1_x_enabled: *serviceOptions
|
tcpbanner_1_x_enabled: *serviceOptions
|
||||||
tcpbanner_1_x_port: &portOptions
|
tcpbanner_1_x_port: &portOptions
|
||||||
description: Port the service should listen on.
|
description: Port the service should listen on.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_1_x_datareceivedbanner: &bannerOptions
|
tcpbanner_1_x_datareceivedbanner: &bannerOptions
|
||||||
description: Data Received Banner
|
description: Data Received Banner
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_1_x_initbanner: *bannerOptions
|
tcpbanner_1_x_initbanner: *bannerOptions
|
||||||
tcpbanner_1_x_alertstring_x_enabled: *serviceOptions
|
tcpbanner_1_x_alertstring_x_enabled: *serviceOptions
|
||||||
tcpbanner_1_x_keep_alive_x_enabled: *serviceOptions
|
tcpbanner_1_x_keep_alive_x_enabled: *serviceOptions
|
||||||
tcpbanner_1_x_keep_alive_secret:
|
tcpbanner_1_x_keep_alive_secret:
|
||||||
description: Keep Alive Secret
|
description: Keep Alive Secret
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_1_x_keep_alive_probes:
|
tcpbanner_1_x_keep_alive_probes:
|
||||||
description: Keep Alive Probes
|
description: Keep Alive Probes
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_1_x_keep_alive_interval:
|
tcpbanner_1_x_keep_alive_interval:
|
||||||
description: Keep Alive Interval
|
description: Keep Alive Interval
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tcpbanner_1_x_keep_alive_idle:
|
tcpbanner_1_x_keep_alive_idle:
|
||||||
description: Keep Alive Idle
|
description: Keep Alive Idle
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
ftp_x_enabled: *serviceOptions
|
ftp_x_enabled: *serviceOptions
|
||||||
ftp_x_port: *portOptions
|
ftp_x_port: *portOptions
|
||||||
ftp_x_banner: *bannerOptions
|
ftp_x_banner: *bannerOptions
|
||||||
@@ -82,11 +82,11 @@ idh:
|
|||||||
http_x_skin: &skinOptions
|
http_x_skin: &skinOptions
|
||||||
description: HTTP skin
|
description: HTTP skin
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
http_x_skinlist: &skinlistOptions
|
http_x_skinlist: &skinlistOptions
|
||||||
description: List of skins to use for the service.
|
description: List of skins to use for the service.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
httpproxy_x_enabled: *serviceOptions
|
httpproxy_x_enabled: *serviceOptions
|
||||||
httpproxy_x_port: *portOptions
|
httpproxy_x_port: *portOptions
|
||||||
httpproxy_x_skin: *skinOptions
|
httpproxy_x_skin: *skinOptions
|
||||||
@@ -95,7 +95,7 @@ idh:
|
|||||||
mssql_x_version: &versionOptions
|
mssql_x_version: &versionOptions
|
||||||
description: Specify the version the service should present.
|
description: Specify the version the service should present.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
mssql_x_port: *portOptions
|
mssql_x_port: *portOptions
|
||||||
mysql_x_enabled: *serviceOptions
|
mysql_x_enabled: *serviceOptions
|
||||||
mysql_x_port: *portOptions
|
mysql_x_port: *portOptions
|
||||||
@@ -119,7 +119,7 @@ idh:
|
|||||||
telnet_x_honeycreds:
|
telnet_x_honeycreds:
|
||||||
description: Credentials list for the telnet service.
|
description: Credentials list for the telnet service.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
tftp_x_enabled: *serviceOptions
|
tftp_x_enabled: *serviceOptions
|
||||||
tftp_x_port: *portOptions
|
tftp_x_port: *portOptions
|
||||||
vnc_x_enabled: *serviceOptions
|
vnc_x_enabled: *serviceOptions
|
||||||
@@ -127,8 +127,8 @@ idh:
|
|||||||
openssh:
|
openssh:
|
||||||
enable:
|
enable:
|
||||||
description: This is the real SSH service for the host machine.
|
description: This is the real SSH service for the host machine.
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
config:
|
config:
|
||||||
port:
|
port:
|
||||||
description: Port that the real SSH service will listen on and will only be accessible from the manager.
|
description: Port that the real SSH service will listen on and will only be accessible from the manager.
|
||||||
helpLink: idh.html
|
helpLink: idh
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% set PASSWORD = salt['pillar.get']('secrets:influx_pass') %}
|
{% set PASSWORD = salt['pillar.get']('secrets:influx_pass') %}
|
||||||
{% set TOKEN = salt['pillar.get']('influxdb:token') %}
|
{% set TOKEN = salt['pillar.get']('influxdb:token') %}
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ so-influxdb:
|
|||||||
- hostname: influxdb
|
- hostname: influxdb
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-influxdb'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-influxdb'].ip }}
|
||||||
- environment:
|
- environment:
|
||||||
- INFLUXD_CONFIG_PATH=/conf/config.yaml
|
- INFLUXD_CONFIG_PATH=/conf/config.yaml
|
||||||
- INFLUXDB_HTTP_LOG_ENABLED=false
|
- INFLUXDB_HTTP_LOG_ENABLED=false
|
||||||
@@ -31,8 +31,8 @@ so-influxdb:
|
|||||||
- DOCKER_INFLUXDB_INIT_ORG=Security Onion
|
- DOCKER_INFLUXDB_INIT_ORG=Security Onion
|
||||||
- DOCKER_INFLUXDB_INIT_BUCKET=telegraf/so_short_term
|
- DOCKER_INFLUXDB_INIT_BUCKET=telegraf/so_short_term
|
||||||
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN={{ TOKEN }}
|
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN={{ TOKEN }}
|
||||||
{% if DOCKER.containers['so-influxdb'].extra_env %}
|
{% if DOCKERMERGED.containers['so-influxdb'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-influxdb'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-influxdb'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -43,21 +43,27 @@ so-influxdb:
|
|||||||
- /nsm/influxdb:/var/lib/influxdb2:rw
|
- /nsm/influxdb:/var/lib/influxdb2:rw
|
||||||
- /etc/pki/influxdb.crt:/conf/influxdb.crt:ro
|
- /etc/pki/influxdb.crt:/conf/influxdb.crt:ro
|
||||||
- /etc/pki/influxdb.key:/conf/influxdb.key:ro
|
- /etc/pki/influxdb.key:/conf/influxdb.key:ro
|
||||||
{% if DOCKER.containers['so-influxdb'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-influxdb'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-influxdb'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-influxdb'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-influxdb'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-influxdb'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-influxdb'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-influxdb'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-influxdb'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-influxdb'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-influxdb'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-influxdb'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: influxdbconf
|
- file: influxdbconf
|
||||||
- x509: influxdb_key
|
- x509: influxdb_key
|
||||||
|
|||||||
@@ -1,358 +1,358 @@
|
|||||||
influxdb:
|
influxdb:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables the grid metrics collection storage system. Security Onion grid health monitoring requires this process to remain enabled. WARNING - Disabling the process is unsupported, and will cause unexpected results.
|
description: Enables the grid metrics collection storage system. Security Onion grid health monitoring requires this process to remain enabled. WARNING - Disabling the process is unsupported, and will cause unexpected results.
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
config:
|
config:
|
||||||
assets-path:
|
assets-path:
|
||||||
description: Path to the InfluxDB user interface assets located inside the so-influxdb container.
|
description: Path to the InfluxDB user interface assets located inside the so-influxdb container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
bolt-path:
|
bolt-path:
|
||||||
description: Path to the bolt DB file located inside the so-influxdb container.
|
description: Path to the bolt DB file located inside the so-influxdb container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
engine-path:
|
engine-path:
|
||||||
description: Path to the engine directory located inside the so-influxdb container. This directory stores the time series data.
|
description: Path to the engine directory located inside the so-influxdb container. This directory stores the time series data.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
feature-flags:
|
feature-flags:
|
||||||
description: List of key=value flags to enable.
|
description: List of key=value flags to enable.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
flux-log-enabled:
|
flux-log-enabled:
|
||||||
description: Controls whether detailed flux query logging is enabled.
|
description: Controls whether detailed flux query logging is enabled.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
hardening-enabled:
|
hardening-enabled:
|
||||||
description: If true, enforces outbound connections from the InfluxDB process must never attempt to reach an internal, private network address.
|
description: If true, enforces outbound connections from the InfluxDB process must never attempt to reach an internal, private network address.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
http-bind-address:
|
http-bind-address:
|
||||||
description: The URL and port on which InfluxDB will listen for new connections.
|
description: The URL and port on which InfluxDB will listen for new connections.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
http-idle-timeout:
|
http-idle-timeout:
|
||||||
description: Keep-alive timeout while a connection waits for new requests. A value of 0 is the same as no timeout enforced.
|
description: Keep-alive timeout while a connection waits for new requests. A value of 0 is the same as no timeout enforced.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
http-read-header-timeout:
|
http-read-header-timeout:
|
||||||
description: The duration to wait for a request header before closing the connection. A value of 0 is the same as no timeout enforced.
|
description: The duration to wait for a request header before closing the connection. A value of 0 is the same as no timeout enforced.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
http-read-timeout:
|
http-read-timeout:
|
||||||
description: The duration to wait for the request to be fully read before closing the connection. A value of 0 is the same as no timeout enforced.
|
description: The duration to wait for the request to be fully read before closing the connection. A value of 0 is the same as no timeout enforced.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
http-write-timeout:
|
http-write-timeout:
|
||||||
description: The duration to wait for the response to be fully written before closing the connection. A value of 0 is the same as no timeout enforced.
|
description: The duration to wait for the response to be fully written before closing the connection. A value of 0 is the same as no timeout enforced.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
influxql-max-select-buckets:
|
influxql-max-select-buckets:
|
||||||
description: Maximum number of group-by clauses in a SELECT statement. A value of 0 is the same as unlimited.
|
description: Maximum number of group-by clauses in a SELECT statement. A value of 0 is the same as unlimited.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
influxql-max-select-point:
|
influxql-max-select-point:
|
||||||
description: Maximum number of points that can be queried in a SELECT statement. A value of 0 is the same as unlimited.
|
description: Maximum number of points that can be queried in a SELECT statement. A value of 0 is the same as unlimited.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
influxql-max-select-series:
|
influxql-max-select-series:
|
||||||
description: Maximum number of series that can be returned in a SELECT statement. A value of 0 is the same as unlimited.
|
description: Maximum number of series that can be returned in a SELECT statement. A value of 0 is the same as unlimited.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
instance-id:
|
instance-id:
|
||||||
description: Unique instance ID for this server, to avoid collisions in a replicated cluster.
|
description: Unique instance ID for this server, to avoid collisions in a replicated cluster.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
log-level:
|
log-level:
|
||||||
description: The log level to use for outputting log statements. Allowed values are debug, info, or error.
|
description: The log level to use for outputting log statements. Allowed values are debug, info, or error.
|
||||||
global: True
|
global: True
|
||||||
advanced: false
|
advanced: false
|
||||||
regex: ^(info|debug|error)$
|
regex: ^(info|debug|error)$
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
metrics-disabled:
|
metrics-disabled:
|
||||||
description: If true, the HTTP endpoint that exposes internal InfluxDB metrics will be inaccessible.
|
description: If true, the HTTP endpoint that exposes internal InfluxDB metrics will be inaccessible.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
no-tasks:
|
no-tasks:
|
||||||
description: If true, the task system will not process any queued tasks. Useful for troubleshooting startup problems.
|
description: If true, the task system will not process any queued tasks. Useful for troubleshooting startup problems.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
pprof-disabled:
|
pprof-disabled:
|
||||||
description: If true, the profiling data HTTP endpoint will be inaccessible.
|
description: If true, the profiling data HTTP endpoint will be inaccessible.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
query-concurrency:
|
query-concurrency:
|
||||||
description: Maximum number of queries to execute concurrently. A value of 0 is the same as unlimited.
|
description: Maximum number of queries to execute concurrently. A value of 0 is the same as unlimited.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
query-initial-memory-bytes:
|
query-initial-memory-bytes:
|
||||||
description: The initial number of bytes of memory to allocate for a new query.
|
description: The initial number of bytes of memory to allocate for a new query.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
query-max-memory-bytes:
|
query-max-memory-bytes:
|
||||||
description: The number of bytes of memory to allocate to all running queries. Should typically be the query bytes times the max concurrent queries.
|
description: The number of bytes of memory to allocate to all running queries. Should typically be the query bytes times the max concurrent queries.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
query-memory-bytes:
|
query-memory-bytes:
|
||||||
description: Maximum number of bytes of memory to allocate to a query.
|
description: Maximum number of bytes of memory to allocate to a query.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
query-queue-size:
|
query-queue-size:
|
||||||
description: Maximum number of queries that can be queued at one time. If this value is reached, new queries will not be queued. A value of 0 is the same as unlimited.
|
description: Maximum number of queries that can be queued at one time. If this value is reached, new queries will not be queued. A value of 0 is the same as unlimited.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
reporting-disabled:
|
reporting-disabled:
|
||||||
description: If true, prevents InfluxDB from sending telemetry updates to InfluxData's servers.
|
description: If true, prevents InfluxDB from sending telemetry updates to InfluxData's servers.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
secret-store:
|
secret-store:
|
||||||
description: Determines the type of storage used for secrets. Allowed values are bolt or vault.
|
description: Determines the type of storage used for secrets. Allowed values are bolt or vault.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(bolt|vault)$
|
regex: ^(bolt|vault)$
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
session-length:
|
session-length:
|
||||||
description: Number of minutes that a user login session can remain authenticated.
|
description: Number of minutes that a user login session can remain authenticated.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
session-renew-disabled:
|
session-renew-disabled:
|
||||||
description: If true, user login sessions will renew after each request.
|
description: If true, user login sessions will renew after each request.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
sqlite-path:
|
sqlite-path:
|
||||||
description: Path to the Sqlite3 database inside the container. This database stored user data and other information about the database.
|
description: Path to the Sqlite3 database inside the container. This database stored user data and other information about the database.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-cache-max-memory-size:
|
storage-cache-max-memory-size:
|
||||||
description: Maximum number of bytes to allocate to cache data per shard. If exceeded, new data writes will be rejected.
|
description: Maximum number of bytes to allocate to cache data per shard. If exceeded, new data writes will be rejected.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-cache-snapshot-memory-size:
|
storage-cache-snapshot-memory-size:
|
||||||
description: Number of bytes to allocate to cache snapshot data. When the cache reaches this size, it will be written to disk to increase available memory.
|
description: Number of bytes to allocate to cache snapshot data. When the cache reaches this size, it will be written to disk to increase available memory.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-cache-snapshot-write-cold-duration:
|
storage-cache-snapshot-write-cold-duration:
|
||||||
description: Duration between snapshot writes to disk when the shard data hasn't been modified.
|
description: Duration between snapshot writes to disk when the shard data hasn't been modified.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-compact-full-write-cold-duration:
|
storage-compact-full-write-cold-duration:
|
||||||
description: Duration between shard compactions when the shard data hasn't been modified.
|
description: Duration between shard compactions when the shard data hasn't been modified.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-compact-throughput-burst:
|
storage-compact-throughput-burst:
|
||||||
description: Maximum throughput (number of bytes per second) that compactions be written to disk.
|
description: Maximum throughput (number of bytes per second) that compactions be written to disk.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-max-concurrent-compactions:
|
storage-max-concurrent-compactions:
|
||||||
description: Maximum number of concurrent compactions. A value of 0 is the same as half the available CPU processors (procs).
|
description: Maximum number of concurrent compactions. A value of 0 is the same as half the available CPU processors (procs).
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-max-index-log-file-size:
|
storage-max-index-log-file-size:
|
||||||
description: Maximum number of bytes of a write-ahead log (WAL) file before it will be compacted into an index on disk.
|
description: Maximum number of bytes of a write-ahead log (WAL) file before it will be compacted into an index on disk.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-no-validate-field-size:
|
storage-no-validate-field-size:
|
||||||
description: If true, incoming requests will skip the field size validation.
|
description: If true, incoming requests will skip the field size validation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-retention-check-interval:
|
storage-retention-check-interval:
|
||||||
description: Interval between reviewing each bucket's retention policy and the age of the associated data.
|
description: Interval between reviewing each bucket's retention policy and the age of the associated data.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-series-file-max-concurrent-snapshot-compactions:
|
storage-series-file-max-concurrent-snapshot-compactions:
|
||||||
description: Maximum number of concurrent snapshot compactions across all database partitions.
|
description: Maximum number of concurrent snapshot compactions across all database partitions.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-series-id-set-cache-size:
|
storage-series-id-set-cache-size:
|
||||||
description: Maximum size of the series cache results. Higher values may increase performance for repeated data lookups.
|
description: Maximum size of the series cache results. Higher values may increase performance for repeated data lookups.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-shard-precreator-advance-period:
|
storage-shard-precreator-advance-period:
|
||||||
description: The duration before a successor shard group is created after the end-time has been reached.
|
description: The duration before a successor shard group is created after the end-time has been reached.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-shard-precreator-check-interval:
|
storage-shard-precreator-check-interval:
|
||||||
description: Interval between checking if new shards should be created.
|
description: Interval between checking if new shards should be created.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-tsm-use-madv-willneed:
|
storage-tsm-use-madv-willneed:
|
||||||
description: If true, InfluxDB will manage TSM memory paging.
|
description: If true, InfluxDB will manage TSM memory paging.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-validate-keys:
|
storage-validate-keys:
|
||||||
description: If true, validates incoming requests for supported characters.
|
description: If true, validates incoming requests for supported characters.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-wal-fsync-delay:
|
storage-wal-fsync-delay:
|
||||||
description: Duration to wait before calling fsync. Useful for handling conflicts on slower disks.
|
description: Duration to wait before calling fsync. Useful for handling conflicts on slower disks.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-wal-max-concurrent-writes:
|
storage-wal-max-concurrent-writes:
|
||||||
description: Maximum number of concurrent write-ahead log (WAL) writes to disk. The value of 0 is the same as CPU processors (procs) x 2.
|
description: Maximum number of concurrent write-ahead log (WAL) writes to disk. The value of 0 is the same as CPU processors (procs) x 2.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-wal-max-write-delay:
|
storage-wal-max-write-delay:
|
||||||
description: Maximum duration to wait before writing the write-ahead log (WAL) to disk, when the concurrency limit has been exceeded. A value of 0 is the same as no timeout.
|
description: Maximum duration to wait before writing the write-ahead log (WAL) to disk, when the concurrency limit has been exceeded. A value of 0 is the same as no timeout.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
storage-write-timeout:
|
storage-write-timeout:
|
||||||
description: Maximum time to wait for a write-ahead log (WAL) to write to disk before aborting.
|
description: Maximum time to wait for a write-ahead log (WAL) to write to disk before aborting.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
store:
|
store:
|
||||||
description: The type of data store to use for HTTP resources. Allowed values are disk or memory. Memory should not be used for production Security Onion installations.
|
description: The type of data store to use for HTTP resources. Allowed values are disk or memory. Memory should not be used for production Security Onion installations.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(disk|memory)$
|
regex: ^(disk|memory)$
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
tls-cert:
|
tls-cert:
|
||||||
description: The container path to the certificate to use for TLS encryption of the HTTP requests and responses.
|
description: The container path to the certificate to use for TLS encryption of the HTTP requests and responses.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
tls-key:
|
tls-key:
|
||||||
description: The container path to the certificate key to use for TLS encryption of the HTTP requests and responses.
|
description: The container path to the certificate key to use for TLS encryption of the HTTP requests and responses.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
tls-min-version:
|
tls-min-version:
|
||||||
description: The minimum supported version of TLS to be enforced on all incoming HTTP requests.
|
description: The minimum supported version of TLS to be enforced on all incoming HTTP requests.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
tls-strict-ciphers:
|
tls-strict-ciphers:
|
||||||
description: If true, the allowed ciphers used with TLS connections are ECDHE_RSA_WITH_AES_256_GCM_SHA384, ECDHE_RSA_WITH_AES_256_CBC_SHA, RSA_WITH_AES_256_GCM_SHA384, or RSA_WITH_AES_256_CBC_SHA.
|
description: If true, the allowed ciphers used with TLS connections are ECDHE_RSA_WITH_AES_256_GCM_SHA384, ECDHE_RSA_WITH_AES_256_CBC_SHA, RSA_WITH_AES_256_GCM_SHA384, or RSA_WITH_AES_256_CBC_SHA.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
tracing-type:
|
tracing-type:
|
||||||
description: The tracing format for debugging purposes. Allowed values are log or jaeger, or leave blank to disable tracing.
|
description: The tracing format for debugging purposes. Allowed values are log or jaeger, or leave blank to disable tracing.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
ui-disabled:
|
ui-disabled:
|
||||||
description: If true, the InfluxDB HTTP user interface will be disabled. This will prevent use of the included InfluxDB dashboard visualizations.
|
description: If true, the InfluxDB HTTP user interface will be disabled. This will prevent use of the included InfluxDB dashboard visualizations.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-addr:
|
vault-addr:
|
||||||
description: Vault server address.
|
description: Vault server address.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-cacert:
|
vault-cacert:
|
||||||
description: Path to the Vault's single certificate authority certificate file within the container.
|
description: Path to the Vault's single certificate authority certificate file within the container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-capath:
|
vault-capath:
|
||||||
description: Path to the Vault's certificate authority directory within the container.
|
description: Path to the Vault's certificate authority directory within the container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-client-cert:
|
vault-client-cert:
|
||||||
description: Vault client certificate path within the container.
|
description: Vault client certificate path within the container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-client-key:
|
vault-client-key:
|
||||||
description: Vault client certificate key path within the container.
|
description: Vault client certificate key path within the container.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-client-timeout:
|
vault-client-timeout:
|
||||||
description: Duration to wait for a response from the Vault server before aborting.
|
description: Duration to wait for a response from the Vault server before aborting.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-max-retries:
|
vault-max-retries:
|
||||||
description: Maximum number of retries when attempting to contact the Vault server. A value of 0 is the same as disabling retries.
|
description: Maximum number of retries when attempting to contact the Vault server. A value of 0 is the same as disabling retries.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-skip-verify:
|
vault-skip-verify:
|
||||||
description: Skip certification validation of the Vault server.
|
description: Skip certification validation of the Vault server.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-tls-server-name:
|
vault-tls-server-name:
|
||||||
description: SNI host to specify when using TLS to connect to the Vault server.
|
description: SNI host to specify when using TLS to connect to the Vault server.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
vault-token:
|
vault-token:
|
||||||
description: Vault token used for authentication.
|
description: Vault token used for authentication.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
buckets:
|
buckets:
|
||||||
so_short_term:
|
so_short_term:
|
||||||
duration:
|
duration:
|
||||||
description: Amount of time (in seconds) to keep short term data.
|
description: Amount of time (in seconds) to keep short term data.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
shard_duration:
|
shard_duration:
|
||||||
description: Amount of the time (in seconds) range covered by the shard group.
|
description: Amount of the time (in seconds) range covered by the shard group.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
so_long_term:
|
so_long_term:
|
||||||
duration:
|
duration:
|
||||||
description: Amount of time (in seconds) to keep long term downsampled data.
|
description: Amount of time (in seconds) to keep long term downsampled data.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
shard_duration:
|
shard_duration:
|
||||||
description: Amount of the time (in seconds) range covered by the shard group.
|
description: Amount of the time (in seconds) range covered by the shard group.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
downsample:
|
downsample:
|
||||||
so_long_term:
|
so_long_term:
|
||||||
resolution:
|
resolution:
|
||||||
description: Amount of time to turn into a single data point.
|
description: Amount of time to turn into a single data point.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% set KAFKANODES = salt['pillar.get']('kafka:nodes') %}
|
{% set KAFKANODES = salt['pillar.get']('kafka:nodes') %}
|
||||||
{% set KAFKA_EXTERNAL_ACCESS = salt['pillar.get']('kafka:config:external_access:enabled', default=False) %}
|
{% set KAFKA_EXTERNAL_ACCESS = salt['pillar.get']('kafka:config:external_access:enabled', default=False) %}
|
||||||
{% if 'gmd' in salt['pillar.get']('features', []) %}
|
{% if 'gmd' in salt['pillar.get']('features', []) %}
|
||||||
@@ -31,22 +31,22 @@ so-kafka:
|
|||||||
- name: so-kafka
|
- name: so-kafka
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-kafka'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-kafka'].ip }}
|
||||||
- user: kafka
|
- user: kafka
|
||||||
- environment:
|
- environment:
|
||||||
KAFKA_HEAP_OPTS: -Xmx2G -Xms1G
|
KAFKA_HEAP_OPTS: -Xmx2G -Xms1G
|
||||||
KAFKA_OPTS: "-javaagent:/opt/jolokia/agents/jolokia-agent-jvm-javaagent.jar=port=8778,host={{ DOCKER.containers['so-kafka'].ip }},policyLocation=file:/opt/jolokia/jolokia.xml {%- if KAFKA_EXTERNAL_ACCESS %} -Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf {% endif -%}"
|
KAFKA_OPTS: "-javaagent:/opt/jolokia/agents/jolokia-agent-jvm-javaagent.jar=port=8778,host={{ DOCKERMERGED.containers['so-kafka'].ip }},policyLocation=file:/opt/jolokia/jolokia.xml {%- if KAFKA_EXTERNAL_ACCESS %} -Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf {% endif -%}"
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for node in KAFKANODES %}
|
{% for node in KAFKANODES %}
|
||||||
- {{ node }}:{{ KAFKANODES[node].ip }}
|
- {{ node }}:{{ KAFKANODES[node].ip }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-kafka'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-kafka'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-kafka'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-kafka'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-kafka'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-kafka'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -60,6 +60,12 @@ so-kafka:
|
|||||||
{% if KAFKA_EXTERNAL_ACCESS %}
|
{% if KAFKA_EXTERNAL_ACCESS %}
|
||||||
- /opt/so/conf/kafka/kafka_server_jaas.conf:/opt/kafka/config/kafka_server_jaas.conf:ro
|
- /opt/so/conf/kafka/kafka_server_jaas.conf:/opt/kafka/config/kafka_server_jaas.conf:ro
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-kafka'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-kafka'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
{% for sc in ['server', 'client'] %}
|
{% for sc in ['server', 'client'] %}
|
||||||
- file: kafka_kraft_{{sc}}_properties
|
- file: kafka_kraft_{{sc}}_properties
|
||||||
|
|||||||
@@ -1,257 +1,257 @@
|
|||||||
kafka:
|
kafka:
|
||||||
enabled:
|
enabled:
|
||||||
description: Set to True to enable Kafka. To avoid grid problems, do not enable Kafka until the related configuration is in place. Requires a valid Security Onion license key.
|
description: Set to True to enable Kafka. To avoid grid problems, do not enable Kafka until the related configuration is in place. Requires a valid Security Onion license key.
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
cluster_id:
|
cluster_id:
|
||||||
description: The ID of the Kafka cluster.
|
description: The ID of the Kafka cluster.
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
controllers:
|
controllers:
|
||||||
description: A comma-separated list of hostnames that will act as Kafka controllers. These hosts will be responsible for managing the Kafka cluster. Note that only manager and receiver nodes are eligible to run Kafka. This configuration needs to be set before enabling Kafka. Failure to do so may result in Kafka topics becoming unavailable requiring manual intervention to restore functionality or reset Kafka, either of which can result in data loss.
|
description: A comma-separated list of hostnames that will act as Kafka controllers. These hosts will be responsible for managing the Kafka cluster. Note that only manager and receiver nodes are eligible to run Kafka. This configuration needs to be set before enabling Kafka. Failure to do so may result in Kafka topics becoming unavailable requiring manual intervention to restore functionality or reset Kafka, either of which can result in data loss.
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
reset:
|
reset:
|
||||||
description: Disable and reset the Kafka cluster. This will remove all Kafka data including logs that may have not yet been ingested into Elasticsearch and reverts the grid to using REDIS as the global pipeline. This is useful when testing different Kafka configurations such as rearranging Kafka brokers / controllers allowing you to reset the cluster rather than manually fixing any issues arising from attempting to reassign a Kafka broker into a controller. Enter 'YES_RESET_KAFKA' and submit to disable and reset Kafka. Make any configuration changes required and re-enable Kafka when ready. This action CANNOT be reversed.
|
description: Disable and reset the Kafka cluster. This will remove all Kafka data including logs that may have not yet been ingested into Elasticsearch and reverts the grid to using REDIS as the global pipeline. This is useful when testing different Kafka configurations such as rearranging Kafka brokers / controllers allowing you to reset the cluster rather than manually fixing any issues arising from attempting to reassign a Kafka broker into a controller. Enter 'YES_RESET_KAFKA' and submit to disable and reset Kafka. Make any configuration changes required and re-enable Kafka when ready. This action CANNOT be reversed.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
logstash:
|
logstash:
|
||||||
description: By default logstash is disabled when Kafka is enabled. This option allows you to specify any hosts you would like to re-enable logstash on alongside Kafka.
|
description: By default logstash is disabled when Kafka is enabled. This option allows you to specify any hosts you would like to re-enable logstash on alongside Kafka.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
config:
|
config:
|
||||||
password:
|
password:
|
||||||
description: The password used for the Kafka certificates.
|
description: The password used for the Kafka certificates.
|
||||||
readonly: True
|
readonly: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
trustpass:
|
trustpass:
|
||||||
description: The password used for the Kafka truststore.
|
description: The password used for the Kafka truststore.
|
||||||
readonly: True
|
readonly: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
broker:
|
broker:
|
||||||
auto_x_create_x_topics_x_enable:
|
auto_x_create_x_topics_x_enable:
|
||||||
description: Enable the auto creation of topics.
|
description: Enable the auto creation of topics.
|
||||||
title: auto.create.topics.enable
|
title: auto.create.topics.enable
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
default_x_replication_x_factor:
|
default_x_replication_x_factor:
|
||||||
description: The default replication factor for automatically created topics. This value must be less than the amount of brokers in the cluster. Hosts specified in controllers should not be counted towards total broker count.
|
description: The default replication factor for automatically created topics. This value must be less than the amount of brokers in the cluster. Hosts specified in controllers should not be counted towards total broker count.
|
||||||
title: default.replication.factor
|
title: default.replication.factor
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
inter_x_broker_x_listener_x_name:
|
inter_x_broker_x_listener_x_name:
|
||||||
description: The name of the listener used for inter-broker communication.
|
description: The name of the listener used for inter-broker communication.
|
||||||
title: inter.broker.listener.name
|
title: inter.broker.listener.name
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listeners:
|
listeners:
|
||||||
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listener_x_security_x_protocol_x_map:
|
listener_x_security_x_protocol_x_map:
|
||||||
description: Comma-seperated mapping of listener name and security protocols.
|
description: Comma-seperated mapping of listener name and security protocols.
|
||||||
title: listener.security.protocol.map
|
title: listener.security.protocol.map
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_dirs:
|
log_x_dirs:
|
||||||
description: Where Kafka logs are stored within the Docker container.
|
description: Where Kafka logs are stored within the Docker container.
|
||||||
title: log.dirs
|
title: log.dirs
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_retention_x_check_x_interval_x_ms:
|
log_x_retention_x_check_x_interval_x_ms:
|
||||||
description: Frequency at which log files are checked if they are qualified for deletion.
|
description: Frequency at which log files are checked if they are qualified for deletion.
|
||||||
title: log.retention.check.interval.ms
|
title: log.retention.check.interval.ms
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_retention_x_hours:
|
log_x_retention_x_hours:
|
||||||
description: How long, in hours, a log file is kept.
|
description: How long, in hours, a log file is kept.
|
||||||
title: log.retention.hours
|
title: log.retention.hours
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_segment_x_bytes:
|
log_x_segment_x_bytes:
|
||||||
description: The maximum allowable size for a log file.
|
description: The maximum allowable size for a log file.
|
||||||
title: log.segment.bytes
|
title: log.segment.bytes
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
num_x_io_x_threads:
|
num_x_io_x_threads:
|
||||||
description: The number of threads used by Kafka.
|
description: The number of threads used by Kafka.
|
||||||
title: num.io.threads
|
title: num.io.threads
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
num_x_network_x_threads:
|
num_x_network_x_threads:
|
||||||
description: The number of threads used for network communication.
|
description: The number of threads used for network communication.
|
||||||
title: num.network.threads
|
title: num.network.threads
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
num_x_partitions:
|
num_x_partitions:
|
||||||
description: The number of log partitions assigned per topic.
|
description: The number of log partitions assigned per topic.
|
||||||
title: num.partitions
|
title: num.partitions
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
num_x_recovery_x_threads_x_per_x_data_x_dir:
|
num_x_recovery_x_threads_x_per_x_data_x_dir:
|
||||||
description: The number of threads used for log recuperation at startup and purging at shutdown. This ammount of threads is used per data directory.
|
description: The number of threads used for log recuperation at startup and purging at shutdown. This ammount of threads is used per data directory.
|
||||||
title: num.recovery.threads.per.data.dir
|
title: num.recovery.threads.per.data.dir
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
offsets_x_topic_x_replication_x_factor:
|
offsets_x_topic_x_replication_x_factor:
|
||||||
description: The offsets topic replication factor.
|
description: The offsets topic replication factor.
|
||||||
title: offsets.topic.replication.factor
|
title: offsets.topic.replication.factor
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
process_x_roles:
|
process_x_roles:
|
||||||
description: The role performed by Kafka brokers.
|
description: The role performed by Kafka brokers.
|
||||||
title: process.roles
|
title: process.roles
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
socket_x_receive_x_buffer_x_bytes:
|
socket_x_receive_x_buffer_x_bytes:
|
||||||
description: Size, in bytes of the SO_RCVBUF buffer. A value of -1 will use the OS default.
|
description: Size, in bytes of the SO_RCVBUF buffer. A value of -1 will use the OS default.
|
||||||
title: socket.receive.buffer.bytes
|
title: socket.receive.buffer.bytes
|
||||||
#forcedType: int - soc needs to allow -1 as an int before we can use this
|
#forcedType: int - soc needs to allow -1 as an int before we can use this
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
socket_x_request_x_max_x_bytes:
|
socket_x_request_x_max_x_bytes:
|
||||||
description: The maximum bytes allowed for a request to the socket.
|
description: The maximum bytes allowed for a request to the socket.
|
||||||
title: socket.request.max.bytes
|
title: socket.request.max.bytes
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
socket_x_send_x_buffer_x_bytes:
|
socket_x_send_x_buffer_x_bytes:
|
||||||
description: Size, in bytes of the SO_SNDBUF buffer. A value of -1 will use the OS default.
|
description: Size, in bytes of the SO_SNDBUF buffer. A value of -1 will use the OS default.
|
||||||
title: socket.send.buffer.byte
|
title: socket.send.buffer.byte
|
||||||
#forcedType: int - soc needs to allow -1 as an int before we can use this
|
#forcedType: int - soc needs to allow -1 as an int before we can use this
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_location:
|
ssl_x_keystore_x_location:
|
||||||
description: The key store file location within the Docker container.
|
description: The key store file location within the Docker container.
|
||||||
title: ssl.keystore.location
|
title: ssl.keystore.location
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_password:
|
ssl_x_keystore_x_password:
|
||||||
description: The key store file password. Invalid for PEM format.
|
description: The key store file password. Invalid for PEM format.
|
||||||
title: ssl.keystore.password
|
title: ssl.keystore.password
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_type:
|
ssl_x_keystore_x_type:
|
||||||
description: The key store file format.
|
description: The key store file format.
|
||||||
title: ssl.keystore.type
|
title: ssl.keystore.type
|
||||||
regex: ^(JKS|PKCS12|PEM)$
|
regex: ^(JKS|PKCS12|PEM)$
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_location:
|
ssl_x_truststore_x_location:
|
||||||
description: The trust store file location within the Docker container.
|
description: The trust store file location within the Docker container.
|
||||||
title: ssl.truststore.location
|
title: ssl.truststore.location
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_type:
|
ssl_x_truststore_x_type:
|
||||||
description: The trust store file format.
|
description: The trust store file format.
|
||||||
title: ssl.truststore.type
|
title: ssl.truststore.type
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_password:
|
ssl_x_truststore_x_password:
|
||||||
description: The trust store file password. If null, the trust store file is still use, but integrity checking is disabled. Invalid for PEM format.
|
description: The trust store file password. If null, the trust store file is still use, but integrity checking is disabled. Invalid for PEM format.
|
||||||
title: ssl.truststore.password
|
title: ssl.truststore.password
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
transaction_x_state_x_log_x_min_x_isr:
|
transaction_x_state_x_log_x_min_x_isr:
|
||||||
description: Overrides min.insync.replicas for the transaction topic. When a producer configures acks to "all" (or "-1"), this setting determines the minimum number of replicas required to acknowledge a write as successful. Failure to meet this minimum triggers an exception (either NotEnoughReplicas or NotEnoughReplicasAfterAppend). When used in conjunction, min.insync.replicas and acks enable stronger durability guarantees. For instance, creating a topic with a replication factor of 3, setting min.insync.replicas to 2, and using acks of "all" ensures that the producer raises an exception if a majority of replicas fail to receive a write.
|
description: Overrides min.insync.replicas for the transaction topic. When a producer configures acks to "all" (or "-1"), this setting determines the minimum number of replicas required to acknowledge a write as successful. Failure to meet this minimum triggers an exception (either NotEnoughReplicas or NotEnoughReplicasAfterAppend). When used in conjunction, min.insync.replicas and acks enable stronger durability guarantees. For instance, creating a topic with a replication factor of 3, setting min.insync.replicas to 2, and using acks of "all" ensures that the producer raises an exception if a majority of replicas fail to receive a write.
|
||||||
title: transaction.state.log.min.isr
|
title: transaction.state.log.min.isr
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
transaction_x_state_x_log_x_replication_x_factor:
|
transaction_x_state_x_log_x_replication_x_factor:
|
||||||
description: Set the replication factor higher for the transaction topic to ensure availability. Internal topic creation will not proceed until the cluster size satisfies this replication factor prerequisite.
|
description: Set the replication factor higher for the transaction topic to ensure availability. Internal topic creation will not proceed until the cluster size satisfies this replication factor prerequisite.
|
||||||
title: transaction.state.log.replication.factor
|
title: transaction.state.log.replication.factor
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
client:
|
client:
|
||||||
security_x_protocol:
|
security_x_protocol:
|
||||||
description: 'Broker communication protocol. Options are: SASL_SSL, PLAINTEXT, SSL, SASL_PLAINTEXT'
|
description: 'Broker communication protocol. Options are: SASL_SSL, PLAINTEXT, SSL, SASL_PLAINTEXT'
|
||||||
title: security.protocol
|
title: security.protocol
|
||||||
regex: ^(SASL_SSL|PLAINTEXT|SSL|SASL_PLAINTEXT)
|
regex: ^(SASL_SSL|PLAINTEXT|SSL|SASL_PLAINTEXT)
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_location:
|
ssl_x_keystore_x_location:
|
||||||
description: The key store file location within the Docker container.
|
description: The key store file location within the Docker container.
|
||||||
title: ssl.keystore.location
|
title: ssl.keystore.location
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_password:
|
ssl_x_keystore_x_password:
|
||||||
description: The key store file password. Invalid for PEM format.
|
description: The key store file password. Invalid for PEM format.
|
||||||
title: ssl.keystore.password
|
title: ssl.keystore.password
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_keystore_x_type:
|
ssl_x_keystore_x_type:
|
||||||
description: The key store file format.
|
description: The key store file format.
|
||||||
title: ssl.keystore.type
|
title: ssl.keystore.type
|
||||||
regex: ^(JKS|PKCS12|PEM)$
|
regex: ^(JKS|PKCS12|PEM)$
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_location:
|
ssl_x_truststore_x_location:
|
||||||
description: The trust store file location within the Docker container.
|
description: The trust store file location within the Docker container.
|
||||||
title: ssl.truststore.location
|
title: ssl.truststore.location
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_type:
|
ssl_x_truststore_x_type:
|
||||||
description: The trust store file format.
|
description: The trust store file format.
|
||||||
title: ssl.truststore.type
|
title: ssl.truststore.type
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
ssl_x_truststore_x_password:
|
ssl_x_truststore_x_password:
|
||||||
description: The trust store file password. If null, the trust store file is still use, but integrity checking is disabled. Invalid for PEM format.
|
description: The trust store file password. If null, the trust store file is still use, but integrity checking is disabled. Invalid for PEM format.
|
||||||
title: ssl.truststore.password
|
title: ssl.truststore.password
|
||||||
sensitive: True
|
sensitive: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
controller:
|
controller:
|
||||||
controller_x_listener_x_names:
|
controller_x_listener_x_names:
|
||||||
description: Set listeners used by the controller in a comma-seperated list.
|
description: Set listeners used by the controller in a comma-seperated list.
|
||||||
title: controller.listener.names
|
title: controller.listener.names
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listeners:
|
listeners:
|
||||||
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listener_x_security_x_protocol_x_map:
|
listener_x_security_x_protocol_x_map:
|
||||||
description: Comma-seperated mapping of listener name and security protocols.
|
description: Comma-seperated mapping of listener name and security protocols.
|
||||||
title: listener.security.protocol.map
|
title: listener.security.protocol.map
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_dirs:
|
log_x_dirs:
|
||||||
description: Where Kafka logs are stored within the Docker container.
|
description: Where Kafka logs are stored within the Docker container.
|
||||||
title: log.dirs
|
title: log.dirs
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_retention_x_check_x_interval_x_ms:
|
log_x_retention_x_check_x_interval_x_ms:
|
||||||
description: Frequency at which log files are checked if they are qualified for deletion.
|
description: Frequency at which log files are checked if they are qualified for deletion.
|
||||||
title: log.retention.check.interval.ms
|
title: log.retention.check.interval.ms
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_retention_x_hours:
|
log_x_retention_x_hours:
|
||||||
description: How long, in hours, a log file is kept.
|
description: How long, in hours, a log file is kept.
|
||||||
title: log.retention.hours
|
title: log.retention.hours
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
log_x_segment_x_bytes:
|
log_x_segment_x_bytes:
|
||||||
description: The maximum allowable size for a log file.
|
description: The maximum allowable size for a log file.
|
||||||
title: log.segment.bytes
|
title: log.segment.bytes
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
process_x_roles:
|
process_x_roles:
|
||||||
description: The role performed by controller node.
|
description: The role performed by controller node.
|
||||||
title: process.roles
|
title: process.roles
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
external_access:
|
external_access:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables access to Kafka topics using user/password authentication. Used for producing / consuming messages via an external client.
|
description: Enables or disables access to Kafka topics using user/password authentication. Used for producing / consuming messages via an external client.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listeners:
|
listeners:
|
||||||
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
description: Set of URIs that is listened on and the listener names in a comma-seperated list.
|
||||||
title: listeners
|
title: listeners
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
listener_x_security_x_protocol_x_map:
|
listener_x_security_x_protocol_x_map:
|
||||||
description: External listener name and mapped security protocol.
|
description: External listener name and mapped security protocol.
|
||||||
title: listener.security.protocol.map
|
title: listener.security.protocol.map
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
sasl_x_enabled_x_mechanisms:
|
sasl_x_enabled_x_mechanisms:
|
||||||
description: SASL/PLAIN is a simple username/password authentication mechanism, used with TLS to implement secure authentication.
|
description: SASL/PLAIN is a simple username/password authentication mechanism, used with TLS to implement secure authentication.
|
||||||
title: sasl.enabled.mechanisms
|
title: sasl.enabled.mechanisms
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
sasl_x_mechanism_x_inter_x_broker_x_protocol:
|
sasl_x_mechanism_x_inter_x_broker_x_protocol:
|
||||||
description: SASL mechanism used for inter-broker communication
|
description: SASL mechanism used for inter-broker communication
|
||||||
title: sasl.mechanism.inter.broker.protocol
|
title: sasl.mechanism.inter.broker.protocol
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kafka.html
|
helpLink: kafka
|
||||||
remote_users:
|
remote_users:
|
||||||
user01: &remote_user
|
user01: &remote_user
|
||||||
username:
|
username:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -20,20 +20,20 @@ so-kibana:
|
|||||||
- user: kibana
|
- user: kibana
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-kibana'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-kibana'].ip }}
|
||||||
- environment:
|
- environment:
|
||||||
- ELASTICSEARCH_HOST={{ GLOBALS.manager }}
|
- ELASTICSEARCH_HOST={{ GLOBALS.manager }}
|
||||||
- ELASTICSEARCH_PORT=9200
|
- ELASTICSEARCH_PORT=9200
|
||||||
- MANAGER={{ GLOBALS.manager }}
|
- MANAGER={{ GLOBALS.manager }}
|
||||||
{% if DOCKER.containers['so-kibana'].extra_env %}
|
{% if DOCKERMERGED.containers['so-kibana'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-kibana'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-kibana'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
||||||
{% if DOCKER.containers['so-kibana'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-kibana'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-kibana'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-kibana'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -42,15 +42,21 @@ so-kibana:
|
|||||||
- /opt/so/log/kibana:/var/log/kibana:rw
|
- /opt/so/log/kibana:/var/log/kibana:rw
|
||||||
- /opt/so/conf/kibana/customdashboards:/usr/share/kibana/custdashboards:ro
|
- /opt/so/conf/kibana/customdashboards:/usr/share/kibana/custdashboards:ro
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
{% if DOCKER.containers['so-kibana'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-kibana'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-kibana'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-kibana'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-kibana'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-kibana'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% if DOCKERMERGED.containers['so-kibana'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-kibana'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: kibanaconfig
|
- file: kibanaconfig
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% import_yaml 'kibana/defaults.yaml' as KIBANADEFAULTS with context %}
|
{% import_yaml 'kibana/defaults.yaml' as KIBANADEFAULTS with context %}
|
||||||
{% set HIGHLANDER = salt['pillar.get']('global:highlander', False) %}
|
|
||||||
|
|
||||||
{% do KIBANADEFAULTS.kibana.config.server.update({'publicBaseUrl': 'https://' ~ GLOBALS.url_base ~ '/kibana'}) %}
|
{% do KIBANADEFAULTS.kibana.config.server.update({'publicBaseUrl': 'https://' ~ GLOBALS.url_base ~ '/kibana'}) %}
|
||||||
{% do KIBANADEFAULTS.kibana.config.elasticsearch.update({'hosts': ['https://' ~ GLOBALS.manager ~ ':9200']}) %}
|
{% do KIBANADEFAULTS.kibana.config.elasticsearch.update({'hosts': ['https://' ~ GLOBALS.manager ~ ':9200']}) %}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% set HIGHLANDER = salt['pillar.get']('global:highlander', False) %}
|
|
||||||
include:
|
include:
|
||||||
- kibana.enabled
|
- kibana.enabled
|
||||||
|
|
||||||
@@ -29,27 +28,3 @@ so-kibana-dashboard-load:
|
|||||||
- require:
|
- require:
|
||||||
- sls: kibana.enabled
|
- sls: kibana.enabled
|
||||||
- file: dashboard_saved_objects_template
|
- file: dashboard_saved_objects_template
|
||||||
{%- if HIGHLANDER %}
|
|
||||||
dashboard_saved_objects_template_hl:
|
|
||||||
file.managed:
|
|
||||||
- name: /opt/so/conf/kibana/hl.ndjson.template
|
|
||||||
- source: salt://kibana/files/hl.ndjson
|
|
||||||
- user: 932
|
|
||||||
- group: 939
|
|
||||||
- show_changes: False
|
|
||||||
|
|
||||||
dashboard_saved_objects_hl_changes:
|
|
||||||
file.absent:
|
|
||||||
- names:
|
|
||||||
- /opt/so/state/kibana_hl.txt
|
|
||||||
- onchanges:
|
|
||||||
- file: dashboard_saved_objects_template_hl
|
|
||||||
|
|
||||||
so-kibana-dashboard-load_hl:
|
|
||||||
cmd.run:
|
|
||||||
- name: /usr/sbin/so-kibana-config-load -i /opt/so/conf/kibana/hl.ndjson.template
|
|
||||||
- cwd: /opt/so
|
|
||||||
- require:
|
|
||||||
- sls: kibana.enabled
|
|
||||||
- file: dashboard_saved_objects_template_hl
|
|
||||||
{%- endif %}
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
kibana:
|
kibana:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Kibana front-end interface to Elasticsearch. Due to Kibana being used for loading certain configuration details in Elasticsearch, this process should remain enabled. WARNING - Disabling the process is unsupported, and will cause unexpected results.
|
description: Enables or disables the Kibana front-end interface to Elasticsearch. Due to Kibana being used for loading certain configuration details in Elasticsearch, this process should remain enabled. WARNING - Disabling the process is unsupported, and will cause unexpected results.
|
||||||
helpLink: kibana.html
|
helpLink: kibana
|
||||||
config:
|
config:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
requestTimeout:
|
requestTimeout:
|
||||||
description: The length of time before the request reaches timeout.
|
description: The length of time before the request reaches timeout.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kibana.html
|
helpLink: kibana
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
. /usr/sbin/so-common
|
. /usr/sbin/so-common
|
||||||
{% set HIGHLANDER = salt['pillar.get']('global:highlander', False) %}
|
|
||||||
wait_for_web_response "http://localhost:5601/api/spaces/space/default" "default" 300 "curl -K /opt/so/conf/elasticsearch/curl.config"
|
wait_for_web_response "http://localhost:5601/api/spaces/space/default" "default" 300 "curl -K /opt/so/conf/elasticsearch/curl.config"
|
||||||
## This hackery will be removed if using Elastic Auth ##
|
## This hackery will be removed if using Elastic Auth ##
|
||||||
|
|
||||||
@@ -9,10 +8,6 @@ SESSIONCOOKIE=$(curl -K /opt/so/conf/elasticsearch/curl.config -c - -X GET http:
|
|||||||
|
|
||||||
# Disable certain Features from showing up in the Kibana UI
|
# Disable certain Features from showing up in the Kibana UI
|
||||||
echo
|
echo
|
||||||
echo "Setting up default Space:"
|
echo "Setting up default Kibana Space:"
|
||||||
{% if HIGHLANDER %}
|
|
||||||
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -L -X PUT "localhost:5601/api/spaces/space/default" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d' {"id":"default","name":"Default","disabledFeatures":["enterpriseSearch"]} ' >> /opt/so/log/kibana/misc.log
|
|
||||||
{% else %}
|
|
||||||
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -L -X PUT "localhost:5601/api/spaces/space/default" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d' {"id":"default","name":"Default","disabledFeatures":["ml","enterpriseSearch","logs","infrastructure","apm","uptime","monitoring","stackAlerts","actions","securitySolutionCasesV3","inventory","dataQuality","searchSynonyms","enterpriseSearchApplications","enterpriseSearchAnalytics","securitySolutionTimeline","securitySolutionNotes","entityManager"]} ' >> /opt/so/log/kibana/misc.log
|
curl -K /opt/so/conf/elasticsearch/curl.config -b "sid=$SESSIONCOOKIE" -L -X PUT "localhost:5601/api/spaces/space/default" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d' {"id":"default","name":"Default","disabledFeatures":["ml","enterpriseSearch","logs","infrastructure","apm","uptime","monitoring","stackAlerts","actions","securitySolutionCasesV3","inventory","dataQuality","searchSynonyms","enterpriseSearchApplications","enterpriseSearchAnalytics","securitySolutionTimeline","securitySolutionNotes","entityManager"]} ' >> /opt/so/log/kibana/misc.log
|
||||||
{% endif %}
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -19,32 +19,38 @@ so-kratos:
|
|||||||
- name: so-kratos
|
- name: so-kratos
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-kratos'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-kratos'].ip }}
|
||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/kratos/:/kratos-conf:ro
|
- /opt/so/conf/kratos/:/kratos-conf:ro
|
||||||
- /opt/so/log/kratos/:/kratos-log:rw
|
- /opt/so/log/kratos/:/kratos-log:rw
|
||||||
- /nsm/kratos/db:/kratos-data:rw
|
- /nsm/kratos/db:/kratos-data:rw
|
||||||
{% if DOCKER.containers['so-kratos'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-kratos'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-kratos'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-kratos'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-kratos'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-kratos'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-kratos'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-kratos'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-kratos'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-kratos'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-kratos'].extra_env %}
|
{% if DOCKERMERGED.containers['so-kratos'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-kratos'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-kratos'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-kratos'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-kratos'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- restart_policy: unless-stopped
|
- restart_policy: unless-stopped
|
||||||
- watch:
|
- watch:
|
||||||
- file: kratosschema
|
- file: kratosschema
|
||||||
|
|||||||
@@ -2,79 +2,79 @@ kratos:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Kratos authentication system. WARNING - Disabling this process will cause the grid to malfunction. Re-enabling this setting will require manual effort via SSH.
|
description: Enables or disables the Kratos authentication system. WARNING - Disabling this process will cause the grid to malfunction. Re-enabling this setting will require manual effort via SSH.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
|
|
||||||
oidc:
|
oidc:
|
||||||
enabled:
|
enabled:
|
||||||
description: Set to True to enable OIDC / Single Sign-On (SSO) to SOC. Requires a valid Security Onion license key.
|
description: Set to True to enable OIDC / Single Sign-On (SSO) to SOC. Requires a valid Security Onion license key.
|
||||||
global: True
|
global: True
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
config:
|
config:
|
||||||
id:
|
id:
|
||||||
description: Customize the OIDC provider name. This name appears on the login page. Required. It is strongly recommended to leave this to the default value, unless you are aware of the other configuration pieces that will be affected by changing it.
|
description: Customize the OIDC provider name. This name appears on the login page. Required. It is strongly recommended to leave this to the default value, unless you are aware of the other configuration pieces that will be affected by changing it.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
provider:
|
provider:
|
||||||
description: "Specify the provider type. Required. Valid values are: auth0, generic, github, google, microsoft"
|
description: "Specify the provider type. Required. Valid values are: auth0, generic, github, google, microsoft"
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
regex: "auth0|generic|github|google|microsoft"
|
regex: "auth0|generic|github|google|microsoft"
|
||||||
regexFailureMessage: "Valid values are: auth0, generic, github, google, microsoft"
|
regexFailureMessage: "Valid values are: auth0, generic, github, google, microsoft"
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
client_id:
|
client_id:
|
||||||
description: Specify the client ID, also referenced as the application ID. Required.
|
description: Specify the client ID, also referenced as the application ID. Required.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
client_secret:
|
client_secret:
|
||||||
description: Specify the client secret. Required.
|
description: Specify the client secret. Required.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
microsoft_tenant:
|
microsoft_tenant:
|
||||||
description: Specify the Microsoft Active Directory Tenant ID. Required when provider is 'microsoft'.
|
description: Specify the Microsoft Active Directory Tenant ID. Required when provider is 'microsoft'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
subject_source:
|
subject_source:
|
||||||
description: The source of the subject identifier. Typically 'userinfo'. Only used when provider is 'microsoft'.
|
description: The source of the subject identifier. Typically 'userinfo'. Only used when provider is 'microsoft'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
regex: me|userinfo
|
regex: me|userinfo
|
||||||
regexFailureMessage: "Valid values are: me, userinfo"
|
regexFailureMessage: "Valid values are: me, userinfo"
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
auth_url:
|
auth_url:
|
||||||
description: Provider's auth URL. Required when provider is 'generic'.
|
description: Provider's auth URL. Required when provider is 'generic'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
issuer_url:
|
issuer_url:
|
||||||
description: Provider's issuer URL. Required when provider is 'auth0' or 'generic'.
|
description: Provider's issuer URL. Required when provider is 'auth0' or 'generic'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
mapper_url:
|
mapper_url:
|
||||||
description: A file path or URL in Jsonnet format, used to map OIDC claims to the Kratos schema. Defaults to an included file that maps the email claim. Note that the contents of the included file can be customized via the "OIDC Claims Mapping" setting.
|
description: A file path or URL in Jsonnet format, used to map OIDC claims to the Kratos schema. Defaults to an included file that maps the email claim. Note that the contents of the included file can be customized via the "OIDC Claims Mapping" setting.
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
token_url:
|
token_url:
|
||||||
description: Provider's token URL. Required when provider is 'generic'.
|
description: Provider's token URL. Required when provider is 'generic'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
scope:
|
scope:
|
||||||
description: List of scoped data categories to request in the authentication response. Typically 'email' and 'profile' are the minimum required scopes. However, GitHub requires `user:email', instead and Auth0 requires 'profile', 'email', and 'openid'.
|
description: List of scoped data categories to request in the authentication response. Typically 'email' and 'profile' are the minimum required scopes. However, GitHub requires `user:email', instead and Auth0 requires 'profile', 'email', and 'openid'.
|
||||||
global: True
|
global: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
pkce:
|
pkce:
|
||||||
description: Set to 'force' if the OIDC provider does not support auto-detection of PKCE, but does support PKCE. Set to `never` to disable PKCE. The default setting automatically attempts to detect if PKCE is supported. The provider's `well-known/openid-configuration` JSON response must contain the `S256` algorithm within the `code_challenge_methods_supported` list in order for the auto-detection to correctly detect PKCE is supported.
|
description: Set to 'force' if the OIDC provider does not support auto-detection of PKCE, but does support PKCE. Set to `never` to disable PKCE. The default setting automatically attempts to detect if PKCE is supported. The provider's `well-known/openid-configuration` JSON response must contain the `S256` algorithm within the `code_challenge_methods_supported` list in order for the auto-detection to correctly detect PKCE is supported.
|
||||||
global: True
|
global: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
requested_claims:
|
requested_claims:
|
||||||
id_token:
|
id_token:
|
||||||
email:
|
email:
|
||||||
@@ -82,7 +82,7 @@ kratos:
|
|||||||
description: Specifies whether the email claim is necessary. Typically leave this value set to true.
|
description: Specifies whether the email claim is necessary. Typically leave this value set to true.
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
files:
|
files:
|
||||||
oidc__jsonnet:
|
oidc__jsonnet:
|
||||||
title: OIDC Claims Mapping
|
title: OIDC Claims Mapping
|
||||||
@@ -90,20 +90,20 @@ kratos:
|
|||||||
advanced: True
|
advanced: True
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
|
|
||||||
config:
|
config:
|
||||||
session:
|
session:
|
||||||
lifespan:
|
lifespan:
|
||||||
description: Defines the length of a login session.
|
description: Defines the length of a login session.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
whoami:
|
whoami:
|
||||||
required_aal:
|
required_aal:
|
||||||
description: Sets the Authenticator Assurance Level. Leave as default to ensure proper security protections remain in place.
|
description: Sets the Authenticator Assurance Level. Leave as default to ensure proper security protections remain in place.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
selfservice:
|
selfservice:
|
||||||
methods:
|
methods:
|
||||||
password:
|
password:
|
||||||
@@ -111,143 +111,143 @@ kratos:
|
|||||||
description: Set to True to enable traditional password authentication to SOC. Typically set to true, except when exclusively using OIDC authentication. Some external tool interfaces may not be accessible if local password authentication is disabled.
|
description: Set to True to enable traditional password authentication to SOC. Typically set to true, except when exclusively using OIDC authentication. Some external tool interfaces may not be accessible if local password authentication is disabled.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: oidc.html
|
helpLink: oidc
|
||||||
config:
|
config:
|
||||||
haveibeenpwned_enabled:
|
haveibeenpwned_enabled:
|
||||||
description: Set to True to check if a newly chosen password has ever been found in a published list of previously-compromised passwords. Requires outbound Internet connectivity when enabled.
|
description: Set to True to check if a newly chosen password has ever been found in a published list of previously-compromised passwords. Requires outbound Internet connectivity when enabled.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
totp:
|
totp:
|
||||||
enabled:
|
enabled:
|
||||||
description: Set to True to enable Time-based One-Time Password (TOTP) multi-factor authentication (MFA) to SOC. Enable to ensure proper security protections remain in place. Be aware that disabling this setting, after users have already setup TOTP, may prevent users from logging in.
|
description: Set to True to enable Time-based One-Time Password (TOTP) multi-factor authentication (MFA) to SOC. Enable to ensure proper security protections remain in place. Be aware that disabling this setting, after users have already setup TOTP, may prevent users from logging in.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
config:
|
config:
|
||||||
issuer:
|
issuer:
|
||||||
description: The name to show in the MFA authenticator app. Useful for differentiating between installations that share the same user email address.
|
description: The name to show in the MFA authenticator app. Useful for differentiating between installations that share the same user email address.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
webauthn:
|
webauthn:
|
||||||
enabled:
|
enabled:
|
||||||
description: Set to True to enable Security Keys (WebAuthn / PassKeys) for passwordless or multi-factor authentication (MFA) SOC logins. Security Keys are a Public-Key Infrastructure (PKI) based authentication method, typically involving biometric hardware devices, such as laptop fingerprint scanners and USB hardware keys. Be aware that disabling this setting, after users have already setup their accounts with Security Keys, may prevent users from logging in.
|
description: Set to True to enable Security Keys (WebAuthn / PassKeys) for passwordless or multi-factor authentication (MFA) SOC logins. Security Keys are a Public-Key Infrastructure (PKI) based authentication method, typically involving biometric hardware devices, such as laptop fingerprint scanners and USB hardware keys. Be aware that disabling this setting, after users have already setup their accounts with Security Keys, may prevent users from logging in.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
config:
|
config:
|
||||||
passwordless:
|
passwordless:
|
||||||
description: Set to True to utilize Security Keys (WebAuthn / PassKeys) for passwordless logins. Set to false to utilize Security Keys as a multi-factor authentication (MFA) method supplementing password logins. Be aware that changing this value, after users have already setup their accounts with the previous value, may prevent users from logging in.
|
description: Set to True to utilize Security Keys (WebAuthn / PassKeys) for passwordless logins. Set to false to utilize Security Keys as a multi-factor authentication (MFA) method supplementing password logins. Be aware that changing this value, after users have already setup their accounts with the previous value, may prevent users from logging in.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
rp:
|
rp:
|
||||||
id:
|
id:
|
||||||
description: The internal identification used for registering new Security Keys. Leave as default to ensure Security Keys function properly.
|
description: The internal identification used for registering new Security Keys. Leave as default to ensure Security Keys function properly.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
origin:
|
origin:
|
||||||
description: The URL used to login to SOC. Leave as default to ensure Security Keys function properly.
|
description: The URL used to login to SOC. Leave as default to ensure Security Keys function properly.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
display_name:
|
display_name:
|
||||||
description: The name assigned to the security key. Note that URL_BASE is replaced with the hostname or IP address used to login to SOC, to help distinguish multiple Security Onion installations.
|
description: The name assigned to the security key. Note that URL_BASE is replaced with the hostname or IP address used to login to SOC, to help distinguish multiple Security Onion installations.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
|
|
||||||
flows:
|
flows:
|
||||||
settings:
|
settings:
|
||||||
privileged_session_max_age:
|
privileged_session_max_age:
|
||||||
description: The length of time after a successful authentication for a user's session to remain elevated to a privileged session. Privileged sessions are able to change passwords and other security settings for that user. If a session is no longer privileged then the user is redirected to the login form in order to confirm the security change.
|
description: The length of time after a successful authentication for a user's session to remain elevated to a privileged session. Privileged sessions are able to change passwords and other security settings for that user. If a session is no longer privileged then the user is redirected to the login form in order to confirm the security change.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
ui_url:
|
ui_url:
|
||||||
description: User accessible URL containing the user self-service profile and security settings. Leave as default to ensure proper operation.
|
description: User accessible URL containing the user self-service profile and security settings. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
required_aal:
|
required_aal:
|
||||||
description: Sets the Authenticator Assurance Level for accessing user self-service profile and security settings. Leave as default to ensure proper security enforcement remains in place.
|
description: Sets the Authenticator Assurance Level for accessing user self-service profile and security settings. Leave as default to ensure proper security enforcement remains in place.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
verification:
|
verification:
|
||||||
ui_url:
|
ui_url:
|
||||||
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
login:
|
login:
|
||||||
ui_url:
|
ui_url:
|
||||||
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
lifespan:
|
lifespan:
|
||||||
description: Defines the duration that a login form will remain valid.
|
description: Defines the duration that a login form will remain valid.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
error:
|
error:
|
||||||
ui_url:
|
ui_url:
|
||||||
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
registration:
|
registration:
|
||||||
ui_url:
|
ui_url:
|
||||||
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
description: User accessible URL containing the Security Onion login page. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
default_browser_return_url:
|
default_browser_return_url:
|
||||||
description: Security Onion Console landing page URL. Leave as default to ensure proper operation.
|
description: Security Onion Console landing page URL. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
allowed_return_urls:
|
allowed_return_urls:
|
||||||
description: Internal redirect URL. Leave as default to ensure proper operation.
|
description: Internal redirect URL. Leave as default to ensure proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
log:
|
log:
|
||||||
level:
|
level:
|
||||||
description: Log level to use for Kratos logs.
|
description: Log level to use for Kratos logs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
format:
|
format:
|
||||||
description: Log output format for Kratos logs.
|
description: Log output format for Kratos logs.
|
||||||
global: True
|
global: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
secrets:
|
secrets:
|
||||||
default:
|
default:
|
||||||
description: Secret key used for protecting session cookie data. Generated during installation.
|
description: Secret key used for protecting session cookie data. Generated during installation.
|
||||||
global: True
|
global: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
serve:
|
serve:
|
||||||
public:
|
public:
|
||||||
base_url:
|
base_url:
|
||||||
description: User accessible URL for authenticating to Kratos. Leave as default for proper operation.
|
description: User accessible URL for authenticating to Kratos. Leave as default for proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
admin:
|
admin:
|
||||||
base_url:
|
base_url:
|
||||||
description: User accessible URL for accessing Kratos administration API. Leave as default for proper operation.
|
description: User accessible URL for accessing Kratos administration API. Leave as default for proper operation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
hashers:
|
hashers:
|
||||||
bcrypt:
|
bcrypt:
|
||||||
cost:
|
cost:
|
||||||
description: Bcrypt hashing algorithm cost. Higher values consume more CPU and take longer to complete. Actual cost is computed as 2^X where X is the value in this setting.
|
description: Bcrypt hashing algorithm cost. Higher values consume more CPU and take longer to complete. Actual cost is computed as 2^X where X is the value in this setting.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
courier:
|
courier:
|
||||||
smtp:
|
smtp:
|
||||||
connection_uri:
|
connection_uri:
|
||||||
description: SMTPS URL for sending outbound account-related emails. Not utilized with the standard Security Onion installation.
|
description: SMTPS URL for sending outbound account-related emails. Not utilized with the standard Security Onion installation.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: kratos.html
|
helpLink: kratos
|
||||||
|
|||||||
@@ -36,10 +36,6 @@ logstash:
|
|||||||
- gid: 931
|
- gid: 931
|
||||||
- home: /opt/so/conf/logstash
|
- home: /opt/so/conf/logstash
|
||||||
|
|
||||||
lslibdir:
|
|
||||||
file.absent:
|
|
||||||
- name: /opt/so/conf/logstash/lib
|
|
||||||
|
|
||||||
logstash_sbin:
|
logstash_sbin:
|
||||||
file.recurse:
|
file.recurse:
|
||||||
- name: /usr/sbin
|
- name: /usr/sbin
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'logstash/map.jinja' import LOGSTASH_MERGED %}
|
{% from 'logstash/map.jinja' import LOGSTASH_MERGED %}
|
||||||
{% from 'logstash/map.jinja' import LOGSTASH_NODES %}
|
{% from 'logstash/map.jinja' import LOGSTASH_NODES %}
|
||||||
{% set lsheap = LOGSTASH_MERGED.settings.lsheap %}
|
{% set lsheap = LOGSTASH_MERGED.settings.lsheap %}
|
||||||
@@ -32,7 +32,7 @@ so-logstash:
|
|||||||
- name: so-logstash
|
- name: so-logstash
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-logstash'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-logstash'].ip }}
|
||||||
- user: logstash
|
- user: logstash
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for node in LOGSTASH_NODES %}
|
{% for node in LOGSTASH_NODES %}
|
||||||
@@ -40,20 +40,20 @@ so-logstash:
|
|||||||
- {{hostname}}:{{ip}}
|
- {{hostname}}:{{ip}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-logstash'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-logstash'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-logstash'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-logstash'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- environment:
|
- environment:
|
||||||
- LS_JAVA_OPTS=-Xms{{ lsheap }} -Xmx{{ lsheap }}
|
- LS_JAVA_OPTS=-Xms{{ lsheap }} -Xmx{{ lsheap }}
|
||||||
{% if DOCKER.containers['so-logstash'].extra_env %}
|
{% if DOCKERMERGED.containers['so-logstash'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-logstash'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-logstash'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-logstash'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-logstash'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -91,11 +91,17 @@ so-logstash:
|
|||||||
- /opt/so/log/fleet/:/osquery/logs:ro
|
- /opt/so/log/fleet/:/osquery/logs:ro
|
||||||
- /opt/so/log/strelka:/strelka:ro
|
- /opt/so/log/strelka:/strelka:ro
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-logstash'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-logstash'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-logstash'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-logstash'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-logstash'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-logstash'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: lsetcsync
|
- file: lsetcsync
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
logstash:
|
logstash:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Logstash log event forwarding process. On most grid installations, when this process is disabled log events are unable to be ingested into the SOC backend.
|
description: Enables or disables the Logstash log event forwarding process. On most grid installations, when this process is disabled log events are unable to be ingested into the SOC backend.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
assigned_pipelines:
|
assigned_pipelines:
|
||||||
roles:
|
roles:
|
||||||
standalone: &assigned_pipelines
|
standalone: &assigned_pipelines
|
||||||
description: List of defined pipelines to add to this role.
|
description: List of defined pipelines to add to this role.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
@@ -21,7 +21,7 @@ logstash:
|
|||||||
receiver: &defined_pipelines
|
receiver: &defined_pipelines
|
||||||
description: List of pipeline configurations assign to this group.
|
description: List of pipeline configurations assign to this group.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
@@ -39,7 +39,7 @@ logstash:
|
|||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
duplicates: True
|
duplicates: True
|
||||||
custom002: *pipeline_config
|
custom002: *pipeline_config
|
||||||
custom003: *pipeline_config
|
custom003: *pipeline_config
|
||||||
@@ -53,35 +53,35 @@ logstash:
|
|||||||
settings:
|
settings:
|
||||||
lsheap:
|
lsheap:
|
||||||
description: Heap size to use for logstash
|
description: Heap size to use for logstash
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
global: False
|
global: False
|
||||||
config:
|
config:
|
||||||
api_x_http_x_host:
|
api_x_http_x_host:
|
||||||
description: Host interface to listen to connections.
|
description: Host interface to listen to connections.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
path_x_logs:
|
path_x_logs:
|
||||||
description: Path inside the container to wrote logs.
|
description: Path inside the container to wrote logs.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
pipeline_x_workers:
|
pipeline_x_workers:
|
||||||
description: Number of worker threads to process events in logstash.
|
description: Number of worker threads to process events in logstash.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
global: False
|
global: False
|
||||||
pipeline_x_batch_x_size:
|
pipeline_x_batch_x_size:
|
||||||
description: Logstash batch size.
|
description: Logstash batch size.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
global: False
|
global: False
|
||||||
pipeline_x_ecs_compatibility:
|
pipeline_x_ecs_compatibility:
|
||||||
description: Sets ECS compatibility. This is set per pipeline so you should never need to change this.
|
description: Sets ECS compatibility. This is set per pipeline so you should never need to change this.
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
readonly: True
|
readonly: True
|
||||||
advanced: True
|
advanced: True
|
||||||
dmz_nodes:
|
dmz_nodes:
|
||||||
description: "List of receiver nodes in DMZs. Prevents sensors from sending to these receivers. Primarily used for external Elastic agents."
|
description: "List of receiver nodes in DMZs. Prevents sensors from sending to these receivers. Primarily used for external Elastic agents."
|
||||||
helpLink: logstash.html
|
helpLink: logstash
|
||||||
multiline: True
|
multiline: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
|
|||||||
@@ -63,11 +63,9 @@ yara_log_dir:
|
|||||||
- user
|
- user
|
||||||
- group
|
- group
|
||||||
|
|
||||||
{% if GLOBALS.os_family == 'RedHat' %}
|
|
||||||
install_createrepo:
|
install_createrepo:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: createrepo_c
|
- name: createrepo_c
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
repo_conf_dir:
|
repo_conf_dir:
|
||||||
file.directory:
|
file.directory:
|
||||||
|
|||||||
@@ -3,80 +3,80 @@ manager:
|
|||||||
enabled:
|
enabled:
|
||||||
description: This is the daily task of syncing the Security Onion OS packages. It is recommended that this setting remain enabled to ensure important updates are applied to the grid on an automated, scheduled basis.
|
description: This is the daily task of syncing the Security Onion OS packages. It is recommended that this setting remain enabled to ensure important updates are applied to the grid on an automated, scheduled basis.
|
||||||
global: True
|
global: True
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
hour:
|
hour:
|
||||||
description: The hour of the day in which the repo sync takes place.
|
description: The hour of the day in which the repo sync takes place.
|
||||||
global: True
|
global: True
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
minute:
|
minute:
|
||||||
description: The minute within the hour to run the repo sync.
|
description: The minute within the hour to run the repo sync.
|
||||||
global: True
|
global: True
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
elastalert:
|
elastalert:
|
||||||
description: Enable elastalert 1=enabled 0=disabled.
|
description: Enable elastalert 1=enabled 0=disabled.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastalert.html
|
helpLink: elastalert
|
||||||
no_proxy:
|
no_proxy:
|
||||||
description: String of hosts to ignore the proxy settings for.
|
description: String of hosts to ignore the proxy settings for.
|
||||||
global: True
|
global: True
|
||||||
helpLink: proxy.html
|
helpLink: proxy
|
||||||
proxy:
|
proxy:
|
||||||
description: Proxy server to use for updates.
|
description: Proxy server to use for updates.
|
||||||
global: True
|
global: True
|
||||||
helpLink: proxy.html
|
helpLink: proxy
|
||||||
additionalCA:
|
additionalCA:
|
||||||
description: Additional CA certificates to trust in PEM format.
|
description: Additional CA certificates to trust in PEM format.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
multiline: True
|
multiline: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
helpLink: proxy.html
|
helpLink: proxy
|
||||||
insecureSkipVerify:
|
insecureSkipVerify:
|
||||||
description: Disable TLS verification for outgoing requests. This will make your installation less secure to MITM attacks. Recommended only for debugging purposes.
|
description: Disable TLS verification for outgoing requests. This will make your installation less secure to MITM attacks. Recommended only for debugging purposes.
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
global: True
|
global: True
|
||||||
helpLink: proxy.html
|
helpLink: proxy
|
||||||
agent_monitoring:
|
agent_monitoring:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable monitoring elastic agents for health issues. Can be used to trigger an alert when a 'critical' agent hasn't checked in with fleet for longer than the configured offline threshold.
|
description: Enable monitoring elastic agents for health issues. Can be used to trigger an alert when a 'critical' agent hasn't checked in with fleet for longer than the configured offline threshold.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
config:
|
config:
|
||||||
critical_agents:
|
critical_agents:
|
||||||
description: List of 'critical' agents to log when they haven't checked in longer than the maximum allowed time. If there are no 'critical' agents specified all offline agents will be logged once they reach the offline threshold.
|
description: List of 'critical' agents to log when they haven't checked in longer than the maximum allowed time. If there are no 'critical' agents specified all offline agents will be logged once they reach the offline threshold.
|
||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
custom_kquery:
|
custom_kquery:
|
||||||
description: For more granular control over what agents to monitor for offline|degraded status add a kquery here. It is recommended to create & test within Elastic Fleet first to ensure your agents are targeted correctly using the query. eg 'status:offline AND tags:INFRA'
|
description: For more granular control over what agents to monitor for offline|degraded status add a kquery here. It is recommended to create & test within Elastic Fleet first to ensure your agents are targeted correctly using the query. eg 'status:offline AND tags:INFRA'
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: string
|
forcedType: string
|
||||||
advanced: True
|
advanced: True
|
||||||
offline_threshold:
|
offline_threshold:
|
||||||
description: The maximum allowed time in hours a 'critical' agent has been offline before being logged.
|
description: The maximum allowed time in hours a 'critical' agent has been offline before being logged.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: int
|
forcedType: int
|
||||||
realert_threshold:
|
realert_threshold:
|
||||||
description: The time to pass before another alert for an offline agent exceeding the offline_threshold is generated.
|
description: The time to pass before another alert for an offline agent exceeding the offline_threshold is generated.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: int
|
forcedType: int
|
||||||
page_size:
|
page_size:
|
||||||
description: The amount of agents that can be processed per API request to fleet.
|
description: The amount of agents that can be processed per API request to fleet.
|
||||||
global: True
|
global: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: int
|
forcedType: int
|
||||||
advanced: True
|
advanced: True
|
||||||
run_interval:
|
run_interval:
|
||||||
description: The time in minutes between checking fleet agent statuses.
|
description: The time in minutes between checking fleet agent statuses.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elastic-fleet.html
|
helpLink: elastic-fleet
|
||||||
forcedType: int
|
forcedType: int
|
||||||
managed_integrations:
|
managed_integrations:
|
||||||
description: List of integrations to add into SOC config UI. Enter the full or partial integration name. Eg. 1password, 1pass
|
description: List of integrations to add into SOC config UI. Enter the full or partial integration name. Eg. 1password, 1pass
|
||||||
@@ -84,4 +84,4 @@ manager:
|
|||||||
multiline: True
|
multiline: True
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: elasticsearch.html
|
helpLink: elasticsearch
|
||||||
@@ -403,7 +403,15 @@ migrate_pcap_to_suricata() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
post_to_3.0.0() {
|
post_to_3.0.0() {
|
||||||
echo "Nothing to apply"
|
for idx in "logs-idh-so" "logs-redis.log-default"; do
|
||||||
|
rollover_index "$idx"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove ILM for so-case and so-detection indices
|
||||||
|
for idx in "so-case" "so-casehistory" "so-detection" "so-detectionhistory"; do
|
||||||
|
so-elasticsearch-query $idx/_ilm/remove -XPOST
|
||||||
|
done
|
||||||
|
|
||||||
POSTVERSION=3.0.0
|
POSTVERSION=3.0.0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,78 +584,46 @@ upgrade_check_salt() {
|
|||||||
upgrade_salt() {
|
upgrade_salt() {
|
||||||
echo "Performing upgrade of Salt from $INSTALLEDSALTVERSION to $NEWSALTVERSION."
|
echo "Performing upgrade of Salt from $INSTALLEDSALTVERSION to $NEWSALTVERSION."
|
||||||
echo ""
|
echo ""
|
||||||
# If rhel family
|
# Check if salt-cloud is installed
|
||||||
if [[ $is_rpm ]]; then
|
if rpm -q salt-cloud &>/dev/null; then
|
||||||
# Check if salt-cloud is installed
|
SALT_CLOUD_INSTALLED=true
|
||||||
if rpm -q salt-cloud &>/dev/null; then
|
fi
|
||||||
SALT_CLOUD_INSTALLED=true
|
# Check if salt-cloud is configured
|
||||||
fi
|
if [[ -f /etc/salt/cloud.profiles.d/socloud.conf ]]; then
|
||||||
# Check if salt-cloud is configured
|
SALT_CLOUD_CONFIGURED=true
|
||||||
if [[ -f /etc/salt/cloud.profiles.d/socloud.conf ]]; then
|
fi
|
||||||
SALT_CLOUD_CONFIGURED=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Removing yum versionlock for Salt."
|
echo "Removing yum versionlock for Salt."
|
||||||
echo ""
|
echo ""
|
||||||
yum versionlock delete "salt"
|
yum versionlock delete "salt"
|
||||||
yum versionlock delete "salt-minion"
|
yum versionlock delete "salt-minion"
|
||||||
yum versionlock delete "salt-master"
|
yum versionlock delete "salt-master"
|
||||||
# Remove salt-cloud versionlock if installed
|
# Remove salt-cloud versionlock if installed
|
||||||
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
||||||
yum versionlock delete "salt-cloud"
|
yum versionlock delete "salt-cloud"
|
||||||
fi
|
fi
|
||||||
echo "Updating Salt packages."
|
echo "Updating Salt packages."
|
||||||
echo ""
|
echo ""
|
||||||
set +e
|
set +e
|
||||||
# if oracle run with -r to ignore repos set by bootstrap
|
# Run with -r to ignore repos set by bootstrap
|
||||||
if [[ $OS == 'oracle' ]]; then
|
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
||||||
# Add -L flag only if salt-cloud is already installed
|
|
||||||
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
|
||||||
run_check_net_err \
|
|
||||||
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -r -L -F -M stable \"$NEWSALTVERSION\"" \
|
|
||||||
"Could not update salt, please check $SOUP_LOG for details."
|
|
||||||
else
|
|
||||||
run_check_net_err \
|
|
||||||
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -r -F -M stable \"$NEWSALTVERSION\"" \
|
|
||||||
"Could not update salt, please check $SOUP_LOG for details."
|
|
||||||
fi
|
|
||||||
# if another rhel family variant we want to run without -r to allow the bootstrap script to manage repos
|
|
||||||
else
|
|
||||||
run_check_net_err \
|
|
||||||
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -F -M stable \"$NEWSALTVERSION\"" \
|
|
||||||
"Could not update salt, please check $SOUP_LOG for details."
|
|
||||||
fi
|
|
||||||
set -e
|
|
||||||
echo "Applying yum versionlock for Salt."
|
|
||||||
echo ""
|
|
||||||
yum versionlock add "salt-0:$NEWSALTVERSION-0.*"
|
|
||||||
yum versionlock add "salt-minion-0:$NEWSALTVERSION-0.*"
|
|
||||||
yum versionlock add "salt-master-0:$NEWSALTVERSION-0.*"
|
|
||||||
# Add salt-cloud versionlock if installed
|
|
||||||
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
|
||||||
yum versionlock add "salt-cloud-0:$NEWSALTVERSION-0.*"
|
|
||||||
fi
|
|
||||||
# Else do Ubuntu things
|
|
||||||
elif [[ $is_deb ]]; then
|
|
||||||
# ensure these files don't exist when upgrading from 3006.9 to 3006.16
|
|
||||||
rm -f /etc/apt/keyrings/salt-archive-keyring-2023.pgp /etc/apt/sources.list.d/salt.list
|
|
||||||
echo "Removing apt hold for Salt."
|
|
||||||
echo ""
|
|
||||||
apt-mark unhold "salt-common"
|
|
||||||
apt-mark unhold "salt-master"
|
|
||||||
apt-mark unhold "salt-minion"
|
|
||||||
echo "Updating Salt packages."
|
|
||||||
echo ""
|
|
||||||
set +e
|
|
||||||
run_check_net_err \
|
run_check_net_err \
|
||||||
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -F -M stable \"$NEWSALTVERSION\"" \
|
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -r -L -F -M stable \"$NEWSALTVERSION\"" \
|
||||||
"Could not update salt, please check $SOUP_LOG for details."
|
"Could not update salt, please check $SOUP_LOG for details."
|
||||||
set -e
|
else
|
||||||
echo "Applying apt hold for Salt."
|
run_check_net_err \
|
||||||
echo ""
|
"sh $UPDATE_DIR/salt/salt/scripts/bootstrap-salt.sh -X -r -F -M stable \"$NEWSALTVERSION\"" \
|
||||||
apt-mark hold "salt-common"
|
"Could not update salt, please check $SOUP_LOG for details."
|
||||||
apt-mark hold "salt-master"
|
fi
|
||||||
apt-mark hold "salt-minion"
|
set -e
|
||||||
|
echo "Applying yum versionlock for Salt."
|
||||||
|
echo ""
|
||||||
|
yum versionlock add "salt-0:$NEWSALTVERSION-0.*"
|
||||||
|
yum versionlock add "salt-minion-0:$NEWSALTVERSION-0.*"
|
||||||
|
yum versionlock add "salt-master-0:$NEWSALTVERSION-0.*"
|
||||||
|
# Add salt-cloud versionlock if installed
|
||||||
|
if [[ $SALT_CLOUD_INSTALLED == true ]]; then
|
||||||
|
yum versionlock add "salt-cloud-0:$NEWSALTVERSION-0.*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Checking if Salt was upgraded."
|
echo "Checking if Salt was upgraded."
|
||||||
@@ -1084,6 +1060,10 @@ main() {
|
|||||||
echo ""
|
echo ""
|
||||||
set_os
|
set_os
|
||||||
|
|
||||||
|
if [[ ! $is_oracle ]]; then
|
||||||
|
fail "This OS is not supported. Security Onion requires Oracle Linux 9."
|
||||||
|
fi
|
||||||
|
|
||||||
check_salt_master_status 1 || fail "Could not talk to salt master: Please run 'systemctl status salt-master' to ensure the salt-master service is running and check the log at /opt/so/log/salt/master."
|
check_salt_master_status 1 || fail "Could not talk to salt master: Please run 'systemctl status salt-master' to ensure the salt-master service is running and check the log at /opt/so/log/salt/master."
|
||||||
|
|
||||||
echo "Checking to see if this is a manager."
|
echo "Checking to see if this is a manager."
|
||||||
@@ -1193,14 +1173,6 @@ main() {
|
|||||||
echo "Upgrading Salt"
|
echo "Upgrading Salt"
|
||||||
# Update the repo files so it can actually upgrade
|
# Update the repo files so it can actually upgrade
|
||||||
upgrade_salt
|
upgrade_salt
|
||||||
|
|
||||||
# for Debian based distro, we need to stop salt again after upgrade output below is from bootstrap-salt
|
|
||||||
# * WARN: Not starting daemons on Debian based distributions
|
|
||||||
# is not working mostly because starting them is the default behaviour.
|
|
||||||
if [[ $is_deb ]]; then
|
|
||||||
stop_salt_minion
|
|
||||||
stop_salt_master
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
preupgrade_changes
|
preupgrade_changes
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'nginx/map.jinja' import NGINXMERGED %}
|
{% from 'nginx/map.jinja' import NGINXMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -37,11 +37,11 @@ so-nginx:
|
|||||||
- hostname: so-nginx
|
- hostname: so-nginx
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers[container_config].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers[container_config].ip }}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
- {{ GLOBALS.manager }}:{{ GLOBALS.manager_ip }}
|
||||||
{% if DOCKER.containers[container_config].extra_hosts %}
|
{% if DOCKERMERGED.containers[container_config].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers[container_config].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers[container_config].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -64,20 +64,26 @@ so-nginx:
|
|||||||
- /opt/so/rules/nids/suri:/surirules:ro
|
- /opt/so/rules/nids/suri:/surirules:ro
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers[container_config].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers[container_config].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers[container_config].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers[container_config].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers[container_config].extra_env %}
|
{% if DOCKERMERGED.containers[container_config].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers[container_config].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers[container_config].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers[container_config].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers[container_config].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- cap_add: NET_BIND_SERVICE
|
- cap_add: NET_BIND_SERVICE
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers[container_config].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers[container_config].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- watch:
|
- watch:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{%- from 'vars/globals.map.jinja' import GLOBALS %}
|
{%- from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{%- from 'docker/docker.map.jinja' import DOCKER %}
|
{%- from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{%- from 'nginx/map.jinja' import NGINXMERGED %}
|
{%- from 'nginx/map.jinja' import NGINXMERGED %}
|
||||||
{%- set role = grains.id.split('_') | last %}
|
{%- set role = grains.id.split('_') | last %}
|
||||||
{%- set influxpass = salt['pillar.get']('secrets:influx_pass') %}
|
{%- set influxpass = salt['pillar.get']('secrets:influx_pass') %}
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ nginx:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Nginx web server and reverse proxy. WARNING - Disabling this process will prevent access to SOC and other important web interfaces and APIs. Re-enabling the process is a manual effort. Do not change this setting without instruction from Security Onion support.
|
description: Enables or disables the Nginx web server and reverse proxy. WARNING - Disabling this process will prevent access to SOC and other important web interfaces and APIs. Re-enabling the process is a manual effort. Do not change this setting without instruction from Security Onion support.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
external_suricata:
|
external_suricata:
|
||||||
description: Enable this to allow external access to Suricata Rulesets managed by Detections.
|
description: Enable this to allow external access to Suricata Rulesets managed by Detections.
|
||||||
advanced: True
|
advanced: True
|
||||||
helplink: nginx.html
|
helpLink: nginx
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
ssl:
|
ssl:
|
||||||
replace_cert:
|
replace_cert:
|
||||||
@@ -15,33 +15,33 @@ nginx:
|
|||||||
advanced: True
|
advanced: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
title: Replace Default Cert
|
title: Replace Default Cert
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
ssl__key:
|
ssl__key:
|
||||||
description: If you enabled the replace_cert option, paste the contents of your .key file here.
|
description: If you enabled the replace_cert option, paste the contents of your .key file here.
|
||||||
file: True
|
file: True
|
||||||
title: SSL/TLS Key File
|
title: SSL/TLS Key File
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
ssl__crt:
|
ssl__crt:
|
||||||
description: If you enabled the replace_cert option, paste the contents of your .crt file here.
|
description: If you enabled the replace_cert option, paste the contents of your .crt file here.
|
||||||
file: True
|
file: True
|
||||||
title: SSL/TLS Cert File
|
title: SSL/TLS Cert File
|
||||||
advanced: True
|
advanced: True
|
||||||
global: True
|
global: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
alt_names:
|
alt_names:
|
||||||
description: Provide a list of alternate names to allow remote systems the ability to refer to the SOC API as another hostname.
|
description: Provide a list of alternate names to allow remote systems the ability to refer to the SOC API as another hostname.
|
||||||
global: True
|
global: True
|
||||||
forcedType: '[]string'
|
forcedType: '[]string'
|
||||||
multiline: True
|
multiline: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
config:
|
config:
|
||||||
throttle_login_burst:
|
throttle_login_burst:
|
||||||
description: Number of login requests that can burst without triggering request throttling. Higher values allow more repeated login attempts. Values greater than zero are required in order to provide a usable login flow.
|
description: Number of login requests that can burst without triggering request throttling. Higher values allow more repeated login attempts. Values greater than zero are required in order to provide a usable login flow.
|
||||||
global: True
|
global: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
throttle_login_rate:
|
throttle_login_rate:
|
||||||
description: Number of login API requests per minute that can be processed without triggering a rate limit. Higher values allow more repeated login attempts. Requests are counted by unique client IP and averaged over time. Note that a single login flow will perform multiple requests to the login API, so this value will need to be adjusted accordingly.
|
description: Number of login API requests per minute that can be processed without triggering a rate limit. Higher values allow more repeated login attempts. Requests are counted by unique client IP and averaged over time. Note that a single login flow will perform multiple requests to the login API, so this value will need to be adjusted accordingly.
|
||||||
global: True
|
global: True
|
||||||
helpLink: nginx.html
|
helpLink: nginx
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
||||||
# https://securityonion.net/license; you may not use this file except in compliance with the
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
|
||||||
{% from 'ntp/config.map.jinja' import NTPCONFIG %}
|
{% from 'ntp/config.map.jinja' import NTPCONFIG %}
|
||||||
|
|
||||||
chrony_pkg:
|
chrony_pkg:
|
||||||
@@ -17,11 +16,7 @@ chronyconf:
|
|||||||
- defaults:
|
- defaults:
|
||||||
NTPCONFIG: {{ NTPCONFIG }}
|
NTPCONFIG: {{ NTPCONFIG }}
|
||||||
|
|
||||||
{% if GLOBALS.os_family == 'RedHat' %}
|
|
||||||
chronyd:
|
chronyd:
|
||||||
{% else %}
|
|
||||||
chrony:
|
|
||||||
{% endif %}
|
|
||||||
service.running:
|
service.running:
|
||||||
- enable: True
|
- enable: True
|
||||||
- watch:
|
- watch:
|
||||||
|
|||||||
@@ -3,4 +3,4 @@ ntp:
|
|||||||
servers:
|
servers:
|
||||||
description: NTP Server List
|
description: NTP Server List
|
||||||
title: NTP Servers
|
title: NTP Servers
|
||||||
helpLink: ntp.html
|
helpLink: ntp
|
||||||
|
|||||||
@@ -2,19 +2,19 @@ patch:
|
|||||||
os:
|
os:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable OS updates. WARNING - Disabling this setting will prevent important operating system updates from being applied on a scheduled basis.
|
description: Enable OS updates. WARNING - Disabling this setting will prevent important operating system updates from being applied on a scheduled basis.
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
schedule_to_run:
|
schedule_to_run:
|
||||||
description: Currently running schedule for updates.
|
description: Currently running schedule for updates.
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
schedules:
|
schedules:
|
||||||
auto:
|
auto:
|
||||||
splay: &splayOptions
|
splay: &splayOptions
|
||||||
description: Seconds to splay updates.
|
description: Seconds to splay updates.
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
schedule:
|
schedule:
|
||||||
hours:
|
hours:
|
||||||
description: Run the OS updates every X hours.
|
description: Run the OS updates every X hours.
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
monday:
|
monday:
|
||||||
splay: *splayOptions
|
splay: *splayOptions
|
||||||
schedule:
|
schedule:
|
||||||
@@ -51,7 +51,7 @@ patch:
|
|||||||
Monday: &dailyOptions
|
Monday: &dailyOptions
|
||||||
description: List of times to apply OS patches daily.
|
description: List of times to apply OS patches daily.
|
||||||
multiline: True
|
multiline: True
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
Tuesday: *dailyOptions
|
Tuesday: *dailyOptions
|
||||||
Wednesday: *dailyOptions
|
Wednesday: *dailyOptions
|
||||||
Thursday: *dailyOptions
|
Thursday: *dailyOptions
|
||||||
@@ -64,7 +64,7 @@ patch:
|
|||||||
Monday: &weekdayOptions
|
Monday: &weekdayOptions
|
||||||
description: List of times for weekdays.
|
description: List of times for weekdays.
|
||||||
multiline: True
|
multiline: True
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
Tuesday: *weekdayOptions
|
Tuesday: *weekdayOptions
|
||||||
Wednesday: *weekdayOptions
|
Wednesday: *weekdayOptions
|
||||||
Thursday: *weekdayOptions
|
Thursday: *weekdayOptions
|
||||||
@@ -75,5 +75,5 @@ patch:
|
|||||||
Saturday: &weekendOptions
|
Saturday: &weekendOptions
|
||||||
description: List of times for weekend days.
|
description: List of times for weekend days.
|
||||||
multiline: true
|
multiline: true
|
||||||
helpLink: soup.html
|
helpLink: soup
|
||||||
Sunday: *weekendOptions
|
Sunday: *weekendOptions
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Podman API Service
|
|
||||||
Requires=podman.socket
|
|
||||||
After=podman.socket
|
|
||||||
Documentation=man:podman-api(1)
|
|
||||||
StartLimitIntervalSec=0
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
Environment=REGISTRIES_CONFIG_PATH=/etc/containers/registries.conf
|
|
||||||
ExecStart=/usr/bin/podman system service
|
|
||||||
TimeoutStopSec=30
|
|
||||||
KillMode=process
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Also=podman.socket
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Podman API Socket
|
|
||||||
Documentation=man:podman-api(1)
|
|
||||||
|
|
||||||
[Socket]
|
|
||||||
ListenStream=%t/podman/podman.sock
|
|
||||||
SocketMode=0660
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sockets.target
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
"args": {
|
|
||||||
"podman_options": {
|
|
||||||
"isolate": "true",
|
|
||||||
"mtu": "1500"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cniVersion": "0.4.0",
|
|
||||||
"name": "sobridge",
|
|
||||||
"plugins": [
|
|
||||||
{
|
|
||||||
"type": "bridge",
|
|
||||||
"bridge": "sobridge",
|
|
||||||
"isGateway": true,
|
|
||||||
"ipMasq": false,
|
|
||||||
"mtu": 1500,
|
|
||||||
"hairpinMode": false,
|
|
||||||
"ipam": {
|
|
||||||
"type": "host-local",
|
|
||||||
"routes": [
|
|
||||||
{
|
|
||||||
"dst": "0.0.0.0/0"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ranges": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"subnet": "172.17.1.0/24",
|
|
||||||
"gateway": "172.17.1.1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"capabilities": {
|
|
||||||
"ips": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "portmap",
|
|
||||||
"capabilities": {
|
|
||||||
"portMappings": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tuning"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
|
||||||
|
|
||||||
Podman pkg:
|
|
||||||
pkg.installed:
|
|
||||||
- name: podman
|
|
||||||
|
|
||||||
cnipkg:
|
|
||||||
pkg.installed:
|
|
||||||
- name: containernetworking-plugins
|
|
||||||
|
|
||||||
{#
|
|
||||||
Podman service:
|
|
||||||
file.managed:
|
|
||||||
- name: /usr/lib/systemd/system/podman.service
|
|
||||||
- source: salt://podman/podman.service
|
|
||||||
#}
|
|
||||||
|
|
||||||
sobridgeconf:
|
|
||||||
file.managed:
|
|
||||||
- name: /etc/cni/net.d/sobridge.conflist
|
|
||||||
- source: salt://podman/files/sobridge.conflist
|
|
||||||
|
|
||||||
Podman_socket_service:
|
|
||||||
service.running:
|
|
||||||
- name: podman.socket
|
|
||||||
- enable: true
|
|
||||||
|
|
||||||
Podman_service:
|
|
||||||
service.running:
|
|
||||||
- name: podman.service
|
|
||||||
- enable: true
|
|
||||||
|
|
||||||
Docker socket:
|
|
||||||
file.symlink:
|
|
||||||
- name: /var/run/docker.sock
|
|
||||||
- target: /var/run/podman/podman.sock
|
|
||||||
|
|
||||||
podman_docker_symlink:
|
|
||||||
file.symlink:
|
|
||||||
- name: /usr/bin/docker
|
|
||||||
- target: /usr/bin/podman
|
|
||||||
|
|
||||||
{#
|
|
||||||
sos_docker_net:
|
|
||||||
docker_network.present:
|
|
||||||
- name: sobridge
|
|
||||||
- subnet: {{ DOCKER.range }}
|
|
||||||
- gateway: {{ DOCKER.bip }}
|
|
||||||
- options:
|
|
||||||
com.docker.network.bridge.name: 'sobridge'
|
|
||||||
com.docker.network.driver.mtu: '1500'
|
|
||||||
com.docker.network.bridge.enable_ip_masquerade: 'true'
|
|
||||||
com.docker.network.bridge.enable_icc: 'true'
|
|
||||||
com.docker.network.bridge.host_binding_ipv4: '0.0.0.0'
|
|
||||||
- unless: 'docker network ls | grep sobridge'
|
|
||||||
#}
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -21,9 +21,9 @@ so-redis:
|
|||||||
- user: socore
|
- user: socore
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-redis'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-redis'].ip }}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-redis'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-redis'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -34,23 +34,29 @@ so-redis:
|
|||||||
- /etc/pki/redis.crt:/certs/redis.crt:ro
|
- /etc/pki/redis.crt:/certs/redis.crt:ro
|
||||||
- /etc/pki/redis.key:/certs/redis.key:ro
|
- /etc/pki/redis.key:/certs/redis.key:ro
|
||||||
- /etc/pki/tls/certs/intca.crt:/certs/ca.crt:ro
|
- /etc/pki/tls/certs/intca.crt:/certs/ca.crt:ro
|
||||||
{% if DOCKER.containers['so-redis'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-redis'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-redis'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-redis'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-redis'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-redis'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-redis'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-redis'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-redis'].extra_env %}
|
{% if DOCKERMERGED.containers['so-redis'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-redis'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-redis'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-redis'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-redis'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- entrypoint: "redis-server /usr/local/etc/redis/redis.conf"
|
- entrypoint: "redis-server /usr/local/etc/redis/redis.conf"
|
||||||
- watch:
|
- watch:
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
redis:
|
redis:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables the log event in-memory buffering process. This process might already be disabled on some installation types. Disabling this process on distributed-capable grids can result in loss of log events.
|
description: Enables the log event in-memory buffering process. This process might already be disabled on some installation types. Disabling this process on distributed-capable grids can result in loss of log events.
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
config:
|
config:
|
||||||
bind:
|
bind:
|
||||||
description: The IP address to bind to.
|
description: The IP address to bind to.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
protected-mode:
|
protected-mode:
|
||||||
description: Force authentication to access redis.
|
description: Force authentication to access redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
requirepass:
|
requirepass:
|
||||||
description: Password for accessing Redis.
|
description: Password for accessing Redis.
|
||||||
global: True
|
global: True
|
||||||
@@ -21,262 +21,262 @@ redis:
|
|||||||
description: TLS cert file location.
|
description: TLS cert file location.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-key-file:
|
tls-key-file:
|
||||||
description: TLS key file location.
|
description: TLS key file location.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-ca-cert-file:
|
tls-ca-cert-file:
|
||||||
description: TLS CA file location.
|
description: TLS CA file location.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-port:
|
tls-port:
|
||||||
description: Port to use TLS encryption on.
|
description: Port to use TLS encryption on.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-auth-clients:
|
tls-auth-clients:
|
||||||
description: Force TLS authentication.
|
description: Force TLS authentication.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
port:
|
port:
|
||||||
description: Non TLS port for Redis access.
|
description: Non TLS port for Redis access.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tcp-backlog:
|
tcp-backlog:
|
||||||
description: Set the TCP backlog value. This is normally increasd in high request environments.
|
description: Set the TCP backlog value. This is normally increasd in high request environments.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
timeout:
|
timeout:
|
||||||
description: Time in seconds to close an idle connection. 0 to disable.
|
description: Time in seconds to close an idle connection. 0 to disable.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tcp-keepalive:
|
tcp-keepalive:
|
||||||
description: Time in seconds to send a keepalive.
|
description: Time in seconds to send a keepalive.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-replication:
|
tls-replication:
|
||||||
description: Enable TLS replication links.
|
description: Enable TLS replication links.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-protocols:
|
tls-protocols:
|
||||||
description: List of acceptable TLS protocols separated by spaces.
|
description: List of acceptable TLS protocols separated by spaces.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-prefer-server-ciphers:
|
tls-prefer-server-ciphers:
|
||||||
description: Prefer the server side ciphers.
|
description: Prefer the server side ciphers.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-session-caching:
|
tls-session-caching:
|
||||||
description: Enable TLS session caching.
|
description: Enable TLS session caching.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-session-cache-size:
|
tls-session-cache-size:
|
||||||
description: The number of TLS sessions to cache.
|
description: The number of TLS sessions to cache.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
tls-session-cache-timeout:
|
tls-session-cache-timeout:
|
||||||
description: Timeout in seconds to cache TLS sessions.
|
description: Timeout in seconds to cache TLS sessions.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
loglevel:
|
loglevel:
|
||||||
description: Log verbosity level.
|
description: Log verbosity level.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
logfile:
|
logfile:
|
||||||
description: Log file name.
|
description: Log file name.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
syslog-enabled:
|
syslog-enabled:
|
||||||
description: Enable syslog output.
|
description: Enable syslog output.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
syslog-ident:
|
syslog-ident:
|
||||||
description: Set the syslog identity.
|
description: Set the syslog identity.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
syslog-facility:
|
syslog-facility:
|
||||||
description: Set the syslog facility.
|
description: Set the syslog facility.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
databases:
|
databases:
|
||||||
description: Total amount of databases.
|
description: Total amount of databases.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
always-show-logo:
|
always-show-logo:
|
||||||
description: The amount of time that a write will wait before fsyncing.
|
description: The amount of time that a write will wait before fsyncing.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
save:
|
save:
|
||||||
'900':
|
'900':
|
||||||
description: Set the amount of keys that need to change to save after 15 minutes.
|
description: Set the amount of keys that need to change to save after 15 minutes.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
'300':
|
'300':
|
||||||
description: Set the amount of keys that need to change to save after 5 minutes.
|
description: Set the amount of keys that need to change to save after 5 minutes.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
'60':
|
'60':
|
||||||
description: Set the amount of keys that need to change to save after 1 minute
|
description: Set the amount of keys that need to change to save after 1 minute
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
stop-writes-on-bgsave-error:
|
stop-writes-on-bgsave-error:
|
||||||
description: Stop writes to redis is there is an error with the save.
|
description: Stop writes to redis is there is an error with the save.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
rdbcompression:
|
rdbcompression:
|
||||||
description: Compress string objects with LZF.
|
description: Compress string objects with LZF.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
rdbchecksum:
|
rdbchecksum:
|
||||||
description: Enable checksum of rdb files.
|
description: Enable checksum of rdb files.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
dbfilename:
|
dbfilename:
|
||||||
description: Filename of the rdb saves.
|
description: Filename of the rdb saves.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
acllog-max-len:
|
acllog-max-len:
|
||||||
description: Maximum length of the ACL log.
|
description: Maximum length of the ACL log.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
maxmemory:
|
maxmemory:
|
||||||
description: Maximum memory for storing redis objects.
|
description: Maximum memory for storing redis objects.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
maxmemory-policy:
|
maxmemory-policy:
|
||||||
description: The policy to use when maxmemory is reached.
|
description: The policy to use when maxmemory is reached.
|
||||||
global: True
|
global: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
maxmemory-samples:
|
maxmemory-samples:
|
||||||
description: maxmemory sample size.
|
description: maxmemory sample size.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
lua-time-limit:
|
lua-time-limit:
|
||||||
description: Maximum execution time of LUA scripts.
|
description: Maximum execution time of LUA scripts.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
slowlog-log-slower-than:
|
slowlog-log-slower-than:
|
||||||
description: Time in microseconds to write to the slow log.
|
description: Time in microseconds to write to the slow log.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
slowlog-max-len:
|
slowlog-max-len:
|
||||||
description: Maximum size of the slow log.
|
description: Maximum size of the slow log.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
hash-max-ziplist-entries:
|
hash-max-ziplist-entries:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
hash-max-ziplist-value:
|
hash-max-ziplist-value:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
list-max-ziplist-size:
|
list-max-ziplist-size:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
list-compress-depth:
|
list-compress-depth:
|
||||||
description: Depth for list compression.
|
description: Depth for list compression.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
set-max-intset-entries:
|
set-max-intset-entries:
|
||||||
description: Sets the limit on the size of the set in order to use the special memory saving encoding.
|
description: Sets the limit on the size of the set in order to use the special memory saving encoding.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
zset-max-ziplist-entries:
|
zset-max-ziplist-entries:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
zset-max-ziplist-value:
|
zset-max-ziplist-value:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
hll-sparse-max-bytes:
|
hll-sparse-max-bytes:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
stream-node-max-bytes:
|
stream-node-max-bytes:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
stream-node-max-entries:
|
stream-node-max-entries:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
activerehashing:
|
activerehashing:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
client-output-buffer-limit:
|
client-output-buffer-limit:
|
||||||
normal:
|
normal:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
replica:
|
replica:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
pubsub:
|
pubsub:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
hz:
|
hz:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
dynamic-hz:
|
dynamic-hz:
|
||||||
description: Used for advanced performance tuning of Redis.
|
description: Used for advanced performance tuning of Redis.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
rdb-save-incremental-fsync:
|
rdb-save-incremental-fsync:
|
||||||
description: fsync redis data.
|
description: fsync redis data.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
jemalloc-bg-thread:
|
jemalloc-bg-thread:
|
||||||
description: Jemalloc background thread for purging.
|
description: Jemalloc background thread for purging.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: redis.html
|
helpLink: redis
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- registry.ssl
|
- registry.ssl
|
||||||
@@ -20,10 +20,10 @@ so-dockerregistry:
|
|||||||
- hostname: so-registry
|
- hostname: so-registry
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-dockerregistry'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-dockerregistry'].ip }}
|
||||||
- restart_policy: always
|
- restart_policy: always
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-dockerregistry'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-dockerregistry'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -32,25 +32,31 @@ so-dockerregistry:
|
|||||||
- /nsm/docker-registry/docker:/var/lib/registry/docker:rw
|
- /nsm/docker-registry/docker:/var/lib/registry/docker:rw
|
||||||
- /etc/pki/registry.crt:/etc/pki/registry.crt:ro
|
- /etc/pki/registry.crt:/etc/pki/registry.crt:ro
|
||||||
- /etc/pki/registry.key:/etc/pki/registry.key:ro
|
- /etc/pki/registry.key:/etc/pki/registry.key:ro
|
||||||
{% if DOCKER.containers['so-dockerregistry'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-dockerregistry'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-dockerregistry'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-dockerregistry'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-dockerregistry'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-dockerregistry'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-dockerregistry'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-dockerregistry'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- client_timeout: 180
|
- client_timeout: 180
|
||||||
- environment:
|
- environment:
|
||||||
- HOME=/root
|
- HOME=/root
|
||||||
{% if DOCKER.containers['so-dockerregistry'].extra_env %}
|
{% if DOCKERMERGED.containers['so-dockerregistry'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-dockerregistry'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-dockerregistry'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-dockerregistry'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-dockerregistry'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- retry:
|
- retry:
|
||||||
attempts: 5
|
attempts: 5
|
||||||
interval: 30
|
interval: 30
|
||||||
|
|||||||
@@ -1,43 +1,29 @@
|
|||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% set REPOPATH = '/etc/yum.repos.d/' %}
|
||||||
|
{% set ABSENTFILES = [
|
||||||
{% if GLOBALS.os_family == 'RedHat' %}
|
'centos-addons.repo',
|
||||||
{% set REPOPATH = '/etc/yum.repos.d/' %}
|
'centos-devel.repo',
|
||||||
{% if GLOBALS.os == 'OEL' %}
|
'centos-extras.repo',
|
||||||
{% set ABSENTFILES = [
|
'centos.repo',
|
||||||
'centos-addons.repo',
|
'docker-ce.repo',
|
||||||
'centos-devel.repo',
|
'epel.repo',
|
||||||
'centos-extras.repo',
|
'epel-testing.repo',
|
||||||
'centos.repo',
|
'saltstack.repo',
|
||||||
'docker-ce.repo',
|
'salt-latest.repo',
|
||||||
'epel.repo',
|
'wazuh.repo'
|
||||||
'epel-testing.repo',
|
'Rocky-Base.repo',
|
||||||
'saltstack.repo',
|
'Rocky-CR.repo',
|
||||||
'salt-latest.repo',
|
'Rocky-Debuginfo.repo',
|
||||||
'wazuh.repo'
|
'Rocky-fasttrack.repo',
|
||||||
'Rocky-Base.repo',
|
'Rocky-Media.repo',
|
||||||
'Rocky-CR.repo',
|
'Rocky-Sources.repo',
|
||||||
'Rocky-Debuginfo.repo',
|
'Rocky-Vault.repo',
|
||||||
'Rocky-fasttrack.repo',
|
'Rocky-x86_64-kernel.repo',
|
||||||
'Rocky-Media.repo',
|
'rocky-addons.repo',
|
||||||
'Rocky-Sources.repo',
|
'rocky-devel.repo',
|
||||||
'Rocky-Vault.repo',
|
'rocky-extras.repo',
|
||||||
'Rocky-x86_64-kernel.repo',
|
'rocky.repo',
|
||||||
'rocky-addons.repo',
|
'oracle-linux-ol9.repo',
|
||||||
'rocky-devel.repo',
|
'uek-ol9.repo',
|
||||||
'rocky-extras.repo',
|
'virt-ol9.repo'
|
||||||
'rocky.repo',
|
]
|
||||||
'oracle-linux-ol9.repo',
|
%}
|
||||||
'uek-ol9.repo',
|
|
||||||
'virt-ol9.repo'
|
|
||||||
]
|
|
||||||
%}
|
|
||||||
{% else %}
|
|
||||||
{% set ABSENTFILES = [] %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
{% set REPOPATH = '/etc/apt/sources.list.d/' %}
|
|
||||||
{% set ABSENTFILES = [] %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -1,10 +1,3 @@
|
|||||||
{% if grains.oscodename == 'focal' %}
|
|
||||||
saltpymodules:
|
|
||||||
pkg.installed:
|
|
||||||
- pkgs:
|
|
||||||
- python3-docker
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
# distribute to minions for salt upgrades
|
# distribute to minions for salt upgrades
|
||||||
salt_bootstrap:
|
salt_bootstrap:
|
||||||
file.managed:
|
file.managed:
|
||||||
|
|||||||
@@ -17,22 +17,12 @@
|
|||||||
{% set SALTVERSION = saltminion.salt.minion.version | string %}
|
{% set SALTVERSION = saltminion.salt.minion.version | string %}
|
||||||
{% set INSTALLEDSALTVERSION = grains.saltversion | string %}
|
{% set INSTALLEDSALTVERSION = grains.saltversion | string %}
|
||||||
|
|
||||||
{% if grains.os_family == 'Debian' %}
|
{% set SPLITCHAR = '-' %}
|
||||||
{% set SPLITCHAR = '+' %}
|
{% set SALTPACKAGES = ['salt', 'salt-master', 'salt-minion', 'salt-cloud'] %}
|
||||||
{% set SALTPACKAGES = ['salt-common', 'salt-master', 'salt-minion', 'salt-cloud'] %}
|
{% set SYSTEMD_UNIT_FILE = '/usr/lib/systemd/system/salt-minion.service' %}
|
||||||
{% set SYSTEMD_UNIT_FILE = '/lib/systemd/system/salt-minion.service' %}
|
|
||||||
{% else %}
|
|
||||||
{% set SPLITCHAR = '-' %}
|
|
||||||
{% set SALTPACKAGES = ['salt', 'salt-master', 'salt-minion', 'salt-cloud'] %}
|
|
||||||
{% set SYSTEMD_UNIT_FILE = '/usr/lib/systemd/system/salt-minion.service' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if INSTALLEDSALTVERSION != SALTVERSION %}
|
{% if INSTALLEDSALTVERSION != SALTVERSION %}
|
||||||
{% if grains.os_family|lower == 'redhat' %}
|
{% set UPGRADECOMMAND = 'yum clean all ; /usr/sbin/bootstrap-salt.sh -X -r -F stable ' ~ SALTVERSION %}
|
||||||
{% set UPGRADECOMMAND = 'yum clean all ; /usr/sbin/bootstrap-salt.sh -X -r -F stable ' ~ SALTVERSION %}
|
|
||||||
{% elif grains.os_family|lower == 'debian' %}
|
|
||||||
{% set UPGRADECOMMAND = '/usr/sbin/bootstrap-salt.sh -X -F stable ' ~ SALTVERSION %}
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set UPGRADECOMMAND = 'echo Already running Salt Minion version ' ~ SALTVERSION %}
|
{% set UPGRADECOMMAND = 'echo Already running Salt Minion version ' ~ SALTVERSION %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -23,15 +23,6 @@ sync_runners:
|
|||||||
- name: saltutil.sync_runners
|
- name: saltutil.sync_runners
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
# prior to 2.4.30 this engine ran on the manager with salt-minion
|
|
||||||
# this has changed to running with the salt-master in 2.4.30
|
|
||||||
remove_engines_config:
|
|
||||||
file.absent:
|
|
||||||
- name: /etc/salt/minion.d/engines.conf
|
|
||||||
- source: salt://salt/files/engines.conf
|
|
||||||
- watch_in:
|
|
||||||
- service: salt_minion_service
|
|
||||||
|
|
||||||
checkmine_engine:
|
checkmine_engine:
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: /etc/salt/engines/checkmine.py
|
- name: /etc/salt/engines/checkmine.py
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
sensor:
|
sensor:
|
||||||
interface:
|
interface:
|
||||||
description: Main sensor monitoring interface.
|
description: Main sensor monitoring interface.
|
||||||
helpLink: network.html
|
helpLink: network-visibility
|
||||||
readonly: True
|
readonly: True
|
||||||
mtu:
|
mtu:
|
||||||
description: Maximum Transmission Unit (MTU) of the sensor monitoring interface.
|
description: Maximum Transmission Unit (MTU) of the sensor monitoring interface.
|
||||||
helpLink: network.html
|
helpLink: network-visibility
|
||||||
readonly: True
|
readonly: True
|
||||||
channels:
|
channels:
|
||||||
description: Set the size of the nic channels. This is rarely changed from 1
|
description: Set the size of the nic channels. This is rarely changed from 1
|
||||||
helpLink: network.html
|
helpLink: network-visibility
|
||||||
forcedType: int
|
forcedType: int
|
||||||
node: True
|
node: True
|
||||||
advanced: True
|
advanced: True
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -23,23 +23,29 @@ so-sensoroni:
|
|||||||
- /opt/so/conf/sensoroni/templates:/opt/sensoroni/templates:ro
|
- /opt/so/conf/sensoroni/templates:/opt/sensoroni/templates:ro
|
||||||
- /opt/so/log/sensoroni:/opt/sensoroni/logs:rw
|
- /opt/so/log/sensoroni:/opt/sensoroni/logs:rw
|
||||||
- /nsm/suripcap/:/nsm/suripcap:rw
|
- /nsm/suripcap/:/nsm/suripcap:rw
|
||||||
{% if DOCKER.containers['so-sensoroni'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-sensoroni'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-sensoroni'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-sensoroni'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-sensoroni'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-sensoroni'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-sensoroni'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-sensoroni'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-sensoroni'].extra_env %}
|
{% if DOCKERMERGED.containers['so-sensoroni'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-sensoroni'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-sensoroni'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-sensoroni'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-sensoroni'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: /opt/so/conf/sensoroni/sensoroni.json
|
- file: /opt/so/conf/sensoroni/sensoroni.json
|
||||||
- require:
|
- require:
|
||||||
|
|||||||
@@ -2,79 +2,79 @@ sensoroni:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enable or disable the per-node SOC agent process. This process is used for performing node-related jobs and reporting node metrics back to SOC. Disabling this process is unsupported and will result in an improperly functioning grid.
|
description: Enable or disable the per-node SOC agent process. This process is used for performing node-related jobs and reporting node metrics back to SOC. Disabling this process is unsupported and will result in an improperly functioning grid.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: grid.html
|
helpLink: grid
|
||||||
config:
|
config:
|
||||||
analyze:
|
analyze:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable or disable the analyzer.
|
description: Enable or disable the analyzer.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
timeout_ms:
|
timeout_ms:
|
||||||
description: Timeout period for the analyzer.
|
description: Timeout period for the analyzer.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
parallel_limit:
|
parallel_limit:
|
||||||
description: Parallel limit for the analyzer.
|
description: Parallel limit for the analyzer.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
export:
|
export:
|
||||||
timeout_ms:
|
timeout_ms:
|
||||||
description: Timeout period for the exporter to finish export-related tasks.
|
description: Timeout period for the exporter to finish export-related tasks.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
cache_refresh_interval_ms:
|
cache_refresh_interval_ms:
|
||||||
description: Refresh interval for cache updates. Longer intervals result in less compute usage but risks stale data included in reports.
|
description: Refresh interval for cache updates. Longer intervals result in less compute usage but risks stale data included in reports.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
export_metric_limit:
|
export_metric_limit:
|
||||||
description: Maximum number of metric values to include in each metric aggregation group.
|
description: Maximum number of metric values to include in each metric aggregation group.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
export_event_limit:
|
export_event_limit:
|
||||||
description: Maximum number of events to include per event list.
|
description: Maximum number of events to include per event list.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
csv_separator:
|
csv_separator:
|
||||||
description: Separator character to use for CSV exports.
|
description: Separator character to use for CSV exports.
|
||||||
advanced: False
|
advanced: False
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
node_checkin_interval_ms:
|
node_checkin_interval_ms:
|
||||||
description: Interval in ms to checkin to the soc_host.
|
description: Interval in ms to checkin to the soc_host.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: grid.html
|
helpLink: grid
|
||||||
node_description:
|
node_description:
|
||||||
description: Description of the specific node.
|
description: Description of the specific node.
|
||||||
helpLink: grid.html
|
helpLink: grid
|
||||||
node: True
|
node: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
sensoronikey:
|
sensoronikey:
|
||||||
description: Shared key for sensoroni authentication.
|
description: Shared key for sensoroni authentication.
|
||||||
helpLink: grid.html
|
helpLink: grid
|
||||||
global: True
|
global: True
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
soc_host:
|
soc_host:
|
||||||
description: Host for sensoroni agents to connect to.
|
description: Host for sensoroni agents to connect to.
|
||||||
helpLink: grid.html
|
helpLink: grid
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
suripcap:
|
suripcap:
|
||||||
pcapMaxCount:
|
pcapMaxCount:
|
||||||
description: The maximum number of PCAP packets to extract from eligible PCAP files, for PCAP jobs. If there are issues fetching excessively large packet streams consider lowering this value to reduce the number of collected packets returned to the user interface.
|
description: The maximum number of PCAP packets to extract from eligible PCAP files, for PCAP jobs. If there are issues fetching excessively large packet streams consider lowering this value to reduce the number of collected packets returned to the user interface.
|
||||||
helpLink: sensoroni.html
|
helpLink: pcap
|
||||||
advanced: True
|
advanced: True
|
||||||
analyzers:
|
analyzers:
|
||||||
echotrail:
|
echotrail:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the Echotrail analyzer.
|
description: API key for the Echotrail analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the Echotrail analyzer.
|
description: Base URL for the Echotrail analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
@@ -82,70 +82,70 @@ sensoroni:
|
|||||||
elasticsearch:
|
elasticsearch:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the Elasticsearch analyzer.
|
description: API key for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Connection URL for the Elasticsearch analyzer.
|
description: Connection URL for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
auth_user:
|
auth_user:
|
||||||
description: Username for the Elasticsearch analyzer.
|
description: Username for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
auth_pwd:
|
auth_pwd:
|
||||||
description: User password for the Elasticsearch analyzer.
|
description: User password for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
num_results:
|
num_results:
|
||||||
description: Number of documents to return for the Elasticsearch analyzer.
|
description: Number of documents to return for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
index:
|
index:
|
||||||
description: Search index for the Elasticsearch analyzer.
|
description: Search index for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
time_delta_minutes:
|
time_delta_minutes:
|
||||||
description: Time (in minutes) to search back for the Elasticsearch analyzer.
|
description: Time (in minutes) to search back for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
timestamp_field_name:
|
timestamp_field_name:
|
||||||
description: Specified name for a documents' timestamp field for the Elasticsearch analyzer.
|
description: Specified name for a documents' timestamp field for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
map:
|
map:
|
||||||
description: Map between observable types and search field for the Elasticsearch analyzer.
|
description: Map between observable types and search field for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: string
|
forcedType: string
|
||||||
cert_path:
|
cert_path:
|
||||||
description: Path to a TLS certificate for the Elasticsearch analyzer.
|
description: Path to a TLS certificate for the Elasticsearch analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: False
|
advanced: False
|
||||||
@@ -153,14 +153,14 @@ sensoroni:
|
|||||||
emailrep:
|
emailrep:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the EmailRep analyzer.
|
description: API key for the EmailRep analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the EmailRep analyzer.
|
description: Base URL for the EmailRep analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -168,21 +168,21 @@ sensoroni:
|
|||||||
greynoise:
|
greynoise:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the GreyNoise analyzer.
|
description: API key for the GreyNoise analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
api_version:
|
api_version:
|
||||||
description: API version for the GreyNoise analyzer.
|
description: API version for the GreyNoise analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the GreyNoise analyzer.
|
description: Base URL for the GreyNoise analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -190,7 +190,7 @@ sensoroni:
|
|||||||
localfile:
|
localfile:
|
||||||
file_path:
|
file_path:
|
||||||
description: File path for the LocalFile analyzer.
|
description: File path for the LocalFile analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -198,7 +198,7 @@ sensoroni:
|
|||||||
malwarebazaar:
|
malwarebazaar:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the malwarebazaar analyzer.
|
description: API key for the malwarebazaar analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: False
|
advanced: False
|
||||||
@@ -206,14 +206,14 @@ sensoroni:
|
|||||||
otx:
|
otx:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the OTX analyzer.
|
description: API key for the OTX analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the OTX analyzer.
|
description: Base URL for the OTX analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -221,14 +221,14 @@ sensoroni:
|
|||||||
pulsedive:
|
pulsedive:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the Pulsedive analyzer.
|
description: API key for the Pulsedive analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the Pulsedive analyzer.
|
description: Base URL for the Pulsedive analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -236,14 +236,14 @@ sensoroni:
|
|||||||
spamhaus:
|
spamhaus:
|
||||||
lookup_host:
|
lookup_host:
|
||||||
description: Host to use for lookups.
|
description: Host to use for lookups.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
nameservers:
|
nameservers:
|
||||||
description: Nameservers used for queries.
|
description: Nameservers used for queries.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
multiline: True
|
multiline: True
|
||||||
@@ -252,35 +252,35 @@ sensoroni:
|
|||||||
sublime_platform:
|
sublime_platform:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the Sublime Platform analyzer.
|
description: API key for the Sublime Platform analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the Sublime Platform analyzer.
|
description: Base URL for the Sublime Platform analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
live_flow:
|
live_flow:
|
||||||
description: Determines if live flow analysis is used.
|
description: Determines if live flow analysis is used.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
mailbox_email_address:
|
mailbox_email_address:
|
||||||
description: Source mailbox address used for live flow analysis.
|
description: Source mailbox address used for live flow analysis.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
message_source_id:
|
message_source_id:
|
||||||
description: ID of the message source used for live flow analysis.
|
description: ID of the message source used for live flow analysis.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -288,7 +288,7 @@ sensoroni:
|
|||||||
threatfox:
|
threatfox:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the threatfox analyzer.
|
description: API key for the threatfox analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: False
|
advanced: False
|
||||||
@@ -296,35 +296,35 @@ sensoroni:
|
|||||||
urlscan:
|
urlscan:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the Urlscan analyzer.
|
description: API key for the Urlscan analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the Urlscan analyzer.
|
description: Base URL for the Urlscan analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
enabled:
|
enabled:
|
||||||
description: Analyzer enabled
|
description: Analyzer enabled
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
timeout:
|
timeout:
|
||||||
description: Timeout for the Urlscan analyzer.
|
description: Timeout for the Urlscan analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
visibility:
|
visibility:
|
||||||
description: Type of visibility.
|
description: Type of visibility.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -332,7 +332,7 @@ sensoroni:
|
|||||||
urlhaus:
|
urlhaus:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the urlhaus analyzer.
|
description: API key for the urlhaus analyzer.
|
||||||
helpLink: sensoroni.html
|
helpLink: cases#configuring-analyzers
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: False
|
advanced: False
|
||||||
@@ -340,14 +340,14 @@ sensoroni:
|
|||||||
virustotal:
|
virustotal:
|
||||||
api_key:
|
api_key:
|
||||||
description: API key for the VirusTotal analyzer.
|
description: API key for the VirusTotal analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: True
|
sensitive: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
base_url:
|
base_url:
|
||||||
description: Base URL for the VirusTotal analyzer.
|
description: Base URL for the VirusTotal analyzer.
|
||||||
helpLink: cases.html
|
helpLink: cases
|
||||||
global: False
|
global: False
|
||||||
sensitive: False
|
sensitive: False
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -362,21 +362,21 @@ sensoroni:
|
|||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
productivity_report__md:
|
productivity_report__md:
|
||||||
title: Productivity Report Template
|
title: Productivity Report Template
|
||||||
description: The template used when generating a comprehensive productivity report. Supports markdown format.
|
description: The template used when generating a comprehensive productivity report. Supports markdown format.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
assistant_session_report__md:
|
assistant_session_report__md:
|
||||||
title: Assistant Session Report Template
|
title: Assistant Session Report Template
|
||||||
description: The template used when generating an assistant session report. Supports markdown format.
|
description: The template used when generating an assistant session report. Supports markdown format.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helplink: reports.html
|
helpLink: reports
|
||||||
custom:
|
custom:
|
||||||
generic_report1__md:
|
generic_report1__md:
|
||||||
title: Custom Report 1
|
title: Custom Report 1
|
||||||
@@ -384,63 +384,63 @@ sensoroni:
|
|||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report2__md:
|
generic_report2__md:
|
||||||
title: Custom Report 2
|
title: Custom Report 2
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report3__md:
|
generic_report3__md:
|
||||||
title: Custom Report 3
|
title: Custom Report 3
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report4__md:
|
generic_report4__md:
|
||||||
title: Custom Report 4
|
title: Custom Report 4
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report5__md:
|
generic_report5__md:
|
||||||
title: Custom Report 5
|
title: Custom Report 5
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report6__md:
|
generic_report6__md:
|
||||||
title: Custom Report 6
|
title: Custom Report 6
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report7__md:
|
generic_report7__md:
|
||||||
title: Custom Report 7
|
title: Custom Report 7
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report8__md:
|
generic_report8__md:
|
||||||
title: Custom Report 8
|
title: Custom Report 8
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
generic_report9__md:
|
generic_report9__md:
|
||||||
title: Custom Report 9
|
title: Custom Report 9
|
||||||
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
description: A custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
addl_generic_report__md:
|
addl_generic_report__md:
|
||||||
title: Additional Custom Report
|
title: Additional Custom Report
|
||||||
description: A duplicatable custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI. This is an unsupported feature due to the inability to edit duplicated reports via the SOC app.
|
description: A duplicatable custom, user-defined report. Supports markdown format. The report title inside the file, typically near the top, will be shown in the SOC reporting UI. This is an unsupported feature due to the inability to edit duplicated reports via the SOC app.
|
||||||
@@ -449,4 +449,4 @@ sensoroni:
|
|||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
duplicates: True
|
duplicates: True
|
||||||
helpLink: reports.html
|
helpLink: reports
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% import_yaml 'soc/defaults.yaml' as SOCDEFAULTS %}
|
{% import_yaml 'soc/defaults.yaml' as SOCDEFAULTS %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER -%}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED -%}
|
||||||
{% set INFLUXDB_TOKEN = salt['pillar.get']('influxdb:token') %}
|
{% set INFLUXDB_TOKEN = salt['pillar.get']('influxdb:token') %}
|
||||||
{% import_text 'influxdb/metrics_link.txt' as METRICS_LINK %}
|
{% import_text 'influxdb/metrics_link.txt' as METRICS_LINK %}
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% do SOCDEFAULTS.soc.config.server.modules.statickeyauth.update({'anonymousCidr': DOCKER.range, 'apiKey': pillar.sensoroni.config.sensoronikey}) %}
|
{% do SOCDEFAULTS.soc.config.server.modules.statickeyauth.update({'anonymousCidr': DOCKERMERGED.range, 'apiKey': pillar.sensoroni.config.sensoronikey}) %}
|
||||||
|
|
||||||
{% do SOCDEFAULTS.soc.config.server.client.case.update({'analyzerNodeId': GLOBALS.hostname}) %}
|
{% do SOCDEFAULTS.soc.config.server.client.case.update({'analyzerNodeId': GLOBALS.hostname}) %}
|
||||||
{% do SOCDEFAULTS.soc.config.server.client.update({'exportNodeId': GLOBALS.hostname}) %}
|
{% do SOCDEFAULTS.soc.config.server.client.update({'exportNodeId': GLOBALS.hostname}) %}
|
||||||
|
|||||||
@@ -1679,8 +1679,8 @@ soc:
|
|||||||
client:
|
client:
|
||||||
docsUrl: /docs/
|
docsUrl: /docs/
|
||||||
cheatsheetUrl: /docs/cheatsheet.pdf
|
cheatsheetUrl: /docs/cheatsheet.pdf
|
||||||
releaseNotesUrl: /docs/release-notes.html
|
releaseNotesUrl: /docs/release-notes
|
||||||
apiTimeoutMs: 300000
|
apiTimeoutMs:
|
||||||
webSocketTimeoutMs: 15000
|
webSocketTimeoutMs: 15000
|
||||||
tipTimeoutMs: 6000
|
tipTimeoutMs: 6000
|
||||||
cacheExpirationMs: 300000
|
cacheExpirationMs: 300000
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'soc/merged.map.jinja' import DOCKER_EXTRA_HOSTS %}
|
{% from 'soc/merged.map.jinja' import DOCKER_EXTRA_HOSTS %}
|
||||||
{% from 'soc/merged.map.jinja' import SOCMERGED %}
|
{% from 'soc/merged.map.jinja' import SOCMERGED %}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ so-soc:
|
|||||||
- name: so-soc
|
- name: so-soc
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-soc'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-soc'].ip }}
|
||||||
- binds:
|
- binds:
|
||||||
- /nsm/rules:/nsm/rules:rw
|
- /nsm/rules:/nsm/rules:rw
|
||||||
- /opt/so/conf/strelka:/opt/sensoroni/yara:rw
|
- /opt/so/conf/strelka:/opt/sensoroni/yara:rw
|
||||||
@@ -63,21 +63,27 @@ so-soc:
|
|||||||
- {{hostname}}:{{ip}}
|
- {{hostname}}:{{ip}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-soc'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-soc'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-soc'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-soc'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-soc'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-soc'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-soc'].extra_env %}
|
{% if DOCKERMERGED.containers['so-soc'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-soc'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-soc'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-soc'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-soc'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
- file: /opt/so/conf/soc/*
|
- file: /opt/so/conf/soc/*
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ For more coverage of your enterprise, you can deploy the Elastic Agent to endpoi
|
|||||||
|
|
||||||
## What's New
|
## What's New
|
||||||
|
|
||||||
To see all the latest features and fixes in this version of Security Onion, click the upper-right menu and then click the [What's New](/docs/release-notes.html) link.
|
To see all the latest features and fixes in this version of Security Onion, click the upper-right menu and then click the [What's New](/docs/release-notes) link.
|
||||||
|
|
||||||
## Security Onion Pro
|
## Security Onion Pro
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ soc:
|
|||||||
title: SOC Telemetry
|
title: SOC Telemetry
|
||||||
description: When this setting is enabled and the grid is not in airgap mode, SOC will provide feature usage data to the Security Onion development team via Google Analytics. This data helps Security Onion developers determine which product features are being used and can also provide insight into improving the user interface. When changing this setting, wait for the grid to fully synchronize and then perform a hard browser refresh on SOC, to force the browser cache to update and reflect the new setting.
|
description: When this setting is enabled and the grid is not in airgap mode, SOC will provide feature usage data to the Security Onion development team via Google Analytics. This data helps Security Onion developers determine which product features are being used and can also provide insight into improving the user interface. When changing this setting, wait for the grid to fully synchronize and then perform a hard browser refresh on SOC, to force the browser cache to update and reflect the new setting.
|
||||||
global: True
|
global: True
|
||||||
helpLink: telemetry.html
|
helpLink: telemetry
|
||||||
files:
|
files:
|
||||||
soc:
|
soc:
|
||||||
banner__md:
|
banner__md:
|
||||||
@@ -15,28 +15,28 @@ soc:
|
|||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: soc-customization.html
|
helpLink: security-onion-console-customization
|
||||||
motd__md:
|
motd__md:
|
||||||
title: Overview Page
|
title: Overview Page
|
||||||
description: Customize the overview page with specific markdown-formatted content. Images can be used but must be hosted from another host that is accessible by the user's browser.
|
description: Customize the overview page with specific markdown-formatted content. Images can be used but must be hosted from another host that is accessible by the user's browser.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
syntax: md
|
syntax: md
|
||||||
helpLink: soc-customization.html
|
helpLink: security-onion-console-customization
|
||||||
custom__js:
|
custom__js:
|
||||||
title: Custom Javascript
|
title: Custom Javascript
|
||||||
description: Customize SOC UI behavior with custom Javascript code. Custom Javascript not provided by Security Onion Solutions is unsupported, and should be removed prior to requesting support and prior to performing upgrades.
|
description: Customize SOC UI behavior with custom Javascript code. Custom Javascript not provided by Security Onion Solutions is unsupported, and should be removed prior to requesting support and prior to performing upgrades.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: soc-customization.html
|
helpLink: security-onion-console-customization
|
||||||
custom_roles:
|
custom_roles:
|
||||||
title: Custom Roles
|
title: Custom Roles
|
||||||
description: Customize role and permission mappings. Changing this setting requires a complete understanding of the SOC RBAC system.
|
description: Customize role and permission mappings. Changing this setting requires a complete understanding of the SOC RBAC system.
|
||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: soc-customization.html
|
helpLink: security-onion-console-customization
|
||||||
sigma_final_pipeline__yaml:
|
sigma_final_pipeline__yaml:
|
||||||
title: Final Sigma Pipeline
|
title: Final Sigma Pipeline
|
||||||
description: Final Processing Pipeline for Sigma Rules.
|
description: Final Processing Pipeline for Sigma Rules.
|
||||||
@@ -44,7 +44,7 @@ soc:
|
|||||||
file: True
|
file: True
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: soc-customization.html
|
helpLink: security-onion-console-customization
|
||||||
config:
|
config:
|
||||||
licenseKey:
|
licenseKey:
|
||||||
title: License Key
|
title: License Key
|
||||||
@@ -183,7 +183,7 @@ soc:
|
|||||||
enableReverseLookup:
|
enableReverseLookup:
|
||||||
description: "Set to true to enable reverse DNS lookups for IP addresses in the SOC UI. To add your own local lookups, create a CSV file at /nsm/custom-mappings/ip-descriptions.csv on your Manager and populate the file with IP addresses and descriptions as follows: IP, Description. Elasticsearch will then ingest the CSV during the next high state."
|
description: "Set to true to enable reverse DNS lookups for IP addresses in the SOC UI. To add your own local lookups, create a CSV file at /nsm/custom-mappings/ip-descriptions.csv on your Manager and populate the file with IP addresses and descriptions as follows: IP, Description. Elasticsearch will then ingest the CSV during the next high state."
|
||||||
global: True
|
global: True
|
||||||
helpLink: soc-customization.html#reverse-dns
|
helpLink: security-onion-console-customization#reverse-dns
|
||||||
modules:
|
modules:
|
||||||
elastalertengine:
|
elastalertengine:
|
||||||
aiRepoUrl:
|
aiRepoUrl:
|
||||||
@@ -205,7 +205,7 @@ soc:
|
|||||||
title: "Notifications: Sev 0/Default Alerters"
|
title: "Notifications: Sev 0/Default Alerters"
|
||||||
description: "Specify default alerters to enable for outbound notifications. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify default alerters to enable for outbound notifications. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev0AlertersParams:
|
additionalSev0AlertersParams:
|
||||||
@@ -214,14 +214,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalSev1Alerters:
|
additionalSev1Alerters:
|
||||||
title: "Notifications: Sev 1/Informational Alerters"
|
title: "Notifications: Sev 1/Informational Alerters"
|
||||||
description: "Specify specific alerters to use when alerting at the info severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify specific alerters to use when alerting at the info severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev1AlertersParams:
|
additionalSev1AlertersParams:
|
||||||
@@ -230,14 +230,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalSev2Alerters:
|
additionalSev2Alerters:
|
||||||
title: "Notifications: Sev 2/Low Alerters"
|
title: "Notifications: Sev 2/Low Alerters"
|
||||||
description: "Specify specific alerters to use when alerting at the low severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify specific alerters to use when alerting at the low severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev2AlertersParams:
|
additionalSev2AlertersParams:
|
||||||
@@ -246,14 +246,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalSev3Alerters:
|
additionalSev3Alerters:
|
||||||
title: "Notifications: Sev 3/Medium Alerters"
|
title: "Notifications: Sev 3/Medium Alerters"
|
||||||
description: "Specify specific alerters to use when alerting at the medium severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify specific alerters to use when alerting at the medium severity level or higher. These alerters will be used unless overridden by higher severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev3AlertersParams:
|
additionalSev3AlertersParams:
|
||||||
@@ -262,14 +262,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalSev4Alerters:
|
additionalSev4Alerters:
|
||||||
title: "Notifications: Sev 4/High Alerters"
|
title: "Notifications: Sev 4/High Alerters"
|
||||||
description: "Specify specific alerters to use when alerting at the high severity level or critical severity level. These alerters will be used unless overridden by critical severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify specific alerters to use when alerting at the high severity level or critical severity level. These alerters will be used unless overridden by critical severity alerter settings. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev4AlertersParams:
|
additionalSev4AlertersParams:
|
||||||
@@ -278,14 +278,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalSev5Alerters:
|
additionalSev5Alerters:
|
||||||
title: "Notifications: Sev 5/Critical Alerters"
|
title: "Notifications: Sev 5/Critical Alerters"
|
||||||
description: "Specify specific alerters to use when alerting at the critical severity level. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify specific alerters to use when alerting at the critical severity level. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
additionalSev5AlertersParams:
|
additionalSev5AlertersParams:
|
||||||
@@ -294,14 +294,14 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
additionalUserDefinedNotifications:
|
additionalUserDefinedNotifications:
|
||||||
customAlerters:
|
customAlerters:
|
||||||
description: "Specify custom notification alerters to use when the Sigma rule contains the following tag: so.alerters.customAlerters. This setting can be duplicated to create new custom alerter configurations. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
description: "Specify custom notification alerters to use when the Sigma rule contains the following tag: so.alerters.customAlerters. This setting can be duplicated to create new custom alerter configurations. Specify one alerter name (Ex: 'email') per line. Alerters refers to ElastAlert 2 alerters, as documented at https://elastalert2.readthedocs.io. A full update of the ElastAlert rule engine, via the Detections screen, is required in order to apply these changes. Requires a valid Security Onion license key."
|
||||||
global: True
|
global: True
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
multiline: True
|
multiline: True
|
||||||
@@ -310,7 +310,7 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
helpLink: notifications.html
|
helpLink: notifications
|
||||||
duplicates: True
|
duplicates: True
|
||||||
forcedType: string
|
forcedType: string
|
||||||
jinjaEscaped: True
|
jinjaEscaped: True
|
||||||
@@ -318,7 +318,7 @@ soc:
|
|||||||
default: &enabledSigmaRules
|
default: &enabledSigmaRules
|
||||||
description: 'Sigma rules to automatically enable on initial import. The format is a YAML list, with the ability to filter for ruleset, level, product, category and service. Refer to the documentation for further details. These will be applied based on role if defined and default if not.'
|
description: 'Sigma rules to automatically enable on initial import. The format is a YAML list, with the ability to filter for ruleset, level, product, category and service. Refer to the documentation for further details. These will be applied based on role if defined and default if not.'
|
||||||
global: True
|
global: True
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
multiline: True
|
multiline: True
|
||||||
syntax: yaml
|
syntax: yaml
|
||||||
forcedType: string
|
forcedType: string
|
||||||
@@ -330,7 +330,7 @@ soc:
|
|||||||
description: 'DEPRECATED: Will be removed in a future release - use enabledSigmaRules instead.'
|
description: 'DEPRECATED: Will be removed in a future release - use enabledSigmaRules instead.'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
so-eval: *autoEnabledSigmaRules
|
so-eval: *autoEnabledSigmaRules
|
||||||
so-import: *autoEnabledSigmaRules
|
so-import: *autoEnabledSigmaRules
|
||||||
autoUpdateEnabled:
|
autoUpdateEnabled:
|
||||||
@@ -341,7 +341,7 @@ soc:
|
|||||||
description: 'How often to check for new Sigma rules (in seconds). This applies to both Community Rule Packages and any configured Git repos.'
|
description: 'How often to check for new Sigma rules (in seconds). This applies to both Community Rule Packages and any configured Git repos.'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
integrityCheckFrequencySeconds:
|
integrityCheckFrequencySeconds:
|
||||||
description: 'How often the ElastAlert integrity checker runs (in seconds). This verifies the integrity of deployed rules.'
|
description: 'How often the ElastAlert integrity checker runs (in seconds). This verifies the integrity of deployed rules.'
|
||||||
global: True
|
global: True
|
||||||
@@ -352,7 +352,7 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
syntax: json
|
syntax: json
|
||||||
uiElements:
|
uiElements:
|
||||||
- field: rulesetName
|
- field: rulesetName
|
||||||
@@ -375,7 +375,7 @@ soc:
|
|||||||
description: 'Defines the Sigma Community Ruleset you want to run. One of these (core | core+ | core++ | all ) as well as an optional Add-on (emerging_threats_addon). Once you have changed the ruleset here, the new settings will be applied within 15 minutes. At that point, you will need to wait for the scheduled rule update to take place (by default, every 24 hours), or you can force the update by nagivating to Detections --> Options dropdown menu --> Elastalert --> Full Update. WARNING! Changing the ruleset will remove all existing non-overlapping Sigma rules of the previous ruleset and their associated overrides. This removal cannot be undone.'
|
description: 'Defines the Sigma Community Ruleset you want to run. One of these (core | core+ | core++ | all ) as well as an optional Add-on (emerging_threats_addon). Once you have changed the ruleset here, the new settings will be applied within 15 minutes. At that point, you will need to wait for the scheduled rule update to take place (by default, every 24 hours), or you can force the update by nagivating to Detections --> Options dropdown menu --> Elastalert --> Full Update. WARNING! Changing the ruleset will remove all existing non-overlapping Sigma rules of the previous ruleset and their associated overrides. This removal cannot be undone.'
|
||||||
global: True
|
global: True
|
||||||
advanced: False
|
advanced: False
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
elastic:
|
elastic:
|
||||||
index:
|
index:
|
||||||
description: Comma-separated list of indices or index patterns (wildcard "*" supported) that SOC will search for records.
|
description: Comma-separated list of indices or index patterns (wildcard "*" supported) that SOC will search for records.
|
||||||
@@ -484,12 +484,12 @@ soc:
|
|||||||
description: 'YARA rules to automatically enable on initial import. Format is $Ruleset - for example, for the default shipped ruleset: securityonion-yara'
|
description: 'YARA rules to automatically enable on initial import. Format is $Ruleset - for example, for the default shipped ruleset: securityonion-yara'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: sigma.html
|
helpLink: sigma
|
||||||
communityRulesImportFrequencySeconds:
|
communityRulesImportFrequencySeconds:
|
||||||
description: 'How often to check for new YARA rules (in seconds). This applies to both Community Rules and any configured Git repos.'
|
description: 'How often to check for new YARA rules (in seconds). This applies to both Community Rules and any configured Git repos.'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: yara.html
|
helpLink: yara
|
||||||
integrityCheckFrequencySeconds:
|
integrityCheckFrequencySeconds:
|
||||||
description: 'How often the Strelka integrity checker runs (in seconds). This verifies the integrity of deployed rules.'
|
description: 'How often the Strelka integrity checker runs (in seconds). This verifies the integrity of deployed rules.'
|
||||||
global: True
|
global: True
|
||||||
@@ -500,7 +500,7 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
helpLink: yara.html
|
helpLink: yara
|
||||||
syntax: json
|
syntax: json
|
||||||
uiElements:
|
uiElements:
|
||||||
- field: rulesetName
|
- field: rulesetName
|
||||||
@@ -543,7 +543,7 @@ soc:
|
|||||||
description: 'How often to check for new Suricata rules (in seconds).'
|
description: 'How often to check for new Suricata rules (in seconds).'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
disableRegex:
|
disableRegex:
|
||||||
description: A list of regular expressions used to automatically disable rules that match any of them. Each regular expression is tested against the rule's content.
|
description: A list of regular expressions used to automatically disable rules that match any of them. Each regular expression is tested against the rule's content.
|
||||||
global: True
|
global: True
|
||||||
@@ -562,20 +562,20 @@ soc:
|
|||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
ignoredSidRanges:
|
ignoredSidRanges:
|
||||||
description: 'List of Suricata SID ranges to ignore during the Integrity Check. This is useful for ignoring specific rules not governed by the UI. Each line should contain 1 range in the format "1100000-1200000". The ranges are treated as inclusive.'
|
description: 'List of Suricata SID ranges to ignore during the Integrity Check. This is useful for ignoring specific rules not governed by the UI. Each line should contain 1 range in the format "1100000-1200000". The ranges are treated as inclusive.'
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: detections.html#rule-engine-status
|
helpLink: detections#rule-engine-status
|
||||||
rulesetSources:
|
rulesetSources:
|
||||||
default: &serulesetSources
|
default: &serulesetSources
|
||||||
description: "Ruleset sources for Suricata rules. Supports URL downloads and local directories. Refer to the linked documentation for details on how to configure this setting."
|
description: "Ruleset sources for Suricata rules. Supports URL downloads and local directories. Refer to the linked documentation for details on how to configure this setting."
|
||||||
global: True
|
global: True
|
||||||
advanced: False
|
advanced: False
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
syntax: json
|
syntax: json
|
||||||
uiElements:
|
uiElements:
|
||||||
- field: name
|
- field: name
|
||||||
@@ -631,11 +631,11 @@ soc:
|
|||||||
intervalMinutes:
|
intervalMinutes:
|
||||||
description: How often to generate the Navigator Layers. (minutes)
|
description: How often to generate the Navigator Layers. (minutes)
|
||||||
global: True
|
global: True
|
||||||
helpLink: attack-navigator.html
|
helpLink: attack-navigator
|
||||||
lookbackDays:
|
lookbackDays:
|
||||||
description: How far back to search for ATT&CK-tagged alerts. (days)
|
description: How far back to search for ATT&CK-tagged alerts. (days)
|
||||||
global: True
|
global: True
|
||||||
helpLink: attack-navigator.html
|
helpLink: attack-navigator
|
||||||
playbook:
|
playbook:
|
||||||
playbookRepos:
|
playbookRepos:
|
||||||
default: &pbRepos
|
default: &pbRepos
|
||||||
@@ -670,7 +670,7 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
helpLink: assistant.html
|
helpLink: onion-ai
|
||||||
syntax: json
|
syntax: json
|
||||||
uiElements:
|
uiElements:
|
||||||
- field: name
|
- field: name
|
||||||
@@ -735,7 +735,7 @@ soc:
|
|||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
helpLink: assistant.html
|
helpLink: onion-ai
|
||||||
syntax: json
|
syntax: json
|
||||||
uiElements:
|
uiElements:
|
||||||
- field: id
|
- field: id
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -18,29 +18,35 @@ strelka_backend:
|
|||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/strelka/backend/:/etc/strelka/:ro
|
- /opt/so/conf/strelka/backend/:/etc/strelka/:ro
|
||||||
- /opt/so/conf/strelka/rules/compiled/:/etc/yara/:ro
|
- /opt/so/conf/strelka/rules/compiled/:/etc/yara/:ro
|
||||||
{% if DOCKER.containers['so-strelka-backend'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-backend'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-backend'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-backend'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- name: so-strelka-backend
|
- name: so-strelka-backend
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-backend'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-backend'].ip }}
|
||||||
- command: strelka-backend
|
- command: strelka-backend
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-backend'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-backend'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-backend'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-backend'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-strelka-backend'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-backend'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-backend'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-backend'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-backend'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-backend'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- restart_policy: on-failure
|
- restart_policy: on-failure
|
||||||
- watch:
|
- watch:
|
||||||
- file: strelkasensorcompiledrules
|
- file: strelkasensorcompiledrules
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -18,32 +18,38 @@ strelka_coordinator:
|
|||||||
- name: so-strelka-coordinator
|
- name: so-strelka-coordinator
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-coordinator'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-coordinator'].ip }}
|
||||||
- entrypoint: redis-server --save "" --appendonly no
|
- entrypoint: redis-server --save "" --appendonly no
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-coordinator'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-coordinator'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-coordinator'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-coordinator'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-strelka-coordinator'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-strelka-coordinator'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-strelka-coordinator'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-coordinator'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-coordinator'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-coordinator'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- binds:
|
- binds:
|
||||||
- /nsm/strelka/coord-redis-data:/data:rw
|
- /nsm/strelka/coord-redis-data:/data:rw
|
||||||
{% if DOCKER.containers['so-strelka-coordinator'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-coordinator'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-coordinator'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-coordinator'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-coordinator'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-coordinator'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
delete_so-strelka-coordinator_so-status.disabled:
|
delete_so-strelka-coordinator_so-status.disabled:
|
||||||
file.uncomment:
|
file.uncomment:
|
||||||
- name: /opt/so/conf/so-status/so-status.conf
|
- name: /opt/so/conf/so-status/so-status.conf
|
||||||
|
|||||||
@@ -47,12 +47,6 @@ filestream_config:
|
|||||||
FILESTREAMCONFIG: {{ STRELKAMERGED.filestream.config }}
|
FILESTREAMCONFIG: {{ STRELKAMERGED.filestream.config }}
|
||||||
|
|
||||||
# Filecheck Section
|
# Filecheck Section
|
||||||
{% if GLOBALS.os_family == 'Debian' %}
|
|
||||||
install_watchdog:
|
|
||||||
pkg.installed:
|
|
||||||
- name: python3-watchdog
|
|
||||||
|
|
||||||
{% elif GLOBALS.os_family == 'RedHat' %}
|
|
||||||
remove_old_watchdog:
|
remove_old_watchdog:
|
||||||
pkg.removed:
|
pkg.removed:
|
||||||
- name: python3-watchdog
|
- name: python3-watchdog
|
||||||
@@ -60,7 +54,6 @@ remove_old_watchdog:
|
|||||||
install_watchdog:
|
install_watchdog:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: securityonion-python39-watchdog
|
- name: securityonion-python39-watchdog
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
filecheck_logdir:
|
filecheck_logdir:
|
||||||
file.directory:
|
file.directory:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -18,29 +18,35 @@ strelka_filestream:
|
|||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/strelka/filestream/:/etc/strelka/:ro
|
- /opt/so/conf/strelka/filestream/:/etc/strelka/:ro
|
||||||
- /nsm/strelka:/nsm/strelka
|
- /nsm/strelka:/nsm/strelka
|
||||||
{% if DOCKER.containers['so-strelka-filestream'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-filestream'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-filestream'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-filestream'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- name: so-strelka-filestream
|
- name: so-strelka-filestream
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-filestream'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-filestream'].ip }}
|
||||||
- command: strelka-filestream
|
- command: strelka-filestream
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-filestream'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-filestream'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-filestream'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-filestream'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-strelka-filestream'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-filestream'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-filestream'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-filestream'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-filestream'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-filestream'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: filestream_config
|
- file: filestream_config
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -18,8 +18,8 @@ strelka_frontend:
|
|||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/strelka/frontend/:/etc/strelka/:ro
|
- /opt/so/conf/strelka/frontend/:/etc/strelka/:ro
|
||||||
- /nsm/strelka/log/:/var/log/strelka/:rw
|
- /nsm/strelka/log/:/var/log/strelka/:rw
|
||||||
{% if DOCKER.containers['so-strelka-frontend'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-frontend'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-frontend'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-frontend'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -27,25 +27,31 @@ strelka_frontend:
|
|||||||
- name: so-strelka-frontend
|
- name: so-strelka-frontend
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-frontend'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-frontend'].ip }}
|
||||||
- command: strelka-frontend
|
- command: strelka-frontend
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-frontend'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-frontend'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-frontend'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-frontend'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-strelka-frontend'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-strelka-frontend'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if DOCKER.containers['so-strelka-frontend'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-frontend'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-frontend'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-frontend'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-frontend'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-frontend'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: frontend_config
|
- file: frontend_config
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -18,32 +18,38 @@ strelka_gatekeeper:
|
|||||||
- name: so-strelka-gatekeeper
|
- name: so-strelka-gatekeeper
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-gatekeeper'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-gatekeeper'].ip }}
|
||||||
- entrypoint: redis-server --save "" --appendonly no --maxmemory-policy allkeys-lru
|
- entrypoint: redis-server --save "" --appendonly no --maxmemory-policy allkeys-lru
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-gatekeeper'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-gatekeeper'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-gatekeeper'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-gatekeeper'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- port_bindings:
|
- port_bindings:
|
||||||
{% for BINDING in DOCKER.containers['so-strelka-gatekeeper'].port_bindings %}
|
{% for BINDING in DOCKERMERGED.containers['so-strelka-gatekeeper'].port_bindings %}
|
||||||
- {{ BINDING }}
|
- {{ BINDING }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
- binds:
|
- binds:
|
||||||
- /nsm/strelka/gk-redis-data:/data:rw
|
- /nsm/strelka/gk-redis-data:/data:rw
|
||||||
{% if DOCKER.containers['so-strelka-gatekeeper'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-gatekeeper'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-gatekeeper'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-gatekeeper'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-strelka-gatekeeper'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-gatekeeper'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-gatekeeper'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-gatekeeper'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-gatekeeper'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-gatekeeper'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
delete_so-strelka-gatekeeper_so-status.disabled:
|
delete_so-strelka-gatekeeper_so-status.disabled:
|
||||||
file.uncomment:
|
file.uncomment:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -17,29 +17,35 @@ strelka_manager:
|
|||||||
- image: {{ GLOBALS.registry_host }}:5000/{{ GLOBALS.image_repo }}/so-strelka-manager:{{ GLOBALS.so_version }}
|
- image: {{ GLOBALS.registry_host }}:5000/{{ GLOBALS.image_repo }}/so-strelka-manager:{{ GLOBALS.so_version }}
|
||||||
- binds:
|
- binds:
|
||||||
- /opt/so/conf/strelka/manager/:/etc/strelka/:ro
|
- /opt/so/conf/strelka/manager/:/etc/strelka/:ro
|
||||||
{% if DOCKER.containers['so-strelka-manager'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-strelka-manager'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-strelka-manager'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-strelka-manager'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- name: so-strelka-manager
|
- name: so-strelka-manager
|
||||||
- networks:
|
- networks:
|
||||||
- sobridge:
|
- sobridge:
|
||||||
- ipv4_address: {{ DOCKER.containers['so-strelka-manager'].ip }}
|
- ipv4_address: {{ DOCKERMERGED.containers['so-strelka-manager'].ip }}
|
||||||
- command: strelka-manager
|
- command: strelka-manager
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
- {{ GLOBALS.hostname }}:{{ GLOBALS.node_ip }}
|
||||||
{% if DOCKER.containers['so-strelka-manager'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-strelka-manager'].extra_hosts %}
|
||||||
{% for XTRAHOST in DOCKER.containers['so-strelka-manager'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-strelka-manager'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-strelka-manager'].extra_env %}
|
{% if DOCKERMERGED.containers['so-strelka-manager'].extra_env %}
|
||||||
- environment:
|
- environment:
|
||||||
{% for XTRAENV in DOCKER.containers['so-strelka-manager'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-strelka-manager'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-strelka-manager'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-strelka-manager'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: manager_config
|
- file: manager_config
|
||||||
|
|
||||||
|
|||||||
@@ -2,73 +2,73 @@ strelka:
|
|||||||
backend:
|
backend:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Strelka file analysis process.
|
description: Enables or disables the Strelka file analysis process.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
config:
|
config:
|
||||||
backend:
|
backend:
|
||||||
logging_cfg:
|
logging_cfg:
|
||||||
description: Path to the Python logging configuration.
|
description: Path to the Python logging configuration.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
limits:
|
limits:
|
||||||
max_files:
|
max_files:
|
||||||
description: Number of files the backend will process before shutting down.
|
description: Number of files the backend will process before shutting down.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
time_to_live:
|
time_to_live:
|
||||||
description: Amount of time (in seconds) that the backend will run before shutting down (0 to disable).
|
description: Amount of time (in seconds) that the backend will run before shutting down (0 to disable).
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
max_depth:
|
max_depth:
|
||||||
description: Maximum depth that extracted files will be processed by the backend.
|
description: Maximum depth that extracted files will be processed by the backend.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
distribution:
|
distribution:
|
||||||
description: Amount of time (in seconds) that a single file can be distributed to all scanners.
|
description: Amount of time (in seconds) that a single file can be distributed to all scanners.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
scanner:
|
scanner:
|
||||||
description: Amount of time (in seconds) that a scanner can spend scanning a file (can be overridden per scanner).
|
description: Amount of time (in seconds) that a scanner can spend scanning a file (can be overridden per scanner).
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
coordinator:
|
coordinator:
|
||||||
addr:
|
addr:
|
||||||
description: Network address of the coordinator.
|
description: Network address of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
db:
|
db:
|
||||||
description: Redis database of the coordinator.
|
description: Redis database of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
tasting:
|
tasting:
|
||||||
mime_db:
|
mime_db:
|
||||||
description: Location of the MIME database used to taste files.
|
description: Location of the MIME database used to taste files.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
yara_rules:
|
yara_rules:
|
||||||
description: Location of the directory of YARA files that contains rules used to taste files.
|
description: Location of the directory of YARA files that contains rules used to taste files.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
scanners:
|
scanners:
|
||||||
'ScanBase64PE': &scannerOptions
|
'ScanBase64PE': &scannerOptions
|
||||||
description: Configuration options for this scanner.
|
description: Configuration options for this scanner.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: "[]{}"
|
forcedType: "[]{}"
|
||||||
syntax: json
|
syntax: json
|
||||||
@@ -139,7 +139,7 @@ strelka:
|
|||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
formatters:
|
formatters:
|
||||||
simple:
|
simple:
|
||||||
@@ -147,13 +147,13 @@ strelka:
|
|||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
datefmt:
|
datefmt:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
handlers:
|
handlers:
|
||||||
console:
|
console:
|
||||||
@@ -161,32 +161,32 @@ strelka:
|
|||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
formatter:
|
formatter:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
stream:
|
stream:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
root:
|
root:
|
||||||
level:
|
level:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
handlers:
|
handlers:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
loggers:
|
loggers:
|
||||||
OpenSSL:
|
OpenSSL:
|
||||||
@@ -194,425 +194,425 @@ strelka:
|
|||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
bs4:
|
bs4:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
bz2:
|
bz2:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
chardet:
|
chardet:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
docx:
|
docx:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
elftools:
|
elftools:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
email:
|
email:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
entropy:
|
entropy:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
esprima:
|
esprima:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
gzip:
|
gzip:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
hashlib:
|
hashlib:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
json:
|
json:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
libarchive:
|
libarchive:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
lxml:
|
lxml:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
lzma:
|
lzma:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
macholibre:
|
macholibre:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
olefile:
|
olefile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
oletools:
|
oletools:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
pdfminer:
|
pdfminer:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
pefile:
|
pefile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
pgpdump:
|
pgpdump:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
pygments:
|
pygments:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
pylzma:
|
pylzma:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
rarfile:
|
rarfile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
requests:
|
requests:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
rpmfile:
|
rpmfile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
ssdeep:
|
ssdeep:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
tarfile:
|
tarfile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
tnefparse:
|
tnefparse:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
yara:
|
yara:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
zipfile:
|
zipfile:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
zlib:
|
zlib:
|
||||||
propagate:
|
propagate:
|
||||||
description: This is an advanced option for Strelka logging.
|
description: This is an advanced option for Strelka logging.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
passwords:
|
passwords:
|
||||||
description: Passwords that will be stored in the password_file used in scanner options.
|
description: Passwords that will be stored in the password_file used in scanner options.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
multiline: True
|
multiline: True
|
||||||
filestream:
|
filestream:
|
||||||
enabled:
|
enabled:
|
||||||
description: You can enable or disable Strelka filestream.
|
description: You can enable or disable Strelka filestream.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
config:
|
config:
|
||||||
conn:
|
conn:
|
||||||
server:
|
server:
|
||||||
description: Network address of the frontend server.
|
description: Network address of the frontend server.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
cert:
|
cert:
|
||||||
description: Local path to the frontend SSL server certificate.
|
description: Local path to the frontend SSL server certificate.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
timeout:
|
timeout:
|
||||||
dial:
|
dial:
|
||||||
description: Amount of time to wait for the client to dial the server.
|
description: Amount of time to wait for the client to dial the server.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
file:
|
file:
|
||||||
description: Amount of time to wait for an individual file to complete a scan.
|
description: Amount of time to wait for an individual file to complete a scan.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
throughput:
|
throughput:
|
||||||
concurrency:
|
concurrency:
|
||||||
description: Number of concurrent requests to make.
|
description: Number of concurrent requests to make.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
chunk:
|
chunk:
|
||||||
description: Size of file chunks that will be sent to the frontend server.
|
description: Size of file chunks that will be sent to the frontend server.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
delay:
|
delay:
|
||||||
description: Artificial sleep between the submission of each chunk.
|
description: Artificial sleep between the submission of each chunk.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
files:
|
files:
|
||||||
patterns:
|
patterns:
|
||||||
description: List of glob patterns that determine which files will be sent for scanning.
|
description: List of glob patterns that determine which files will be sent for scanning.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
delete:
|
delete:
|
||||||
description: Boolean that determines if files should be deleted after being sent for scanning.
|
description: Boolean that determines if files should be deleted after being sent for scanning.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
gatekeeper:
|
gatekeeper:
|
||||||
description: Boolean that determines if events should be pulled from the temporary event cache.
|
description: Boolean that determines if events should be pulled from the temporary event cache.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
processed:
|
processed:
|
||||||
description: Directory where files will be moved after being submitted for scanning.
|
description: Directory where files will be moved after being submitted for scanning.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
response:
|
response:
|
||||||
report:
|
report:
|
||||||
description: Frequency at which the frontend reports the number of files processed.
|
description: Frequency at which the frontend reports the number of files processed.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
delta:
|
delta:
|
||||||
description: Time value that determines how much time must pass since a file was last modified before it is sent for scanning.
|
description: Time value that determines how much time must pass since a file was last modified before it is sent for scanning.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
staging:
|
staging:
|
||||||
description: Directory where files are staged before being sent to the cluster.
|
description: Directory where files are staged before being sent to the cluster.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
frontend:
|
frontend:
|
||||||
enabled:
|
enabled:
|
||||||
description: You can enable or disable Strelka frontend.
|
description: You can enable or disable Strelka frontend.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
config:
|
config:
|
||||||
server:
|
server:
|
||||||
description: Network address of the frontend server.
|
description: Network address of the frontend server.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
coordinator:
|
coordinator:
|
||||||
addr:
|
addr:
|
||||||
description: Network address of the coordinator.
|
description: Network address of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
db:
|
db:
|
||||||
description: Redis database of the coordinator.
|
description: Redis database of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
gatekeeper:
|
gatekeeper:
|
||||||
addr:
|
addr:
|
||||||
description: Network address of the gatekeeper.
|
description: Network address of the gatekeeper.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
db:
|
db:
|
||||||
description: Redis database of the gatekeeper.
|
description: Redis database of the gatekeeper.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
ttl:
|
ttl:
|
||||||
description: Time-to-live for events added to the gatekeeper.
|
description: Time-to-live for events added to the gatekeeper.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
response:
|
response:
|
||||||
log:
|
log:
|
||||||
description: Location where worker scan results are logged to.
|
description: Location where worker scan results are logged to.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
manager:
|
manager:
|
||||||
enabled:
|
enabled:
|
||||||
description: You can enable or disable Strelka manager.
|
description: You can enable or disable Strelka manager.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
config:
|
config:
|
||||||
coordinator:
|
coordinator:
|
||||||
addr:
|
addr:
|
||||||
description: Network address of the coordinator.
|
description: Network address of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
db:
|
db:
|
||||||
description: Redis database of the coordinator.
|
description: Redis database of the coordinator.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
coordinator:
|
coordinator:
|
||||||
enabled:
|
enabled:
|
||||||
description: You can enable or disable Strelka coordinator.
|
description: You can enable or disable Strelka coordinator.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
gatekeeper:
|
gatekeeper:
|
||||||
enabled:
|
enabled:
|
||||||
description: You can enable or disable Strelka gatekeeper.
|
description: You can enable or disable Strelka gatekeeper.
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
rules:
|
rules:
|
||||||
enabled:
|
enabled:
|
||||||
description: Boolean that determines if yara rules sync from the Salt manager to the backend nodes.
|
description: Boolean that determines if yara rules sync from the Salt manager to the backend nodes.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: False
|
advanced: False
|
||||||
filecheck:
|
filecheck:
|
||||||
historypath:
|
historypath:
|
||||||
description: The path for previously scanned files.
|
description: The path for previously scanned files.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
strelkapath:
|
strelkapath:
|
||||||
description: The path for unprocessed files.
|
description: The path for unprocessed files.
|
||||||
readonly: True
|
readonly: True
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
logfile:
|
logfile:
|
||||||
description: The path for the filecheck log.
|
description: The path for the filecheck log.
|
||||||
readonly: False
|
readonly: False
|
||||||
global: False
|
global: False
|
||||||
helpLink: strelka.html
|
helpLink: strelka
|
||||||
advanced: True
|
advanced: True
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'suricata/map.jinja' import SURICATAMERGED %}
|
{% from 'suricata/map.jinja' import SURICATAMERGED %}
|
||||||
|
|
||||||
|
|
||||||
@@ -20,16 +20,15 @@ so-suricata:
|
|||||||
- privileged: True
|
- privileged: True
|
||||||
- environment:
|
- environment:
|
||||||
- INTERFACE={{ GLOBALS.sensor.interface }}
|
- INTERFACE={{ GLOBALS.sensor.interface }}
|
||||||
{% if DOCKER.containers['so-suricata'].extra_env %}
|
{% if DOCKERMERGED.containers['so-suricata'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-suricata'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-suricata'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{# we look at SURICATAMERGED.config['af-packet'][0] since we only allow one interface and therefore always the first list item #}
|
{% if DOCKERMERGED.containers['so-suricata'].ulimits %}
|
||||||
{% if SURICATAMERGED.config['af-packet'][0]['mmap-locked'] == "yes" and DOCKER.containers['so-suricata'].ulimits %}
|
|
||||||
- ulimits:
|
- ulimits:
|
||||||
{% for ULIMIT in DOCKER.containers['so-suricata'].ulimits %}
|
{% for ULIMIT in DOCKERMERGED.containers['so-suricata'].ulimits %}
|
||||||
- {{ ULIMIT }}
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- binds:
|
- binds:
|
||||||
@@ -42,15 +41,15 @@ so-suricata:
|
|||||||
- /nsm/suricata/extracted:/var/log/suricata//filestore:rw
|
- /nsm/suricata/extracted:/var/log/suricata//filestore:rw
|
||||||
- /opt/so/conf/suricata/bpf:/etc/suricata/bpf:ro
|
- /opt/so/conf/suricata/bpf:/etc/suricata/bpf:ro
|
||||||
- /nsm/suripcap/:/nsm/suripcap:rw
|
- /nsm/suripcap/:/nsm/suripcap:rw
|
||||||
{% if DOCKER.containers['so-suricata'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-suricata'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-suricata'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-suricata'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- network_mode: host
|
- network_mode: host
|
||||||
{% if DOCKER.containers['so-suricata'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-suricata'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-suricata'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-suricata'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
0
salt/suricata/rules/.gitkeep
Normal file
0
salt/suricata/rules/.gitkeep
Normal file
@@ -1,7 +1,7 @@
|
|||||||
suricata:
|
suricata:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Suricata process. This process is used for triggering alerts and optionally for protocol metadata collection and full packet capture.
|
description: Enables or disables the Suricata process. This process is used for triggering alerts and optionally for protocol metadata collection and full packet capture.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
thresholding:
|
thresholding:
|
||||||
sids__yaml:
|
sids__yaml:
|
||||||
description: Threshold SIDS List. This setting is readonly; Use the Detections screen to modify rules.
|
description: Threshold SIDS List. This setting is readonly; Use the Detections screen to modify rules.
|
||||||
@@ -10,7 +10,7 @@ suricata:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
title: SIDS
|
title: SIDS
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
readonlyUi: True
|
readonlyUi: True
|
||||||
advanced: True
|
advanced: True
|
||||||
classification:
|
classification:
|
||||||
@@ -20,64 +20,64 @@ suricata:
|
|||||||
global: True
|
global: True
|
||||||
multiline: True
|
multiline: True
|
||||||
title: Classifications
|
title: Classifications
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
pcap:
|
pcap:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enables or disables the Suricata packet recording process.
|
description: Enables or disables the Suricata packet recording process.
|
||||||
forcedType: bool
|
forcedType: bool
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
filesize:
|
filesize:
|
||||||
description: Maximum file size for individual PCAP files written by Suricata. Increasing this number could improve write performance at the expense of pcap retrieval time.
|
description: Maximum file size for individual PCAP files written by Suricata. Increasing this number could improve write performance at the expense of pcap retrieval time.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
maxsize:
|
maxsize:
|
||||||
description: Maximum size in GB for total disk usage of all PCAP files written by Suricata.
|
description: Maximum size in GB for total disk usage of all PCAP files written by Suricata.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
compression:
|
compression:
|
||||||
description: Enable compression of Suricata PCAP files.
|
description: Enable compression of Suricata PCAP files.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
lz4-checksum:
|
lz4-checksum:
|
||||||
description: Enable PCAP lz4 checksum.
|
description: Enable PCAP lz4 checksum.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
lz4-level:
|
lz4-level:
|
||||||
description: lz4 compression level of PCAP files. Set to 0 for no compression. Set to 16 for maximum compression.
|
description: lz4 compression level of PCAP files. Set to 0 for no compression. Set to 16 for maximum compression.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
filename:
|
filename:
|
||||||
description: Filename output for Suricata PCAP files.
|
description: Filename output for Suricata PCAP files.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
mode:
|
mode:
|
||||||
description: Suricata PCAP mode. Currently only multi is supported.
|
description: Suricata PCAP mode. Currently only multi is supported.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
use-stream-depth:
|
use-stream-depth:
|
||||||
description: Set to "no" to ignore the stream depth and capture the entire flow. Set to "yes" to truncate the flow based on the stream depth.
|
description: Set to "no" to ignore the stream depth and capture the entire flow. Set to "yes" to truncate the flow based on the stream depth.
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(yes|no)$
|
regex: ^(yes|no)$
|
||||||
regexFailureMessage: You must enter either yes or no.
|
regexFailureMessage: You must enter either yes or no.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
conditional:
|
conditional:
|
||||||
description: Set to "all" to record PCAP for all flows. Set to "alerts" to only record PCAP for Suricata alerts. Set to "tag" to only record PCAP for tagged rules.
|
description: Set to "all" to record PCAP for all flows. Set to "alerts" to only record PCAP for Suricata alerts. Set to "tag" to only record PCAP for tagged rules.
|
||||||
regex: ^(all|alerts|tag)$
|
regex: ^(all|alerts|tag)$
|
||||||
regexFailureMessage: You must enter either all, alert or tag.
|
regexFailureMessage: You must enter either all, alert or tag.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
dir:
|
dir:
|
||||||
description: Parent directory to store PCAP.
|
description: Parent directory to store PCAP.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
config:
|
config:
|
||||||
af-packet:
|
af-packet:
|
||||||
interface:
|
interface:
|
||||||
description: The network interface that Suricata will monitor. This is set under sensor > interface.
|
description: The network interface that Suricata will monitor. This is set under sensor > interface.
|
||||||
advanced: True
|
advanced: True
|
||||||
readonly: True
|
readonly: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
cluster-id:
|
cluster-id:
|
||||||
advanced: True
|
advanced: True
|
||||||
cluster-type:
|
cluster-type:
|
||||||
@@ -93,10 +93,10 @@ suricata:
|
|||||||
description: Prevent swapping by locking the memory map.
|
description: Prevent swapping by locking the memory map.
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(yes|no)$
|
regex: ^(yes|no)$
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
threads:
|
threads:
|
||||||
description: The amount of worker threads.
|
description: The amount of worker threads.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
forcedType: int
|
forcedType: int
|
||||||
tpacket-v3:
|
tpacket-v3:
|
||||||
advanced: True
|
advanced: True
|
||||||
@@ -104,54 +104,54 @@ suricata:
|
|||||||
ring-size:
|
ring-size:
|
||||||
description: Buffer size for packets per thread.
|
description: Buffer size for packets per thread.
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
block-size:
|
block-size:
|
||||||
description: This must be configured to a sufficiently high value to accommodate a significant number of packets, considering byte size and MTU constraints. Ensure it aligns with a power of 2 and is a multiple of the page size.
|
description: This must be configured to a sufficiently high value to accommodate a significant number of packets, considering byte size and MTU constraints. Ensure it aligns with a power of 2 and is a multiple of the page size.
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
block-timeout:
|
block-timeout:
|
||||||
description: If a block remains unfilled after the specified block-timeout milliseconds, it is passed to userspace.
|
description: If a block remains unfilled after the specified block-timeout milliseconds, it is passed to userspace.
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
use-emergency-flush:
|
use-emergency-flush:
|
||||||
description: In high-traffic environments, enabling this option to 'yes' aids in recovering from packet drop occurrences. However, it may lead to some packets, possibly at max ring flush, not being inspected.
|
description: In high-traffic environments, enabling this option to 'yes' aids in recovering from packet drop occurrences. However, it may lead to some packets, possibly at max ring flush, not being inspected.
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(yes|no)$
|
regex: ^(yes|no)$
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
buffer-size:
|
buffer-size:
|
||||||
description: Increasing the value of the receive buffer may improve performance.
|
description: Increasing the value of the receive buffer may improve performance.
|
||||||
advanced: True
|
advanced: True
|
||||||
forcedType: int
|
forcedType: int
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
disable-promisc:
|
disable-promisc:
|
||||||
description: Promiscuous mode can be disabled by setting this to "yes".
|
description: Promiscuous mode can be disabled by setting this to "yes".
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(yes|no)$
|
regex: ^(yes|no)$
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
checksum-checks:
|
checksum-checks:
|
||||||
description: "Opt for the checksum verification mode suitable for the interface. During capture, it's possible that some packets may exhibit invalid checksums due to the network card handling the checksum computation. You have several options: 'kernel': Relies on indications sent by the kernel for each packet (default). 'yes': Enforces checksum validation. 'no': Disables checksum validation. 'auto': Suricata employs a statistical approach to detect checksum offloading."
|
description: "Opt for the checksum verification mode suitable for the interface. During capture, it's possible that some packets may exhibit invalid checksums due to the network card handling the checksum computation. You have several options: 'kernel': Relies on indications sent by the kernel for each packet (default). 'yes': Enforces checksum validation. 'no': Disables checksum validation. 'auto': Suricata employs a statistical approach to detect checksum offloading."
|
||||||
advanced: True
|
advanced: True
|
||||||
regex: ^(kernel|yes|no|auto)$
|
regex: ^(kernel|yes|no|auto)$
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
threading:
|
threading:
|
||||||
set-cpu-affinity:
|
set-cpu-affinity:
|
||||||
description: Bind(yes) or unbind(no) management and worker threads to a core or range of cores.
|
description: Bind(yes) or unbind(no) management and worker threads to a core or range of cores.
|
||||||
regex: ^(yes|no)$
|
regex: ^(yes|no)$
|
||||||
regexFailureMessage: You must enter either yes or no.
|
regexFailureMessage: You must enter either yes or no.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
cpu-affinity:
|
cpu-affinity:
|
||||||
management-cpu-set:
|
management-cpu-set:
|
||||||
cpu:
|
cpu:
|
||||||
description: Bind management threads to a core or range of cores. This can be a sigle core, list of cores, or list of range of cores. set-cpu-affinity must be set to 'yes' for this to be used.
|
description: Bind management threads to a core or range of cores. This can be a sigle core, list of cores, or list of range of cores. set-cpu-affinity must be set to 'yes' for this to be used.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
worker-cpu-set:
|
worker-cpu-set:
|
||||||
cpu:
|
cpu:
|
||||||
description: Bind worker threads to a core or range of cores. This can be a sigle core, list of cores, or list of range of cores. set-cpu-affinity must be set to 'yes' for this to be used.
|
description: Bind worker threads to a core or range of cores. This can be a sigle core, list of cores, or list of range of cores. set-cpu-affinity must be set to 'yes' for this to be used.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
vars:
|
vars:
|
||||||
address-groups:
|
address-groups:
|
||||||
HOME_NET:
|
HOME_NET:
|
||||||
@@ -160,12 +160,12 @@ suricata:
|
|||||||
regexFailureMessage: You must enter a valid IP address or CIDR.
|
regexFailureMessage: You must enter a valid IP address or CIDR.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
EXTERNAL_NET: &suriaddressgroup
|
EXTERNAL_NET: &suriaddressgroup
|
||||||
description: Assign a list of hosts, or networks, or other customization, to this Suricata variable. The variable can then be re-used within Suricata rules. This allows for a single adjustment to the variable that will then affect all rules referencing the variable.
|
description: Assign a list of hosts, or networks, or other customization, to this Suricata variable. The variable can then be re-used within Suricata rules. This allows for a single adjustment to the variable that will then affect all rules referencing the variable.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
HTTP_SERVERS: *suriaddressgroup
|
HTTP_SERVERS: *suriaddressgroup
|
||||||
SMTP_SERVERS: *suriaddressgroup
|
SMTP_SERVERS: *suriaddressgroup
|
||||||
SQL_SERVERS: *suriaddressgroup
|
SQL_SERVERS: *suriaddressgroup
|
||||||
@@ -184,7 +184,7 @@ suricata:
|
|||||||
description: Assign a list of network port numbers to this Suricata variable. The variable can then be re-used within Suricata rules. This allows for a single adjustment to the variable that will then affect all rules referencing the variable.
|
description: Assign a list of network port numbers to this Suricata variable. The variable can then be re-used within Suricata rules. This allows for a single adjustment to the variable that will then affect all rules referencing the variable.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
duplicates: True
|
duplicates: True
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
SHELLCODE_PORTS: *suriportgroup
|
SHELLCODE_PORTS: *suriportgroup
|
||||||
ORACLE_PORTS: *suriportgroup
|
ORACLE_PORTS: *suriportgroup
|
||||||
SSH_PORTS: *suriportgroup
|
SSH_PORTS: *suriportgroup
|
||||||
@@ -203,104 +203,104 @@ suricata:
|
|||||||
xff:
|
xff:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable X-Forward-For support.
|
description: Enable X-Forward-For support.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
mode:
|
mode:
|
||||||
description: Operation mode. This should always be extra-data if you use PCAP.
|
description: Operation mode. This should always be extra-data if you use PCAP.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
deployment:
|
deployment:
|
||||||
description: forward would use the first IP address and reverse would use the last.
|
description: forward would use the first IP address and reverse would use the last.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
header:
|
header:
|
||||||
description: Header name where the actual IP address will be reported.
|
description: Header name where the actual IP address will be reported.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
asn1-max-frames:
|
asn1-max-frames:
|
||||||
description: Maximum nuber of asn1 frames to decode.
|
description: Maximum nuber of asn1 frames to decode.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
max-pending-packets:
|
max-pending-packets:
|
||||||
description: Number of packets preallocated per thread.
|
description: Number of packets preallocated per thread.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
default-packet-size:
|
default-packet-size:
|
||||||
description: Preallocated size for each packet.
|
description: Preallocated size for each packet.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
pcre:
|
pcre:
|
||||||
match-limit:
|
match-limit:
|
||||||
description: Match limit for PCRE.
|
description: Match limit for PCRE.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
match-limit-recursion:
|
match-limit-recursion:
|
||||||
description: Recursion limit for PCRE.
|
description: Recursion limit for PCRE.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
defrag:
|
defrag:
|
||||||
memcap:
|
memcap:
|
||||||
description: Max memory to use for defrag. You should only change this if you know what you are doing.
|
description: Max memory to use for defrag. You should only change this if you know what you are doing.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
hash-size:
|
hash-size:
|
||||||
description: Hash size
|
description: Hash size
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
trackers:
|
trackers:
|
||||||
description: Number of defragmented flows to follow.
|
description: Number of defragmented flows to follow.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
max-frags:
|
max-frags:
|
||||||
description: Max number of fragments to keep
|
description: Max number of fragments to keep
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
prealloc:
|
prealloc:
|
||||||
description: Preallocate memory.
|
description: Preallocate memory.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
timeout:
|
timeout:
|
||||||
description: Timeout value.
|
description: Timeout value.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
flow:
|
flow:
|
||||||
memcap:
|
memcap:
|
||||||
description: Reserverd memory for flows.
|
description: Reserverd memory for flows.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
hash-size:
|
hash-size:
|
||||||
description: Determines the size of the hash used to identify flows inside the engine.
|
description: Determines the size of the hash used to identify flows inside the engine.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
prealloc:
|
prealloc:
|
||||||
description: Number of preallocated flows.
|
description: Number of preallocated flows.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
stream:
|
stream:
|
||||||
memcap:
|
memcap:
|
||||||
description: Can be specified in kb,mb,gb.
|
description: Can be specified in kb,mb,gb.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
checksum-validation:
|
checksum-validation:
|
||||||
description: Validate checksum of packets.
|
description: Validate checksum of packets.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
reassembly:
|
reassembly:
|
||||||
memcap:
|
memcap:
|
||||||
description: Can be specified in kb,mb,gb.
|
description: Can be specified in kb,mb,gb.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
depth:
|
depth:
|
||||||
description: Controls how far into a stream that reassembly is done.
|
description: Controls how far into a stream that reassembly is done.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
host:
|
host:
|
||||||
hash-size:
|
hash-size:
|
||||||
description: Hash size in bytes.
|
description: Hash size in bytes.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
prealloc:
|
prealloc:
|
||||||
description: How many streams to preallocate.
|
description: How many streams to preallocate.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
memcap:
|
memcap:
|
||||||
description: Memory settings for host.
|
description: Memory settings for host.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
decoder:
|
decoder:
|
||||||
teredo:
|
teredo:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable TEREDO capabilities
|
description: Enable TEREDO capabilities
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
ports:
|
ports:
|
||||||
description: Ports to listen for. This should be a variable.
|
description: Ports to listen for. This should be a variable.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
vxlan:
|
vxlan:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable VXLAN capabilities.
|
description: Enable VXLAN capabilities.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
ports:
|
ports:
|
||||||
description: Ports to listen for. This should be a variable.
|
description: Ports to listen for. This should be a variable.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
geneve:
|
geneve:
|
||||||
enabled:
|
enabled:
|
||||||
description: Enable VXLAN capabilities.
|
description: Enable VXLAN capabilities.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
ports:
|
ports:
|
||||||
description: Ports to listen for. This should be a variable.
|
description: Ports to listen for. This should be a variable.
|
||||||
helpLink: suricata.html
|
helpLink: suricata
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% from 'allowed_states.map.jinja' import allowed_states %}
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
||||||
{% if sls.split('.')[0] in allowed_states %}
|
{% if sls.split('.')[0] in allowed_states %}
|
||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKERMERGED %}
|
||||||
{% from 'telegraf/map.jinja' import TELEGRAFMERGED %}
|
{% from 'telegraf/map.jinja' import TELEGRAFMERGED %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -25,8 +25,8 @@ so-telegraf:
|
|||||||
- HOST_SYS=/host/sys
|
- HOST_SYS=/host/sys
|
||||||
- HOST_MOUNT_PREFIX=/host
|
- HOST_MOUNT_PREFIX=/host
|
||||||
- GODEBUG=x509ignoreCN=0
|
- GODEBUG=x509ignoreCN=0
|
||||||
{% if DOCKER.containers['so-telegraf'].extra_env %}
|
{% if DOCKERMERGED.containers['so-telegraf'].extra_env %}
|
||||||
{% for XTRAENV in DOCKER.containers['so-telegraf'].extra_env %}
|
{% for XTRAENV in DOCKERMERGED.containers['so-telegraf'].extra_env %}
|
||||||
- {{ XTRAENV }}
|
- {{ XTRAENV }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -55,17 +55,23 @@ so-telegraf:
|
|||||||
{% if GLOBALS.is_manager or GLOBALS.role == 'so-heavynode' %}
|
{% if GLOBALS.is_manager or GLOBALS.role == 'so-heavynode' %}
|
||||||
- /opt/so/conf/telegraf/etc/escurl.config:/etc/telegraf/elasticsearch.config:ro
|
- /opt/so/conf/telegraf/etc/escurl.config:/etc/telegraf/elasticsearch.config:ro
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-telegraf'].custom_bind_mounts %}
|
{% if DOCKERMERGED.containers['so-telegraf'].custom_bind_mounts %}
|
||||||
{% for BIND in DOCKER.containers['so-telegraf'].custom_bind_mounts %}
|
{% for BIND in DOCKERMERGED.containers['so-telegraf'].custom_bind_mounts %}
|
||||||
- {{ BIND }}
|
- {{ BIND }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if DOCKER.containers['so-telegraf'].extra_hosts %}
|
{% if DOCKERMERGED.containers['so-telegraf'].extra_hosts %}
|
||||||
- extra_hosts:
|
- extra_hosts:
|
||||||
{% for XTRAHOST in DOCKER.containers['so-telegraf'].extra_hosts %}
|
{% for XTRAHOST in DOCKERMERGED.containers['so-telegraf'].extra_hosts %}
|
||||||
- {{ XTRAHOST }}
|
- {{ XTRAHOST }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if DOCKERMERGED.containers['so-telegraf'].ulimits %}
|
||||||
|
- ulimits:
|
||||||
|
{% for ULIMIT in DOCKERMERGED.containers['so-telegraf'].ulimits %}
|
||||||
|
- {{ ULIMIT.name }}={{ ULIMIT.soft }}:{{ ULIMIT.hard }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: trusttheca
|
- file: trusttheca
|
||||||
- x509: telegraf_crt
|
- x509: telegraf_crt
|
||||||
|
|||||||
@@ -2,54 +2,54 @@ telegraf:
|
|||||||
enabled:
|
enabled:
|
||||||
description: Enables the grid metrics collection process. WARNING - Security Onion grid health monitoring requires this process to remain enabled. Disabling it will cause unexpected and unsupported results.
|
description: Enables the grid metrics collection process. WARNING - Security Onion grid health monitoring requires this process to remain enabled. Disabling it will cause unexpected and unsupported results.
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
config:
|
config:
|
||||||
interval:
|
interval:
|
||||||
description: Data collection interval.
|
description: Data collection interval.
|
||||||
global: True
|
global: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
metric_batch_size:
|
metric_batch_size:
|
||||||
description: Data collection batch size.
|
description: Data collection batch size.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
metric_buffer_limit:
|
metric_buffer_limit:
|
||||||
description: Data collection buffer size.
|
description: Data collection buffer size.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
collection_jitter:
|
collection_jitter:
|
||||||
description: Jitter of the flush interval.
|
description: Jitter of the flush interval.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
flush_interval:
|
flush_interval:
|
||||||
description: Flush interval for all outputs.
|
description: Flush interval for all outputs.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
flush_jitter:
|
flush_jitter:
|
||||||
description: Jitter the flush interval.
|
description: Jitter the flush interval.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
debug:
|
debug:
|
||||||
description: Data collection interval.
|
description: Data collection interval.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
quiet:
|
quiet:
|
||||||
description: Data collection interval.
|
description: Data collection interval.
|
||||||
global: True
|
global: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
scripts:
|
scripts:
|
||||||
eval: &telegrafscripts
|
eval: &telegrafscripts
|
||||||
description: List of input.exec scripts to run for this node type. The script must be present in salt/telegraf/scripts.
|
description: List of input.exec scripts to run for this node type. The script must be present in salt/telegraf/scripts.
|
||||||
forcedType: "[]string"
|
forcedType: "[]string"
|
||||||
multiline: True
|
multiline: True
|
||||||
advanced: True
|
advanced: True
|
||||||
helpLink: influxdb.html
|
helpLink: influxdb
|
||||||
standalone: *telegrafscripts
|
standalone: *telegrafscripts
|
||||||
manager: *telegrafscripts
|
manager: *telegrafscripts
|
||||||
managersearch: *telegrafscripts
|
managersearch: *telegrafscripts
|
||||||
|
|||||||
@@ -46,17 +46,6 @@ telegraf_key_perms:
|
|||||||
- mode: 640
|
- mode: 640
|
||||||
- group: 939
|
- group: 939
|
||||||
|
|
||||||
{% if not GLOBALS.is_manager %}
|
|
||||||
{# Prior to 2.4.210, minions used influxdb.crt and key for telegraf #}
|
|
||||||
remove_influxdb.crt:
|
|
||||||
file.absent:
|
|
||||||
- name: /etc/pki/influxdb.crt
|
|
||||||
|
|
||||||
remove_influxdb.key:
|
|
||||||
file.absent:
|
|
||||||
- name: /etc/pki/influxdb.key
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
{{sls}}_state_not_allowed:
|
{{sls}}_state_not_allowed:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user