v2.3
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# Build Linux audit binaries with PyInstaller
|
||||
# Run this on the TARGET OS version:
|
||||
# - Ubuntu binary → build on Ubuntu 20.04+
|
||||
# - CentOS 7 binary → build on CentOS 7
|
||||
# - CentOS 6 binary → build on CentOS 6 (Python 2.6+)
|
||||
# - Oracle binary → build on Oracle Linux 7+
|
||||
#
|
||||
# Usage: bash build_all.sh [ubuntu|centos|oracle|centos6|all]
|
||||
# ============================================================
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PARENT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
CHECK_SCRIPT_DIR="${PARENT_DIR}/audit_check_script"
|
||||
DIST_DIR="${SCRIPT_DIR}/dist"
|
||||
|
||||
mkdir -p "${DIST_DIR}"
|
||||
|
||||
build_ubuntu() {
|
||||
echo "=== Building Ubuntu Audit Tool ==="
|
||||
cp "${CHECK_SCRIPT_DIR}/audit_cis_ubuntu_v202.sh" "${SCRIPT_DIR}/"
|
||||
pip install pycryptodome cryptography colorama unidecode pyinstaller
|
||||
pyinstaller --onefile --console --name ubuntu_audit \
|
||||
--add-data "audit_cis_ubuntu_v202.sh:." \
|
||||
--hidden-import colorama \
|
||||
--hidden-import unidecode \
|
||||
--hidden-import Crypto.Cipher \
|
||||
--hidden-import Crypto.PublicKey \
|
||||
--hidden-import Crypto.Util.Padding \
|
||||
--hidden-import cryptography \
|
||||
--hidden-import cryptography.hazmat.primitives.ciphers \
|
||||
--hidden-import cryptography.hazmat.primitives.padding \
|
||||
ubuntu_audit_v2.py
|
||||
echo " -> ${DIST_DIR}/ubuntu_audit"
|
||||
}
|
||||
|
||||
build_centos() {
|
||||
echo "=== Building CentOS/RHEL Audit Tool ==="
|
||||
cp "${CHECK_SCRIPT_DIR}/audit_cis_centos_v202.sh" "${SCRIPT_DIR}/"
|
||||
pip install pycryptodome cryptography colorama unidecode pyinstaller
|
||||
pyinstaller --onefile --console --name centos_rhel_audit \
|
||||
--add-data "audit_cis_centos_v202.sh:." \
|
||||
--hidden-import colorama \
|
||||
--hidden-import unidecode \
|
||||
--hidden-import Crypto.Cipher \
|
||||
--hidden-import Crypto.PublicKey \
|
||||
--hidden-import Crypto.Util.Padding \
|
||||
--hidden-import cryptography \
|
||||
--hidden-import cryptography.hazmat.primitives.ciphers \
|
||||
--hidden-import cryptography.hazmat.primitives.padding \
|
||||
centos_rhel_audit_v2.py
|
||||
echo " -> ${DIST_DIR}/centos_rhel_audit"
|
||||
}
|
||||
|
||||
build_oracle() {
|
||||
echo "=== Building Oracle Linux Audit Tool ==="
|
||||
cp "${CHECK_SCRIPT_DIR}/audit_cis_centos_v202.sh" "${SCRIPT_DIR}/"
|
||||
pip install pycryptodome cryptography colorama unidecode pyinstaller
|
||||
pyinstaller --onefile --console --name oracle_linux_audit \
|
||||
--add-data "audit_cis_centos_v202.sh:." \
|
||||
--hidden-import colorama \
|
||||
--hidden-import unidecode \
|
||||
--hidden-import Crypto.Cipher \
|
||||
--hidden-import Crypto.PublicKey \
|
||||
--hidden-import Crypto.Util.Padding \
|
||||
--hidden-import cryptography \
|
||||
--hidden-import cryptography.hazmat.primitives.ciphers \
|
||||
--hidden-import cryptography.hazmat.primitives.padding \
|
||||
oracle_linux_audit_v2.py
|
||||
echo " -> ${DIST_DIR}/oracle_linux_audit"
|
||||
}
|
||||
|
||||
build_centos6() {
|
||||
echo "=== Building CentOS 6 Audit Tool ==="
|
||||
cp "${CHECK_SCRIPT_DIR}/audit_cis_centos6.sh" "${SCRIPT_DIR}/"
|
||||
pip install pyinstaller
|
||||
pyinstaller --onefile --console --name centos6_audit \
|
||||
--add-data "audit_cis_centos6.sh:." \
|
||||
audit_centos6.py
|
||||
echo " -> ${DIST_DIR}/centos6_audit"
|
||||
}
|
||||
|
||||
build_all() {
|
||||
build_ubuntu
|
||||
build_centos
|
||||
build_oracle
|
||||
build_centos6
|
||||
}
|
||||
|
||||
case "${1:-all}" in
|
||||
ubuntu) build_ubuntu ;;
|
||||
centos) build_centos ;;
|
||||
oracle) build_oracle ;;
|
||||
centos6) build_centos6 ;;
|
||||
all) build_all ;;
|
||||
*)
|
||||
echo "Usage: bash build_all.sh [ubuntu|centos|oracle|centos6|all]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "Build complete! Output: ${DIST_DIR}/"
|
||||
echo ""
|
||||
echo "Deploy to target server:"
|
||||
echo " 1. Copy the binary from dist/"
|
||||
echo " 2. Copy public_key.pem to same folder"
|
||||
echo " 3. Run: ./<binary> (script is bundled, no -p needed)"
|
||||
echo " Or: ./<binary> -p custom_script.sh"
|
||||
echo "========================================"
|
||||
Reference in New Issue
Block a user