From 1de76ae6c1d1160f528e273f5a664d24dbfdf671 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Sat, 28 Mar 2026 22:50:44 +0100 Subject: [PATCH] Create security_menu.sh --- scripts/menus/security_menu.sh | 70 ++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 scripts/menus/security_menu.sh diff --git a/scripts/menus/security_menu.sh b/scripts/menus/security_menu.sh new file mode 100644 index 00000000..81951a40 --- /dev/null +++ b/scripts/menus/security_menu.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# ProxMenux - Security Menu +# ============================================ +# Author : MacRimi +# Copyright : (c) 2024 MacRimi +# License : (GPL-3.0) (https://github.com/MacRimi/ProxMenux/blob/main/LICENSE) +# Version : 1.0 +# ============================================ + +SCRIPT_TITLE="Security Tools" + +BASE_DIR="/usr/local/share/proxmenux" +UTILS_FILE="$BASE_DIR/utils.sh" +LOCAL_SCRIPTS="$BASE_DIR/scripts" + +if [[ -f "$UTILS_FILE" ]]; then + source "$UTILS_FILE" +fi + +load_language +initialize_cache + +# ========================================================== +# Security Menu +# ========================================================== +security_menu() { + while true; do + local menu_text + menu_text="\n$(translate 'Security tools for hardening and auditing your Proxmox VE system.')\n\n" + menu_text+="$(translate 'Select an option:')" + + local OPTION + OPTION=$(dialog --backtitle "ProxMenux" \ + --title "$(translate "$SCRIPT_TITLE")" \ + --menu "$menu_text" 18 70 4 \ + "1" "$(translate 'Fail2Ban - Intrusion Prevention')" \ + "2" "$(translate 'Lynis - Security Audit')" \ + "0" "$(translate 'Return to Main Menu')" \ + 3>&1 1>&2 2>&3) || OPTION="0" + + case "$OPTION" in + 1) + if [[ -f "$LOCAL_SCRIPTS/security/fail2ban_installer.sh" ]]; then + bash "$LOCAL_SCRIPTS/security/fail2ban_installer.sh" + else + msg_error "$(translate 'Script not found:') fail2ban_installer.sh" + sleep 2 + fi + ;; + 2) + if [[ -f "$LOCAL_SCRIPTS/security/lynis_installer.sh" ]]; then + bash "$LOCAL_SCRIPTS/security/lynis_installer.sh" + else + msg_error "$(translate 'Script not found:') lynis_installer.sh" + sleep 2 + fi + ;; + 0|*) + break + ;; + esac + done +} + +# ========================================================== +# Main +# ========================================================== +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + security_menu +fi