mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-08 18:22:47 +01:00
Merge pull request #13836 from Security-Onion-Solutions/issue/204
Issue/204
This commit is contained in:
@@ -16,6 +16,8 @@ base:
|
|||||||
- sensoroni.adv_sensoroni
|
- sensoroni.adv_sensoroni
|
||||||
- telegraf.soc_telegraf
|
- telegraf.soc_telegraf
|
||||||
- telegraf.adv_telegraf
|
- telegraf.adv_telegraf
|
||||||
|
- versionlock.soc_versionlock
|
||||||
|
- versionlock.adv_versionlock
|
||||||
|
|
||||||
'* and not *_desktop':
|
'* and not *_desktop':
|
||||||
- firewall.soc_firewall
|
- firewall.soc_firewall
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
{# 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
|
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. #}
|
||||||
|
|
||||||
@@ -42,4 +42,4 @@
|
|||||||
{% do LOGSTASH_MERGED.update({'enabled': False}) %}
|
{% do LOGSTASH_MERGED.update({'enabled': False}) %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -404,6 +404,7 @@ preupgrade_changes() {
|
|||||||
[[ "$INSTALLEDVERSION" == 2.4.80 ]] && up_to_2.4.90
|
[[ "$INSTALLEDVERSION" == 2.4.80 ]] && up_to_2.4.90
|
||||||
[[ "$INSTALLEDVERSION" == 2.4.90 ]] && up_to_2.4.100
|
[[ "$INSTALLEDVERSION" == 2.4.90 ]] && up_to_2.4.100
|
||||||
[[ "$INSTALLEDVERSION" == 2.4.100 ]] && up_to_2.4.110
|
[[ "$INSTALLEDVERSION" == 2.4.100 ]] && up_to_2.4.110
|
||||||
|
[[ "$INSTALLEDVERSION" == 2.4.110 ]] && up_to_2.4.120
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -425,6 +426,7 @@ postupgrade_changes() {
|
|||||||
[[ "$POSTVERSION" == 2.4.80 ]] && post_to_2.4.90
|
[[ "$POSTVERSION" == 2.4.80 ]] && post_to_2.4.90
|
||||||
[[ "$POSTVERSION" == 2.4.90 ]] && post_to_2.4.100
|
[[ "$POSTVERSION" == 2.4.90 ]] && post_to_2.4.100
|
||||||
[[ "$POSTVERSION" == 2.4.100 ]] && post_to_2.4.110
|
[[ "$POSTVERSION" == 2.4.100 ]] && post_to_2.4.110
|
||||||
|
[[ "$POSTVERSION" == 2.4.110 ]] && post_to_2.4.120
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -517,6 +519,11 @@ post_to_2.4.110() {
|
|||||||
POSTVERSION=2.4.110
|
POSTVERSION=2.4.110
|
||||||
}
|
}
|
||||||
|
|
||||||
|
post_to_2.4.120() {
|
||||||
|
echo "Nothing to apply"
|
||||||
|
POSTVERSION=2.4.120
|
||||||
|
}
|
||||||
|
|
||||||
repo_sync() {
|
repo_sync() {
|
||||||
echo "Sync the local repo."
|
echo "Sync the local repo."
|
||||||
su socore -c '/usr/sbin/so-repo-sync' || fail "Unable to complete so-repo-sync."
|
su socore -c '/usr/sbin/so-repo-sync' || fail "Unable to complete so-repo-sync."
|
||||||
@@ -694,17 +701,27 @@ up_to_2.4.90() {
|
|||||||
|
|
||||||
INSTALLEDVERSION=2.4.90
|
INSTALLEDVERSION=2.4.90
|
||||||
}
|
}
|
||||||
|
|
||||||
up_to_2.4.100() {
|
up_to_2.4.100() {
|
||||||
# Elastic Update for this release, so download Elastic Agent files
|
# Elastic Update for this release, so download Elastic Agent files
|
||||||
determine_elastic_agent_upgrade
|
determine_elastic_agent_upgrade
|
||||||
INSTALLEDVERSION=2.4.100
|
INSTALLEDVERSION=2.4.100
|
||||||
}
|
}
|
||||||
|
|
||||||
up_to_2.4.110() {
|
up_to_2.4.110() {
|
||||||
echo "Nothing to do for 2.4.110"
|
echo "Nothing to do for 2.4.110"
|
||||||
|
|
||||||
INSTALLEDVERSION=2.4.110
|
INSTALLEDVERSION=2.4.110
|
||||||
}
|
}
|
||||||
|
|
||||||
|
up_to_2.4.120() {
|
||||||
|
# this is needed for the new versionlock state
|
||||||
|
mkdir /opt/so/saltstack/local/pillar/versionlock
|
||||||
|
touch /opt/so/saltstack/local/pillar/versionlock/adv_versionlock.sls /opt/so/saltstack/local/pillar/versionlock/soc_versionlock.sls
|
||||||
|
|
||||||
|
INSTALLEDVERSION=2.4.120
|
||||||
|
}
|
||||||
|
|
||||||
add_detection_test_pillars() {
|
add_detection_test_pillars() {
|
||||||
if [[ -n "$SOUP_INTERNAL_TESTING" ]]; then
|
if [[ -n "$SOUP_INTERNAL_TESTING" ]]; then
|
||||||
echo "Adding detection pillar values for automated testing"
|
echo "Adding detection pillar values for automated testing"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ base:
|
|||||||
'*':
|
'*':
|
||||||
- cron.running
|
- cron.running
|
||||||
- repo.client
|
- repo.client
|
||||||
|
- versionlock
|
||||||
- ntp
|
- ntp
|
||||||
- schedule
|
- schedule
|
||||||
- logrotate
|
- logrotate
|
||||||
|
|||||||
2
salt/versionlock/defaults.yaml
Normal file
2
salt/versionlock/defaults.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
versionlock:
|
||||||
|
hold: []
|
||||||
18
salt/versionlock/init.sls
Normal file
18
salt/versionlock/init.sls
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
{% from 'versionlock/map.jinja' import VERSIONLOCKMERGED %}
|
||||||
|
|
||||||
|
{% for pkg in VERSIONLOCKMERGED.hold %}
|
||||||
|
{{pkg}}_held:
|
||||||
|
pkg.held:
|
||||||
|
- name: {{pkg}}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for pkg in VERSIONLOCKMERGED.UNHOLD %}
|
||||||
|
{{pkg}}_unheld:
|
||||||
|
pkg.unheld:
|
||||||
|
- name: {{pkg}}
|
||||||
|
{% endfor %}
|
||||||
33
salt/versionlock/map.jinja
Normal file
33
salt/versionlock/map.jinja
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{# 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. #}
|
||||||
|
|
||||||
|
{% import_yaml 'versionlock/defaults.yaml' as VERSIONLOCKDEFAULTS %}
|
||||||
|
{% set VERSIONLOCKMERGED = salt['pillar.get']('versionlock', VERSIONLOCKDEFAULTS.versionlock, merge=True) %}
|
||||||
|
{% set HELD = salt['pkg.list_holds']() %}
|
||||||
|
|
||||||
|
{# these are packages held / versionlock in other states #}
|
||||||
|
{% set PACKAGES_HELD_IN_OTHER_STATES = [
|
||||||
|
'salt',
|
||||||
|
'salt-master',
|
||||||
|
'salt-minion',
|
||||||
|
'containerd.io',
|
||||||
|
'docker-ce',
|
||||||
|
'docker-ce-cli',
|
||||||
|
'docker-ce-rootless-extras'
|
||||||
|
] %}
|
||||||
|
|
||||||
|
{# remove packages held in other states from hold list #}
|
||||||
|
{% do VERSIONLOCKMERGED.update({'hold': VERSIONLOCKMERGED['hold'] | unique | reject('in', PACKAGES_HELD_IN_OTHER_STATES) | list }) %}
|
||||||
|
|
||||||
|
{# initiate VERSIONLOCKMERGED.UNHOLD #}
|
||||||
|
{% do VERSIONLOCKMERGED.update({'UNHOLD': []}) %}
|
||||||
|
|
||||||
|
{# if a package is currently held but not set to be held, unhold it #}
|
||||||
|
{% for item in HELD %}
|
||||||
|
{% set base_name = item.rsplit('-', 2)[0] %}
|
||||||
|
{% if base_name not in VERSIONLOCKMERGED['hold'] and base_name not in PACKAGES_HELD_IN_OTHER_STATES and base_name not in VERSIONLOCKMERGED['UNHOLD'] %}
|
||||||
|
{% do VERSIONLOCKMERGED['UNHOLD'].append(base_name) %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
7
salt/versionlock/soc_versionlock.yaml
Normal file
7
salt/versionlock/soc_versionlock.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
versionlock:
|
||||||
|
hold:
|
||||||
|
description: List of packages to prevent from upgrading. To reduce the frequency of required reboots, add 'kernel' to this list.
|
||||||
|
global: True
|
||||||
|
forcedType: "[]string"
|
||||||
|
multiline: True
|
||||||
|
helpLink: versionlock.html
|
||||||
@@ -1404,7 +1404,7 @@ make_some_dirs() {
|
|||||||
mkdir -p $local_salt_dir/salt/firewall/portgroups
|
mkdir -p $local_salt_dir/salt/firewall/portgroups
|
||||||
mkdir -p $local_salt_dir/salt/firewall/ports
|
mkdir -p $local_salt_dir/salt/firewall/ports
|
||||||
|
|
||||||
for THEDIR in bpf pcap elasticsearch ntp firewall redis backup influxdb strelka sensoroni soc docker zeek suricata nginx telegraf logstash soc manager kratos idstools idh elastalert stig global kafka;do
|
for THEDIR in bpf pcap elasticsearch ntp firewall redis backup influxdb strelka sensoroni soc docker zeek suricata nginx telegraf logstash soc manager kratos idstools idh elastalert stig global kafka versionlock; do
|
||||||
mkdir -p $local_salt_dir/pillar/$THEDIR
|
mkdir -p $local_salt_dir/pillar/$THEDIR
|
||||||
touch $local_salt_dir/pillar/$THEDIR/adv_$THEDIR.sls
|
touch $local_salt_dir/pillar/$THEDIR/adv_$THEDIR.sls
|
||||||
touch $local_salt_dir/pillar/$THEDIR/soc_$THEDIR.sls
|
touch $local_salt_dir/pillar/$THEDIR/soc_$THEDIR.sls
|
||||||
|
|||||||
Reference in New Issue
Block a user