mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-08 02:02:50 +01:00
Merge pull request #2539 from Security-Onion-Solutions/automation/ssh_prompts
Automation/ssh prompts
This commit is contained in:
@@ -97,8 +97,6 @@ airgap_rules() {
|
|||||||
|
|
||||||
# Don't leave Strelka out
|
# Don't leave Strelka out
|
||||||
cp -Rv /root/SecurityOnion/agrules/strelka /nsm/repo/rules/
|
cp -Rv /root/SecurityOnion/agrules/strelka /nsm/repo/rules/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
analyze_system() {
|
analyze_system() {
|
||||||
@@ -116,13 +114,11 @@ accept_salt_key_remote() {
|
|||||||
|
|
||||||
echo "Accept the key remotely on the manager" >> "$setup_log" 2>&1
|
echo "Accept the key remotely on the manager" >> "$setup_log" 2>&1
|
||||||
# Delete the key just in case.
|
# Delete the key just in case.
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo salt-key -d "$MINION_ID" -y
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo salt-key -d "$MINION_ID" -y
|
||||||
salt-call state.apply ca >> /dev/null 2>&1
|
salt-call state.apply ca >> /dev/null 2>&1
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo salt-key -a "$MINION_ID" -y
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo salt-key -a "$MINION_ID" -y
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
add_admin_user() {
|
add_admin_user() {
|
||||||
# Add an admin user with full sudo rights if this is an ISO install.
|
# Add an admin user with full sudo rights if this is an ISO install.
|
||||||
{
|
{
|
||||||
@@ -558,7 +554,7 @@ check_requirements() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compare_versions() {
|
compare_versions() {
|
||||||
manager_ver=$(ssh -i /root/.ssh/so.key soremote@"$MSRV" cat /etc/soversion)
|
manager_ver=$("$sshcmd" -i /root/.ssh/so.key soremote@"$MSRV" cat /etc/soversion)
|
||||||
|
|
||||||
if [[ $manager_ver == "" ]]; then
|
if [[ $manager_ver == "" ]]; then
|
||||||
rm /root/install_opt
|
rm /root/install_opt
|
||||||
@@ -671,6 +667,7 @@ copy_salt_master_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
copy_minion_tmp_files() {
|
copy_minion_tmp_files() {
|
||||||
|
|
||||||
case "$install_type" in
|
case "$install_type" in
|
||||||
'MANAGER' | 'EVAL' | 'HELIXSENSOR' | 'MANAGERSEARCH' | 'STANDALONE' | 'IMPORT')
|
'MANAGER' | 'EVAL' | 'HELIXSENSOR' | 'MANAGERSEARCH' | 'STANDALONE' | 'IMPORT')
|
||||||
echo "Copying pillar and salt files in $temp_install_dir to $local_salt_dir"
|
echo "Copying pillar and salt files in $temp_install_dir to $local_salt_dir"
|
||||||
@@ -682,15 +679,15 @@ copy_minion_tmp_files() {
|
|||||||
*)
|
*)
|
||||||
{
|
{
|
||||||
echo "scp pillar and salt files in $temp_install_dir to manager $local_salt_dir";
|
echo "scp pillar and salt files in $temp_install_dir to manager $local_salt_dir";
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" mkdir -p /tmp/"$MINION_ID"/pillar;
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" mkdir -p /tmp/"$MINION_ID"/pillar;
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" mkdir -p /tmp/"$MINION_ID"/schedules;
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" mkdir -p /tmp/"$MINION_ID"/schedules;
|
||||||
scp -prv -i /root/.ssh/so.key "$temp_install_dir"/pillar/minions/* soremote@"$MSRV":/tmp/"$MINION_ID"/pillar/;
|
$scpcmd -prv -i /root/.ssh/so.key "$temp_install_dir"/pillar/minions/* soremote@"$MSRV":/tmp/"$MINION_ID"/pillar/;
|
||||||
if [ -d $temp_install_dir/salt/patch/os/schedules/ ]; then
|
if [ -d $temp_install_dir/salt/patch/os/schedules/ ]; then
|
||||||
if [ "$(ls -A $temp_install_dir/salt/patch/os/schedules/)" ]; then
|
if [ "$(ls -A $temp_install_dir/salt/patch/os/schedules/)" ]; then
|
||||||
scp -prv -i /root/.ssh/so.key $temp_install_dir/salt/patch/os/schedules/* soremote@$MSRV:/tmp/$MINION_ID/schedules;
|
$scpcmd -prv -i /root/.ssh/so.key $temp_install_dir/salt/patch/os/schedules/* soremote@$MSRV:/tmp/$MINION_ID/schedules;
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/manager/files/add_minion.sh "$MINION_ID";
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/manager/files/add_minion.sh "$MINION_ID";
|
||||||
} >> "$setup_log" 2>&1
|
} >> "$setup_log" 2>&1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -709,7 +706,7 @@ copy_ssh_key() {
|
|||||||
|
|
||||||
echo "Copying the SSH key to the manager"
|
echo "Copying the SSH key to the manager"
|
||||||
#Copy the key over to the manager
|
#Copy the key over to the manager
|
||||||
ssh-copy-id -f -i /root/.ssh/so.key soremote@"$MSRV"
|
$sshcopyidcmd -f -i /root/.ssh/so.key soremote@"$MSRV"
|
||||||
}
|
}
|
||||||
|
|
||||||
create_local_directories() {
|
create_local_directories() {
|
||||||
@@ -974,11 +971,12 @@ docker_seed_registry() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
download_repo_tarball() {
|
download_repo_tarball() {
|
||||||
|
|
||||||
mkdir -p /root/manager_setup/securityonion
|
mkdir -p /root/manager_setup/securityonion
|
||||||
{
|
{
|
||||||
local manager_ver
|
local manager_ver
|
||||||
manager_ver=$(ssh -i /root/.ssh/so.key soremote@"$MSRV" cat /etc/soversion)
|
manager_ver=$("$sshcmd" -i /root/.ssh/so.key soremote@"$MSRV" cat /etc/soversion)
|
||||||
scp -i /root/.ssh/so.key soremote@"$MSRV":/opt/so/repo/"$manager_ver".tar.gz /root/manager_setup
|
$scpcmd -i /root/.ssh/so.key soremote@"$MSRV":/opt/so/repo/"$manager_ver".tar.gz /root/manager_setup
|
||||||
} >> "$setup_log" 2>&1
|
} >> "$setup_log" 2>&1
|
||||||
|
|
||||||
# Fail if the file doesn't download
|
# Fail if the file doesn't download
|
||||||
@@ -1774,7 +1772,7 @@ saltify() {
|
|||||||
# Copy down the gpg keys and install them from the manager
|
# Copy down the gpg keys and install them from the manager
|
||||||
mkdir "$temp_install_dir"/gpg >> "$setup_log" 2>&1
|
mkdir "$temp_install_dir"/gpg >> "$setup_log" 2>&1
|
||||||
echo "scp the gpg keys and install them from the manager" >> "$setup_log" 2>&1
|
echo "scp the gpg keys and install them from the manager" >> "$setup_log" 2>&1
|
||||||
scp -v -i /root/.ssh/so.key soremote@"$MSRV":/opt/so/gpg/* "$temp_install_dir"/gpg >> "$setup_log" 2>&1
|
$scpcmd -v -i /root/.ssh/so.key soremote@"$MSRV":/opt/so/gpg/* "$temp_install_dir"/gpg >> "$setup_log" 2>&1
|
||||||
echo "Using apt-key add to add SALTSTACK-GPG-KEY.pub and GPG-KEY-WAZUH" >> "$setup_log" 2>&1
|
echo "Using apt-key add to add SALTSTACK-GPG-KEY.pub and GPG-KEY-WAZUH" >> "$setup_log" 2>&1
|
||||||
apt-key add "$temp_install_dir"/gpg/SALTSTACK-GPG-KEY.pub >> "$setup_log" 2>&1
|
apt-key add "$temp_install_dir"/gpg/SALTSTACK-GPG-KEY.pub >> "$setup_log" 2>&1
|
||||||
apt-key add "$temp_install_dir"/gpg/GPG-KEY-WAZUH >> "$setup_log" 2>&1
|
apt-key add "$temp_install_dir"/gpg/GPG-KEY-WAZUH >> "$setup_log" 2>&1
|
||||||
@@ -1976,6 +1974,20 @@ set_progress_str() {
|
|||||||
"----" >> "$setup_log" 2>&1
|
"----" >> "$setup_log" 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_ssh_cmds() {
|
||||||
|
local automated=$1
|
||||||
|
|
||||||
|
if [ $automated == yes ]; then
|
||||||
|
sshcmd='sshpass -p "automation" ssh -o StrictHostKeyChecking=no'
|
||||||
|
sshcopyidcmd='sshpass -p "automation" ssh-copy-id -o StrictHostKeyChecking=no'
|
||||||
|
scpcmd='sshpass -p "automation" scp -o StrictHostKeyChecking=no'
|
||||||
|
else
|
||||||
|
sshcmd='ssh'
|
||||||
|
sshcopyidcmd='ssh-copy-id'
|
||||||
|
scpcmd='scp'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
sensor_pillar() {
|
sensor_pillar() {
|
||||||
|
|
||||||
local pillar_file=$temp_install_dir/pillar/minions/$MINION_ID.sls
|
local pillar_file=$temp_install_dir/pillar/minions/$MINION_ID.sls
|
||||||
@@ -2087,24 +2099,24 @@ set_initial_firewall_policy() {
|
|||||||
$default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost sensor "$MAINIP"
|
$default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost sensor "$MAINIP"
|
||||||
;;
|
;;
|
||||||
'SENSOR' | 'SEARCHNODE' | 'HEAVYNODE' | 'FLEET')
|
'SENSOR' | 'SEARCHNODE' | 'HEAVYNODE' | 'FLEET')
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall includehost minion "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall includehost minion "$MAINIP"
|
||||||
case "$install_type" in
|
case "$install_type" in
|
||||||
'SENSOR')
|
'SENSOR')
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost sensor "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost sensor "$MAINIP"
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh sensorstab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm" "$INTERFACE"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh sensorstab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm" "$INTERFACE"
|
||||||
;;
|
;;
|
||||||
'SEARCHNODE')
|
'SEARCHNODE')
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost search_node "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost search_node "$MAINIP"
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh nodestab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh nodestab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm"
|
||||||
;;
|
;;
|
||||||
'HEAVYNODE')
|
'HEAVYNODE')
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall includehost sensor "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall includehost sensor "$MAINIP"
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost heavy_node "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost heavy_node "$MAINIP"
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh sensorstab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm" "$INTERFACE"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh sensorstab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm" "$INTERFACE"
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh nodestab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/pillar/data/addtotab.sh nodestab "$MINION_ID" "$MAINIP" "$num_cpu_cores" "$random_uid" "$MNIC" "$filesystem_root" "$filesystem_nsm"
|
||||||
;;
|
;;
|
||||||
'FLEET')
|
'FLEET')
|
||||||
ssh -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost beats_endpoint_ssl "$MAINIP"
|
$sshcmd -i /root/.ssh/so.key soremote@"$MSRV" sudo $default_salt_dir/salt/common/tools/sbin/so-firewall --apply includehost beats_endpoint_ssl "$MAINIP"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -124,6 +124,15 @@ if [[ -f automation/$automation && $(basename $automation) == $automation ]]; th
|
|||||||
ip a | grep "$MNIC:" | grep "state UP" >> $setup_log 2>&1
|
ip a | grep "$MNIC:" | grep "state UP" >> $setup_log 2>&1
|
||||||
done
|
done
|
||||||
echo "Network is up on $MNIC" >> $setup_log 2>&1
|
echo "Network is up on $MNIC" >> $setup_log 2>&1
|
||||||
|
|
||||||
|
if [[ ! $is_iso ]]; then
|
||||||
|
echo "Installing sshpass for automated testing." >> $setup_log 2>&1
|
||||||
|
if [ "$OS" == ubuntu ]; then
|
||||||
|
apt-get -y install sshpass >> $setup_log 2>&1
|
||||||
|
else
|
||||||
|
yum -y install sshpass >> $setup_log 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$setup_type" in
|
case "$setup_type" in
|
||||||
@@ -136,6 +145,9 @@ case "$setup_type" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
#set ssh commands that will be used based on if this is an automated test install or not
|
||||||
|
set_ssh_cmds $automated
|
||||||
|
|
||||||
# Allow execution of SO tools during setup
|
# Allow execution of SO tools during setup
|
||||||
local_sbin="$(pwd)/../salt/common/tools/sbin"
|
local_sbin="$(pwd)/../salt/common/tools/sbin"
|
||||||
export PATH=$PATH:$local_sbin
|
export PATH=$PATH:$local_sbin
|
||||||
@@ -285,7 +297,7 @@ if ! [[ -f $install_opt_file ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $is_minion ]]; then
|
if [[ $is_minion ]]; then
|
||||||
[ "$automated" == no ] && copy_ssh_key >> $setup_log 2>&1
|
copy_ssh_key >> $setup_log 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $is_minion ]] && ! (compare_versions); then
|
if [[ $is_minion ]] && ! (compare_versions); then
|
||||||
|
|||||||
Reference in New Issue
Block a user