mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-06 17:22:49 +01:00
Merge pull request #9635 from Security-Onion-Solutions/mkr24
Ubuntu support changes
This commit is contained in:
@@ -1,6 +1,33 @@
|
|||||||
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
{% if GLOBALS.os != 'CentOS' %}
|
{% if GLOBALS.os == 'Ubuntu' %}
|
||||||
|
commonpkgs:
|
||||||
|
pkg.installed:
|
||||||
|
- skip_suggestions: True
|
||||||
|
- pkgs:
|
||||||
|
- chrony
|
||||||
|
- apache2-utils
|
||||||
|
- wget
|
||||||
|
- ntpdate
|
||||||
|
- jq
|
||||||
|
- python3-docker
|
||||||
|
- curl
|
||||||
|
- ca-certificates
|
||||||
|
- software-properties-common
|
||||||
|
- apt-transport-https
|
||||||
|
- openssl
|
||||||
|
- netcat
|
||||||
|
- python3-mysqldb
|
||||||
|
- sqlite3
|
||||||
|
- libssl-dev
|
||||||
|
- python3-dateutil
|
||||||
|
- python3-m2crypto
|
||||||
|
- python3-mysqldb
|
||||||
|
- python3-packaging
|
||||||
|
- python3-lxml
|
||||||
|
- git
|
||||||
|
- vim
|
||||||
|
{% elif GLOBALS.os == 'Rocky' %}
|
||||||
commonpkgs:
|
commonpkgs:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- skip_suggestions: True
|
- skip_suggestions: True
|
||||||
|
|||||||
@@ -4,12 +4,25 @@
|
|||||||
# Elastic License 2.0.
|
# Elastic License 2.0.
|
||||||
|
|
||||||
{% from 'docker/docker.map.jinja' import DOCKER %}
|
{% from 'docker/docker.map.jinja' import DOCKER %}
|
||||||
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
||||||
|
|
||||||
|
|
||||||
dockergroup:
|
dockergroup:
|
||||||
group.present:
|
group.present:
|
||||||
- name: docker
|
- name: docker
|
||||||
- gid: 920
|
- gid: 920
|
||||||
|
|
||||||
|
{% if GLOBALS.os == 'Ubuntu' %}
|
||||||
|
dockerheldpackages:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs:
|
||||||
|
- containerd.io: 1.4.9-1
|
||||||
|
- docker-ce: 5:20.10.8~3-0~ubuntu-focal
|
||||||
|
- docker-ce-cli: 5:20.10.5~3-0~ubuntu-focal
|
||||||
|
- docker-ce-rootless-extras: 5:20.10.5~3-0~ubuntu-focal
|
||||||
|
- hold: True
|
||||||
|
- update_holds: True
|
||||||
|
{% else %}
|
||||||
dockerheldpackages:
|
dockerheldpackages:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs:
|
- pkgs:
|
||||||
@@ -19,6 +32,7 @@ dockerheldpackages:
|
|||||||
- docker-ce-rootless-extras: 20.10.5-3.el7
|
- docker-ce-rootless-extras: 20.10.5-3.el7
|
||||||
- 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:
|
||||||
|
|||||||
20
salt/repo/client/ubuntu.sls
Normal file
20
salt/repo/client/ubuntu.sls
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# this removes the repo file left by bootstrap-salt.sh without -r
|
||||||
|
remove_salt.list:
|
||||||
|
file.absent:
|
||||||
|
- name: /etc/apt/sources.list.d/salt.list
|
||||||
|
|
||||||
|
saltstack.list:
|
||||||
|
file.managed:
|
||||||
|
- name: /etc/apt/sources.list.d/saltstack.list
|
||||||
|
- contents:
|
||||||
|
- deb https://repo.securityonion.net/file/securityonion-repo/ubuntu/{{grains.osrelease}}/amd64/salt3004.2/ {{grains.oscodename}} main
|
||||||
|
|
||||||
|
apt_update:
|
||||||
|
cmd.run:
|
||||||
|
- name: apt-get update
|
||||||
|
- onchanges:
|
||||||
|
- file: saltstack.list
|
||||||
|
- timeout: 30
|
||||||
|
- retry:
|
||||||
|
attempts: 5
|
||||||
|
interval: 30
|
||||||
@@ -909,10 +909,9 @@ detect_os() {
|
|||||||
|
|
||||||
elif [ -f /etc/os-release ]; then
|
elif [ -f /etc/os-release ]; then
|
||||||
OS=ubuntu
|
OS=ubuntu
|
||||||
if grep -q "UBUNTU_CODENAME=bionic" /etc/os-release; then
|
if grep -q "UBUNTU_CODENAME=focal" /etc/os-release; then
|
||||||
OSVER=bionic
|
|
||||||
elif grep -q "UBUNTU_CODENAME=focal" /etc/os-release; then
|
|
||||||
OSVER=focal
|
OSVER=focal
|
||||||
|
is_ubuntu=true
|
||||||
else
|
else
|
||||||
info "We do not support your current version of Ubuntu."
|
info "We do not support your current version of Ubuntu."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -1992,6 +1991,43 @@ repo_sync_local() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
saltify() {
|
saltify() {
|
||||||
|
if [[ $is_ubuntu ]]; then
|
||||||
|
|
||||||
|
DEBIAN_FRONTEND=noninteractive retry 150 20 "apt-get -y -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" upgrade" >> "$setup_log" 2>&1 || exit 1
|
||||||
|
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
|
||||||
|
local pkg_arr=(
|
||||||
|
'apache2-utils'
|
||||||
|
'ca-certificates'
|
||||||
|
'curl'
|
||||||
|
'software-properties-common'
|
||||||
|
'apt-transport-https'
|
||||||
|
'openssl'
|
||||||
|
'netcat'
|
||||||
|
'jq'
|
||||||
|
)
|
||||||
|
retry 150 20 "apt-get -y install ${pkg_arr[*]}" || exit 1
|
||||||
|
|
||||||
|
logCmd "mkdir -vp /opt/so/gpg"
|
||||||
|
logCmd "wget -q --inet4-only -O /opt/so/gpg/SALTSTACK-GPG-KEY.pub https://repo.securityonion.net/file/securityonion-repo/ubuntu/20.04/amd64/salt/SALTSTACK-GPG-KEY.pub"
|
||||||
|
logCmd "wget -q --inet4-only -O /opt/so/gpg/docker.pub https://download.docker.com/linux/ubuntu/gpg"
|
||||||
|
logCmd "apt-key add /opt/so/gpg/SALTSTACK-GPG-KEY.pub"
|
||||||
|
logCmd "apt-key add /opt/so/gpg/docker.pub"
|
||||||
|
|
||||||
|
# Add SO Saltstack Repo
|
||||||
|
echo "deb https://repo.securityonion.net/file/securityonion-repo/ubuntu/20.04/amd64/salt3004.2/ focal main" > /etc/apt/sources.list.d/saltstack.list
|
||||||
|
|
||||||
|
# Add Docker Repo
|
||||||
|
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||||
|
|
||||||
|
# Ain't nothing but a GPG
|
||||||
|
|
||||||
|
retry 150 20 "apt-get update" "" "Err:" || exit 1
|
||||||
|
retry 150 20 "apt-get -y install salt-minion=3004.2+ds-1 salt-common=3004.2+ds-1" || exit 1
|
||||||
|
retry 150 20 "apt-mark hold salt-minion salt-common" || exit 1
|
||||||
|
retry 150 20 "apt-get -y install python3-pip python3-dateutil python3-m2crypto python3-mysqldb python3-packaging python3-influxdb python3-lxml" || exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $is_centos ]]; then
|
if [[ $is_centos ]]; then
|
||||||
RUSALTY=$(rpm -qa | grep salt-minion | wc -l)
|
RUSALTY=$(rpm -qa | grep salt-minion | wc -l)
|
||||||
if [[ "$RUSALTY" -gt 0 ]]; then
|
if [[ "$RUSALTY" -gt 0 ]]; then
|
||||||
@@ -2305,6 +2341,22 @@ so_add_user() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ubuntu_check() {
|
||||||
|
if [[ $OS == "ubuntu" ]]; then
|
||||||
|
if [[ $waitforstate ]]; then
|
||||||
|
whiptail_ubuntu_notsupported
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
if [[ $UBUNTUINSTALL == "needtoupgrade" ]]; then
|
||||||
|
whiptail_ubuntu_warning
|
||||||
|
else
|
||||||
|
whiptail_ubuntu_notsupported
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
update_sudoers_for_testing() {
|
update_sudoers_for_testing() {
|
||||||
if [ -n "$TESTING" ]; then
|
if [ -n "$TESTING" ]; then
|
||||||
info "Ensuring $INSTALLUSERNAME has password-less sudo access for automated testing purposes."
|
info "Ensuring $INSTALLUSERNAME has password-less sudo access for automated testing purposes."
|
||||||
|
|||||||
@@ -314,6 +314,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
# If you are a manager ask ALL the manager things here. I know there is code re-use but this makes it easier to add new roles.
|
# If you are a manager ask ALL the manager things here. I know there is code re-use but this makes it easier to add new roles.
|
||||||
if [[ $is_eval ]]; then
|
if [[ $is_eval ]]; then
|
||||||
waitforstate=true
|
waitforstate=true
|
||||||
|
ubuntu_check
|
||||||
monints=true
|
monints=true
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
check_requirements "manager"
|
check_requirements "manager"
|
||||||
@@ -336,6 +337,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
elif [[ $is_standalone ]]; then
|
elif [[ $is_standalone ]]; then
|
||||||
waitforstate=true
|
waitforstate=true
|
||||||
|
ubuntu_check
|
||||||
monints=true
|
monints=true
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
check_requirements "manager"
|
check_requirements "manager"
|
||||||
@@ -359,6 +361,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
elif [[ $is_manager ]]; then
|
elif [[ $is_manager ]]; then
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
waitforstate=true
|
waitforstate=true
|
||||||
|
ubuntu_check
|
||||||
check_requirements "manager"
|
check_requirements "manager"
|
||||||
networking_needful
|
networking_needful
|
||||||
collect_dockernet
|
collect_dockernet
|
||||||
@@ -378,6 +381,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
elif [[ $is_managersearch ]]; then
|
elif [[ $is_managersearch ]]; then
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
waitforstate=true
|
waitforstate=true
|
||||||
|
ubuntu_check
|
||||||
check_requirements "manager"
|
check_requirements "manager"
|
||||||
networking_needful
|
networking_needful
|
||||||
collect_dockernet
|
collect_dockernet
|
||||||
@@ -395,6 +399,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
collect_so_allow
|
collect_so_allow
|
||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
elif [[ $is_sensor ]]; then
|
elif [[ $is_sensor ]]; then
|
||||||
|
ubuntu_check
|
||||||
monints=true
|
monints=true
|
||||||
check_requirements "sensor"
|
check_requirements "sensor"
|
||||||
calculate_useable_cores
|
calculate_useable_cores
|
||||||
@@ -410,6 +415,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
|
|
||||||
elif [[ $is_searchnode ]]; then
|
elif [[ $is_searchnode ]]; then
|
||||||
|
ubuntu_check
|
||||||
check_requirements "elasticsearch"
|
check_requirements "elasticsearch"
|
||||||
networking_needful
|
networking_needful
|
||||||
check_network_manager_conf
|
check_network_manager_conf
|
||||||
@@ -422,6 +428,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
|
|
||||||
elif [[ $is_heavynode ]]; then
|
elif [[ $is_heavynode ]]; then
|
||||||
|
ubuntu_check
|
||||||
monints=true
|
monints=true
|
||||||
check_requirements "heavynode"
|
check_requirements "heavynode"
|
||||||
calculate_useable_cores
|
calculate_useable_cores
|
||||||
@@ -432,6 +439,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
|
|
||||||
elif [[ $is_idh ]]; then
|
elif [[ $is_idh ]]; then
|
||||||
|
ubuntu_check
|
||||||
check_requirements "idh"
|
check_requirements "idh"
|
||||||
networking_needful
|
networking_needful
|
||||||
collect_mngr_hostname
|
collect_mngr_hostname
|
||||||
@@ -440,6 +448,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
|
|
||||||
elif [[ $is_import ]]; then
|
elif [[ $is_import ]]; then
|
||||||
|
ubuntu_check
|
||||||
waitforstate=true
|
waitforstate=true
|
||||||
monints=true
|
monints=true
|
||||||
check_elastic_license
|
check_elastic_license
|
||||||
@@ -461,6 +470,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
whiptail_end_settings
|
whiptail_end_settings
|
||||||
|
|
||||||
elif [[ $is_receiver ]]; then
|
elif [[ $is_receiver ]]; then
|
||||||
|
ubuntu_check
|
||||||
check_requirements "receiver"
|
check_requirements "receiver"
|
||||||
networking_needful
|
networking_needful
|
||||||
collect_mngr_hostname
|
collect_mngr_hostname
|
||||||
|
|||||||
@@ -1327,6 +1327,28 @@ whiptail_storage_requirements() {
|
|||||||
whiptail_check_exitstatus $exitstatus
|
whiptail_check_exitstatus $exitstatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
whiptail_ubuntu_notsupported() {
|
||||||
|
[ -n "$TESTING" ] && return
|
||||||
|
|
||||||
|
read -r -d '' message <<- EOM
|
||||||
|
Ubuntu is not supported for this node type.
|
||||||
|
|
||||||
|
Please use a supported OS or install via ISO.
|
||||||
|
EOM
|
||||||
|
whiptail --title "$whiptail_title" --msgbox "$message" 14 75
|
||||||
|
}
|
||||||
|
|
||||||
|
whiptail_ubuntu_warning() {
|
||||||
|
[ -n "$TESTING" ] && return
|
||||||
|
|
||||||
|
read -r -d '' message <<- EOM
|
||||||
|
Ubuntu support for this node type is limited.
|
||||||
|
|
||||||
|
Please consider using a fully supported OS or install via ISO.
|
||||||
|
EOM
|
||||||
|
whiptail --title "$whiptail_title" --msgbox "$message" 14 75
|
||||||
|
|
||||||
|
}
|
||||||
whiptail_uppercase_warning() {
|
whiptail_uppercase_warning() {
|
||||||
|
|
||||||
[ -n "$TESTING" ] && return
|
[ -n "$TESTING" ] && return
|
||||||
|
|||||||
Reference in New Issue
Block a user