From 5bbaff89e96ffd1401f0231ae627b668ecbaf734 Mon Sep 17 00:00:00 2001 From: ReachableCEO Date: Mon, 14 Jul 2025 12:34:33 -0500 Subject: [PATCH] refactored to use vendored shell framework. lets test. --- ProjectCode/Modules/OAM/oam-librenms.sh | 30 +++++++------ .../Security/secharden-audit-agents.sh | 43 +++++++++---------- .../Modules/Security/secharden-scap-stig.sh | 22 +++++++--- ProjectCode/Modules/Security/secharden-ssh.sh | 25 ++++++++++- .../Modules/Security/secharden-wazuh.sh | 26 +++++++++++ ProjectCode/SetupNewSystem.sh | 12 +++++- 6 files changed, 115 insertions(+), 43 deletions(-) diff --git a/ProjectCode/Modules/OAM/oam-librenms.sh b/ProjectCode/Modules/OAM/oam-librenms.sh index 48e193b..3f35716 100644 --- a/ProjectCode/Modules/OAM/oam-librenms.sh +++ b/ProjectCode/Modules/OAM/oam-librenms.sh @@ -1,19 +1,25 @@ -#Boilerplate and support functions -FrameworkIncludeFiles="$(ls -1 --color=none ../../../Framework-Includes/*)" +#!/bin/bash -IFS=$'\n\t' -for file in ${FrameworkIncludeFiles[@]}; do - source "$file" +export PROJECT_ROOT_PATH +PROJECT_ROOT_PATH="$(realpath ../../)" + +#Framework variables are read from hee + +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" + +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do + source "$framework_include_file" done -unset IFS -ProjectIncludeFiles="$(ls -1 --color=none ../../../Project-Includes/*)" -IFS=$'\n\t' -for file in ${ProjectIncludeFiles[@]}; do - source "$file" +for project_include_file in ../Project-Includes/*; do + source "$project_include_file" done -unset IFS - print_info "Setting up librenms agent..." diff --git a/ProjectCode/Modules/Security/secharden-audit-agents.sh b/ProjectCode/Modules/Security/secharden-audit-agents.sh index 29f5c81..a81f7e6 100644 --- a/ProjectCode/Modules/Security/secharden-audit-agents.sh +++ b/ProjectCode/Modules/Security/secharden-audit-agents.sh @@ -1,31 +1,30 @@ #!/bin/bash -set -o errexit -set -o nounset -set -o pipefail -set -o functrace +##### +#Core framework functions... +##### -export PS4='(${BASH_SOURCE}:${LINENO}): - [${SHLVL},${BASH_SUBSHELL},$?] $ ' +export PROJECT_ROOT_PATH +PROJECT_ROOT_PATH="$(realpath ../../)" -function error_out() -{ - echo "Bailing out. See above for reason...." - exit 1 -} +#Framework variables are read from hee -function handle_failure() { - local lineno=$1 - local fn=$2 - local exitstatus=$3 - local msg=$4 - local lineno_fns=${0% 0} - if [[ "$lineno_fns" != "-1" ]] ; then - lineno="${lineno} ${lineno_fns}" - fi - echo "${BASH_SOURCE[0]}: Function: ${fn} Line Number : [${lineno}] Failed with status ${exitstatus}: $msg" -} +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" + +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do + source "$framework_include_file" +done + +for project_include_file in ../Project-Includes/*; do + source "$project_include_file" +done -trap 'handle_failure "${BASH_LINENO[*]}" "$LINENO" "${FUNCNAME[*]:-script}" "$?" "$BASH_COMMAND"' ERR export DL_ROOT DL_ROOT="https://dl.knownelement.com/KNEL/FetchApply/" diff --git a/ProjectCode/Modules/Security/secharden-scap-stig.sh b/ProjectCode/Modules/Security/secharden-scap-stig.sh index c0c2b0f..08cb5d2 100644 --- a/ProjectCode/Modules/Security/secharden-scap-stig.sh +++ b/ProjectCode/Modules/Security/secharden-scap-stig.sh @@ -1,16 +1,28 @@ #!/bin/bash +##### +#Core framework functions... +##### + +export PROJECT_ROOT_PATH +PROJECT_ROOT_PATH="$(realpath ../../)" + #Framework variables are read from hee -source $PROJECT_ROOT_PATH/Framework-ConfigFiles/FrameworkVars -#Boilerplate and support functions +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" -for framework_include_file in ../Framework-Includes/*; do - source "$framework_include_file" +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do + source "$framework_include_file" done for project_include_file in ../Project-Includes/*; do - source "$project_include_file" + source "$project_include_file" done # Actual script logic starts here diff --git a/ProjectCode/Modules/Security/secharden-ssh.sh b/ProjectCode/Modules/Security/secharden-ssh.sh index a218ff0..8f8f4c8 100644 --- a/ProjectCode/Modules/Security/secharden-ssh.sh +++ b/ProjectCode/Modules/Security/secharden-ssh.sh @@ -1,13 +1,34 @@ #!/bin/bash -for framework_include_file in ../../../Framework-Includes/*; do +##### +#Core framework functions... +##### + +export PROJECT_ROOT_PATH +PROJECT_ROOT_PATH="$(realpath ../)" + +#Framework variables are read from hee + + +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" + +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do source "$framework_include_file" done -for project_include_file in ../../../Project-Includes/*; do +for project_include_file in ../Project-Includes/*; do source "$project_include_file" done +#Framework variables are read from hee +source $PROJECT_ROOT_PATH/Framework-ConfigFiles/FrameworkVars + export SUBODEV_CHECK SUBODEV_CHECK="$(getent passwd | grep -c subodev || true)" diff --git a/ProjectCode/Modules/Security/secharden-wazuh.sh b/ProjectCode/Modules/Security/secharden-wazuh.sh index 1fe4acb..c8b85b2 100644 --- a/ProjectCode/Modules/Security/secharden-wazuh.sh +++ b/ProjectCode/Modules/Security/secharden-wazuh.sh @@ -1,5 +1,31 @@ #!/bin/bash +##### +#Core framework functions... +##### + +export PROJECT_ROOT_PATH +PROJECT_ROOT_PATH="$(realpath ../../)" + +#Framework variables are read from hee + +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" + +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do + source "$framework_include_file" +done + +for project_include_file in ../Project-Includes/*; do + source "$project_include_file" +done + + # We don't want to run this on the wazuh server, otherwise bad things happen... export TSYS_NSM_CHECK diff --git a/ProjectCode/SetupNewSystem.sh b/ProjectCode/SetupNewSystem.sh index e3b6205..1f640cc 100644 --- a/ProjectCode/SetupNewSystem.sh +++ b/ProjectCode/SetupNewSystem.sh @@ -8,9 +8,17 @@ export PROJECT_ROOT_PATH PROJECT_ROOT_PATH="$(realpath ../)" #Framework variables are read from hee -source $PROJECT_ROOT_PATH/Framework-ConfigFiles/FrameworkVars -for framework_include_file in ../Framework-Includes/*; do + +export GIT_VENDOR_PATH_ROOT +GIT_VENDOR_PATH_ROOT="$PROJECT_ROOT_PATH/vendor/git@git.knownelement.com/29418/" + +export KNELShellFrameworkRoot +KNELShellFrameworkRoot="$GIT_VENDOR_PATH_ROOT/KNEL/KNELShellFramework" + +source $KNELShellFrameworkRoot/Framework-ConfigFiles/FrameworkVars + +for framework_include_file in $KNELShellFrameworkRoot/framework-includes/*; do source "$framework_include_file" done