#!/bin/bash SOVERSION=$(cat ../VERSION) total_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}' | sed -r 's/.{3}$//') export total_mem total_mem_hr=$(grep MemTotal /proc/meminfo | awk '{ printf("%.0f", $2/1024/1024); }') export total_mem_hr num_cpu_cores=$(nproc) export num_cpu_cores readarray -t cpu_core_list <<< "$(grep "processor" /proc/cpuinfo | grep -v "KVM" | awk '{print $3}')" export cpu_core_list random_uid=$(get_random_value 16) export random_uid node_es_port=9200 export node_es_port setup_log="/root/sosetup.log" export setup_log error_log="/root/errors.log" export error_log filesystem_root=$(df / | awk '$3 ~ /[0-9]+/ { print $2 * 1000 }') export filesystem_root mkdir -p /nsm filesystem_nsm=$(df /nsm | awk '$3 ~ /[0-9]+/ { print $2 * 1000 }') export filesystem_nsm free_space_nsm=$(df -Pk /nsm | sed 1d | grep -v used | awk '{ print $4 / 1048576 }' | awk '{ printf("%.0f", $1) }') export free_space_nsm free_space_root=$(df -Pk / | sed 1d | grep -v used | awk '{ print $4 / 1048576 }' | awk '{ printf("%.0f", $1) }') export free_space_root readarray -t mountpoints <<< "$(lsblk -nlo MOUNTPOINT)" readarray -t partitions <<< "$(lsblk -nlo NAME)" index=0 for item in "${mountpoints[@]}"; do if [[ $item == '/' ]]; then export root_part="${partitions[$index]}" elif [[ $item == '/nsm' ]]; then export nsm_mount=1 export nsm_part="${partitions[$index]}" fi ((index++)) done mkdir -p /root/installtmp/pillar/minions export temp_install_dir=/root/installtmp export percentage_str='Getting started' export DEBIAN_FRONTEND=noninteractive export default_salt_dir=/opt/so/saltstack/default mkdir -p "$default_salt_dir" export local_salt_dir=/opt/so/saltstack/local mkdir -p "$local_salt_dir" SCRIPTDIR=$(pwd) export SCRIPTDIR install_opt_file=/root/install_opt export install_opt_file net_init_file=/root/net_init export net_init_file ntp_string="0.pool.ntp.org,1.pool.ntp.org" export ntp_string whiptail_title="Security Onion Setup - $SOVERSION" export whiptail_title mkdir -p $local_salt_dir/pillar/minions mkdir -p $local_salt_dir/salt/firewall/hostgroups mkdir -p $local_salt_dir/salt/firewall/portgroups mkdir -p $local_salt_dir/salt/firewall/ports for THEDIR in bpf pcap elasticsearch ntp firewall redis backup strelka sensoroni curator soc soctopus docker zeek suricata nginx telegraf filebeat logstash soc manager kratos idstools idh elastalert do mkdir -p $local_salt_dir/pillar/$THEDIR touch $local_salt_dir/pillar/$THEDIR/adv_$THEDIR.sls touch $local_salt_dir/pillar/$THEDIR/soc_$THEDIR.sls done global_pillar_file="$local_salt_dir/pillar/soc_global.sls" export global_pillar_file adv_global_pillar_file="$local_salt_dir/pillar/adv_global.sls" export adv_global_pillar_file elasticsearch_pillar_file="$local_salt_dir/pillar/elasticsearch/soc_elasticsearch.sls" export elasticsearch_pillar_file adv_elasticsearch_pillar_file="$local_salt_dir/pillar/elasticsearch/adv_elasticsearch.sls" export adv_elasticsearch_pillar_file backup_pillar_file="$local_salt_dir/pillar/backup/soc_backup.sls" export backup_pillar_file adv_backup_pillar_file="$local_salt_dir/pillar/backup/adv_backup.sls" export adv_backup_pillar_file strelka_pillar_file="$local_salt_dir/pillar/strelka/soc_strelka.sls" export strelka_pillar_file adv_strelka_pillar_file="$local_salt_dir/pillar/strelka/adv_strelka.sls" export adv_strelka_pillar_file sensoroni_pillar_file="$local_salt_dir/pillar/sensoroni/soc_sensoroni.sls" export sensoroni_pillar_file adv_sensoroni_pillar_file="$local_salt_dir/pillar/sensoroni/adv_sensoroni.sls" export adv_sensoroni_pillar_file curator_pillar_file="$local_salt_dir/pillar/curator/soc_curator.sls" export curator_pillar_file adv_curator_pillar_file="$local_salt_dir/pillar/curator/adv_curator.sls" export adv_curator_pillar_file soctopus_pillar_file="$local_salt_dir/pillar/soctopus/soc_soctopus.sls" export soctopus_pillar_file adv_soctopus_pillar_file="$local_salt_dir/pillar/soctopus/adv_soctopus.sls" export adv_soctopus_pillar_file docker_pillar_file="$local_salt_dir/pillar/docker/soc_docker.sls" export docker_pillar adv_docker_pillar_file="$local_salt_dir/pillar/docker/adv_docker.sls" export adv_docker_pillar zeek_pillar_file="$local_salt_dir/pillar/zeek/soc_zeek.sls" export zeek_pillar_file adv_zeek_pillar_file="$local_salt_dir/pillar/zeek/adv_zeek.sls" export adv_zeek_pillar_file suricata_pillar_file="$local_salt_dir/pillar/suricata/soc_suricata.sls" export suricata_pillar_file adv_suricata_pillar_file="$local_salt_dir/pillar/suricata/adv_suricata.sls" export adv_suricata_pillar_file filebeat_pillar_file="$local_salt_dir/pillar/filebeat/soc_filebeat.sls" export filebeat_pillar_file adv_filebeat_pillar_file="$local_salt_dir/pillar/filebeat/adv_filebeat.sls" export adv_filebeat_pillar_file logstash_pillar_file="$local_salt_dir/pillar/logstash/soc_logstash.sls" export logstash_pillar_file adv_logstash_pillar_file="$local_salt_dir/pillar/logstash/adv_logstash.sls" export adv_logstash_pillar_file soc_pillar_file="$local_salt_dir/pillar/soc/soc_soc.sls" export soc_pillar_file adv_soc_pillar_file="$local_salt_dir/pillar/soc/adv_soc.sls" export adv_soc_pillar_file manager_pillar_file="$local_salt_dir/pillar/manager/soc_manager.sls" export manager_pillar_file adv_manager_pillar_file="$local_salt_dir/pillar/manager/adv_manager.sls" export adv_manager_pillar_file kratos_pillar_file="$local_salt_dir/pillar/kratos/soc_kratos.sls" export kratos_pillar_file adv_kratos_pillar_file="$local_salt_dir/pillar/kratos/adv_kratos.sls" export adv_kratos_pillar_file idstools_pillar_file="$local_salt_dir/pillar/idstools/soc_idstools.sls" export idstools_pillar_file adv_idstools_pillar_file="$local_salt_dir/pillar/idstools/adv_idstools.sls" export adv_idstools_pillar_file nginx_pillar_file="$local_salt_dir/pillar/nginx/soc_nginx.sls" export nginx_pillar_file adv_nginx_pillar_file="$local_salt_dir/pillar/nginx/adv_nginx.sls" export adv_nginx_pillar_file redis_pillar_file="$local_salt_dir/pillar/redis/soc_redis.sls" export redis_pillar_file adv_redis_pillar_file="$local_salt_dir/pillar/redis/adv_redis.sls" export adv_redis_pillar_file idh_pillar_file="$local_salt_dir/pillar/idh/soc_idh.sls" export idh_pillar_file adv_idh_pillar_file="$local_salt_dir/pillar/idh/adv_idh.sls" export adv_idh_pillar_file telegraf_pillar_file="$local_salt_dir/pillar/telegraf/soc_telegraf.sls" export telegraf_pillar_file adv_telegraf_pillar_file="$local_salt_dir/pillar/telegraf/adv_telegraf.sls" export adv_telegraf_pillar_file