#!/bin/bash ############################################################################# # Server Management Toolkit - Main Launcher # Version: 2.1 # # Streamlined menu showing only implemented features ############################################################################# set -eo pipefail # Configuration SUITE_VERSION="2.1.0" BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODULES_DIR="$BASE_DIR/modules" LIB_DIR="$BASE_DIR/lib" CONFIG_DIR="$BASE_DIR/config" # Load core libraries source "$LIB_DIR/common-functions.sh" source "$LIB_DIR/system-detect.sh" source "$LIB_DIR/domain-discovery.sh" source "$LIB_DIR/user-manager.sh" source "$LIB_DIR/reference-db.sh" # Color codes RED='\033[0;31m' YELLOW='\033[1;33m' GREEN='\033[0;32m' BLUE='\033[0;34m' CYAN='\033[0;36m' MAGENTA='\033[0;35m' BOLD='\033[1m' NC='\033[0m' # Banner show_banner() { clear echo -e "${CYAN}═══════════════════════════════════════════════════════════════${NC}" echo -e "${CYAN} ⚡ Server Management Toolkit v${SUITE_VERSION}${NC}" echo -e "${CYAN} Complete cPanel/Linux Server Administration Suite${NC}" echo -e "${CYAN}═══════════════════════════════════════════════════════════════${NC}" echo "" } # Run a module run_module() { local category="$1" local module="$2" shift 2 if [ ! -f "$MODULES_DIR/$category/$module" ]; then echo "" echo -e "${RED}✗ Module not found: $category/$module${NC}" echo "" read -p "Press Enter to continue..." < /dev/tty 2>/dev/null || true return 1 fi echo "" echo -e "${CYAN}Launching: $category/$module${NC}" echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}" # Run module directly - keep SYS_ variables cached for performance # Modules will use cached detection instead of re-detecting on every run "$MODULES_DIR/$category/$module" "$@" local exit_code=$? echo "" echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}" if [ "${exit_code:-0}" -eq 0 ]; then echo -e "${GREEN}✓ Completed successfully${NC}" else echo -e "${RED}✗ Exited with code: $exit_code${NC}" fi echo "" read -p "Press Enter to continue..." < /dev/tty 2>/dev/null || true } ############################################################################# # MAIN MENU ############################################################################# show_main_menu() { show_banner echo -e "${BOLD}Quick Diagnostics:${NC}" echo "" echo -e " ${MAGENTA}1)${NC} 🏥 System Health Check - Full server diagnostics" echo "" echo -e "${BOLD}Main Categories:${NC}" echo "" echo -e " ${GREEN}2)${NC} 🛡️ Security & Monitoring" echo -e " ${BLUE}3)${NC} 🌐 Website Diagnostics" echo -e " ${MAGENTA}4)${NC} 🔧 Performance & Maintenance" echo -e " ${YELLOW}5)${NC} 💾 Backup & Recovery" echo -e " ${CYAN}6)${NC} 📧 Email Troubleshooting" echo "" echo -e "${BOLD}System:${NC}" echo "" echo -e " ${YELLOW}7)${NC} 🗑️ Cleanup Toolkit Data - Clear cached data" echo "" echo -e " ${RED}0)${NC} Exit" echo "" echo -e "${CYAN}═══════════════════════════════════════════════════════════════${NC}" echo -n "Select option: " } ############################################################################# # SECURITY & MONITORING ############################################################################# ############################################################################# # SECURITY SUB-MENUS ############################################################################# # Threat Analysis Sub-Menu show_threat_analysis_menu() { show_banner echo -e "${GREEN}${BOLD}📊 Threat Analysis${NC}" echo "" echo -e " ${CYAN}1)${NC} 🤖 Bot & Traffic Analyzer - Full analysis (all logs)" echo -e " ${CYAN}2)${NC} 🤖 Quick Scan (1 hour) - Recent activity only" echo -e " ${CYAN}3)${NC} 📊 IP Reputation Manager - Query/manage IP database" echo -e " ${CYAN}4)${NC} 🔐 Suspicious Login Monitor - SSH/Panel login analysis" echo -e " ${CYAN}5)${NC} 🦠 Malware Scanner - ImunifyAV, ClamAV, Maldet" echo -e " ${CYAN}6)${NC} 🛡️ Historical Attack Analysis - Scan past logs (ET Open)" echo "" echo -e " ${RED}0)${NC} Back to Security Menu" echo "" echo -e "${CYAN}──────────────────────────────────────────────────────────────${NC}" echo -n "Select option: " } handle_threat_analysis_menu() { while true; do show_threat_analysis_menu if ! read -r choice 2>/dev/null /dev/null /dev/null /dev/null /dev/null /dev/null /dev/null /dev/null /dev/null /dev/null /dev/null touch "$CONFIG_DIR/whitelist-user-agents.txt" 2>/dev/null } startup_detection() { # Initialize system detection first (required for proper reference database) if [ -z "${SYS_DETECTION_COMPLETE:-}" ]; then initialize_system_detection fi if ! db_is_fresh; then clear print_banner "Server Management Toolkit - Initializing" echo "" print_info "Detecting server configuration..." echo "" build_reference_database echo "" print_section "Detection Summary" echo "" echo -e "${BOLD}System:${NC}" echo " Control Panel: $SYS_CONTROL_PANEL $SYS_CONTROL_PANEL_VERSION" echo " OS: $SYS_OS_TYPE $SYS_OS_VERSION" echo " Web Server: $SYS_WEB_SERVER $SYS_WEB_SERVER_VERSION" echo " Database: $SYS_DB_TYPE $SYS_DB_VERSION" echo "" local user_count=$(grep -c "^USER|" "$SYSREF_DB" 2>/dev/null || echo 0) local domain_count=$(grep -c "^DOMAIN|" "$SYSREF_DB" 2>/dev/null || echo 0) local db_count=$(grep -c "^DB|" "$SYSREF_DB" 2>/dev/null || echo 0) local wp_count=$(grep -c "^WP|" "$SYSREF_DB" 2>/dev/null || echo 0) echo -e "${BOLD}Server Content:${NC}" echo " Users: $user_count" echo " Domains: $domain_count" echo " Databases: $db_count" echo " WordPress Sites: $wp_count" echo "" print_success "Detection complete! Cached for 1 hour." echo "" read -p "Press Enter to continue..." < /dev/tty 2>/dev/null || true fi } ############################################################################# # MAIN LOOP ############################################################################# main() { init_directories startup_detection while true; do show_main_menu # Read from terminal (use /dev/tty directly for interaction) if ! read -r choice 2>/dev/null