cschantz b3d31e838e Add comprehensive IPset initialization error reporting and diagnostics
Changes to modules/security/live-attack-monitor.sh:

FEATURE: Detailed IPset failure reporting with actionable diagnostics

Problem:
Previously, if IPset initialization failed, it silently fell back to CSF
with only a debug.log entry. Users had no visibility into:
- WHY IPset failed to initialize
- WHAT the actual error was
- HOW to fix the problem
- IMPACT on performance

Solution:
Added comprehensive error detection, capture, and user-facing reporting.

1. ERROR CAPTURE (Lines 71, 92-127, 132-145):

   Line 71: Added IPSET_INIT_ERROR variable to store failure reasons

   Lines 92-93: Capture ipset create output and exit code
   - OLD: ipset create ... 2>/dev/null (silent failure)
   - NEW: IPSET_CREATE_OUTPUT=$(ipset create ... 2>&1)
           IPSET_CREATE_EXIT=$?

   Lines 100-101: Capture iptables rule creation output
   - IPTABLES_OUTPUT=$(iptables -I INPUT ... 2>&1)
   - IPTABLES_EXIT=$?

   Lines 103-111: Detect iptables failure even after ipset succeeds
   - Clean up ipset if iptables rule fails
   - Set IPSET_INIT_ERROR with specific failure reason
   - Prevents partial initialization

2. DIAGNOSTIC ANALYSIS (Lines 118-127, 136-145):

   Kernel module detection (lines 118-122):
   - Checks if error mentions "module"
   - Runs: lsmod | grep -E "ip_set|xt_set"
   - Reports which modules are NOT LOADED
   - Appends to IPSET_INIT_ERROR for user display

   Permission detection (lines 124-127):
   - Checks if error mentions "permission"
   - Reports current user and EUID
   - Helps identify non-root execution

   Package installation check (lines 136-145):
   - For "command not found" errors
   - Checks rpm -q ipset (RHEL/CentOS)
   - Checks dpkg -l ipset (Debian/Ubuntu)
   - Distinguishes: not installed vs installed but not in PATH

3. USER-FACING WARNING DISPLAY (Lines 3318-3359):

   Startup Warning Banner:
   - Only displayed if IPSET_INIT_ERROR is set
   - Color-coded warning (HIGH_COLOR)
   - Clear visual separation with borders

   Information provided:
   a) What failed: "IPset fast blocking is NOT available"
   b) Why it failed: Displays IPSET_INIT_ERROR content
   c) Performance impact:
      - "Blocking will use CSF (slower than IPset)"
      - "~50x slower blocking vs IPset"
      - "Large-scale attacks (500+ IPs) will be slower"
   d) How to fix: Context-aware instructions based on error type

   Context-Aware Fix Instructions (lines 3335-3351):

   If "not found" in error:
     → Install ipset: yum install ipset -y
     → Restart script

   If "module" in error:
     → Load kernel modules: modprobe ip_set ip_set_hash_ip xt_set
     → Restart script

   If "permission" in error:
     → Run script as root: sudo $0

   If "iptables" in error:
     → Check iptables: iptables -L -n
     → Install if missing: yum install iptables -y
     → Load xt_set module: modprobe xt_set

   Default (unknown error):
     → Check debug log: $TEMP_DIR/debug.log
     → Ensure ipset and iptables installed
     → Run as root

   Line 3358: sleep 3 - Gives user time to read before monitor starts

4. DEBUG LOG ENHANCEMENT (Lines 108, 115, 121, 126, 138, 141, 144):

   All errors now logged to debug.log with context:
   - "✗ IPset created but iptables rule failed: [error]"
   - "✗ IPset creation failed: [error]"
   - "  → Kernel module issue detected. Loaded modules: [list]"
   - "  → Permission denied. Current user: [user], EUID: [id]"
   - "  → ipset package IS installed but command not found"
   - "  → ipset package NOT installed"

BENEFITS:

For Users:
✓ Immediately see WHY IPset isn't working
✓ Get specific fix instructions (not generic troubleshooting)
✓ Understand performance impact of CSF fallback
✓ No need to dig through debug logs

For Support/Debugging:
✓ Detailed error messages in debug.log
✓ Kernel module status captured
✓ Permission issues identified
✓ Package installation status verified

Example Error Messages:

1. Package not installed:
   "ipset command not found in PATH | Package not installed"
   Fix: Install ipset: yum install ipset -y

2. Kernel module missing:
   "ipset creation failed: can't load module | Kernel modules: NOT LOADED"
   Fix: Load modules: modprobe ip_set ip_set_hash_ip xt_set

3. Permission denied:
   "ipset creation failed: permission denied | Permission denied (need root)"
   Fix: Run script as root: sudo $0

4. iptables rule failed:
   "iptables rule creation failed: can't initialize iptables"
   Fix: Install iptables, load xt_set module

TESTING:
- Syntax validated:  PASSED
- Error capture verified
- Diagnostic logic tested for all error types
- User display formatting confirmed

STATUS:  READY - Users will now get clear, actionable error messages
2025-12-25 16:57:35 -05:00
2025-11-03 18:14:51 -05:00

Linux Server Management Toolkit

Comprehensive multi-panel server management suite supporting cPanel, InterWorx, Plesk, and standalone Apache with modular architecture and intelligent security features.

📦 Directory Structure

server-toolkit/
├── launcher.sh                          # Main menu system
├── README.md                            # This file
│
├── modules/                             # Modular scripts organized by category
│   │
│   ├── diagnostics/                     # 🔍 System Diagnostics
│   │   ├── system-health-check.sh      # Comprehensive health analysis
│   │   └── loadwatch-analyzer.sh       # Historical system health analysis
│   │
│   ├── security/                        # 🛡️ Security & Monitoring
│   │   ├── bot-analyzer.sh             # Full bot/threat analysis
│   │   ├── live-attack-monitor.sh      # Real-time attack monitoring dashboard
│   │   ├── ssh-attack-monitor.sh       # SSH brute force detection
│   │   ├── web-traffic-monitor.sh      # Web traffic monitoring
│   │   ├── firewall-activity-monitor.sh # CSF/iptables monitoring
│   │   ├── enable-cphulk.sh            # cPHulk enablement with CSF whitelist import
│   │   ├── ip-reputation-manager.sh    # Centralized IP reputation tracking
│   │   └── tail-*.sh                   # Various log monitoring scripts
│   │
│   ├── backup/                          # 💾 Backup & Recovery
│   │   ├── acronis-*.sh                # Acronis Cyber Protect (9 management scripts)
│   │   └── mysql-restore-to-sql.sh     # MySQL/MariaDB database restore & dump tool
│   │
│   ├── website/                         # 🌐 Website Diagnostics
│   │   ├── website-error-analyzer.sh   # Comprehensive error analysis
│   │   ├── 500-error-tracker.sh        # Fast 500 error tracking
│   │   └── wordpress/                  # WordPress tools
│   │
│   ├── performance/                     # 📊 Performance Analysis
│   │   ├── hardware-health-check.sh    # Hardware diagnostics
│   │   ├── mysql-query-analyzer.sh     # MySQL performance analysis
│   │   ├── network-bandwidth-analyzer.sh # Network analysis
│   │   ├── php-optimizer.sh            # PHP Configuration Optimizer (NEW!)
│   │   └── (other performance modules)
│   │
│   └── maintenance/                     # 🧹 System Maintenance
│       └── cleanup-toolkit-data.sh     # Clean temporary toolkit data
│
├── lib/                                 # Shared libraries
│   ├── common-functions.sh             # Reusable functions
│   ├── system-detect.sh                # System type detection
│   ├── user-manager.sh                 # User account management
│   ├── mysql-analyzer.sh               # MySQL utilities
│   ├── reference-db.sh                 # Cross-module intelligence sharing
│   ├── php-detector.sh                 # PHP configuration detection (NEW!)
│   ├── php-analyzer.sh                 # PHP performance analysis engine (NEW!)
│   └── php-config-manager.sh           # PHP config backup/restore/modification (NEW!)
│
├── config/                              # Configuration files
│   ├── settings.conf                   # Main configuration
│   ├── whitelist-ips.txt               # IP whitelist
│   └── whitelist-user-agents.txt       # User-Agent whitelist
│
└── tools/                               # Utility scripts
    ├── diagnostic-report.sh            # Generate system reports
    └── test-*.sh                       # Testing utilities

🚀 Quick Start

Installation & Running

One command - automatic cleanup:

curl -sL https://git.mull.lol/cschantz/Linux-Server-Management-Toolkit/archive/main.tar.gz | tar xz && source linux-server-management-toolkit/run.sh

When exiting (option 0), answer "yes" and cleanup happens automatically - no extra steps.

Or if already downloaded:

source /root/linux-server-management-toolkit/run.sh

Key Features

🛡️ Security & Monitoring

  • Bot & Traffic Analyzer: Full bot/threat analysis with pattern detection
  • Live Attack Monitor: Real-time SOC dashboard with threat classification
  • Specialized Monitors: SSH attacks, web traffic, firewall activity
  • IP Reputation Manager: Centralized cross-module IP intelligence with query/tracking
  • Malware Scanner: ImunifyAV, ClamAV, and Maldet integration
  • cPHulk Integration: Auto-imports CSF whitelists from all sources
  • Log Viewers: Live tail for Apache access/error, mail, and security logs
  • Optimized Status Checks: Uses cached domain status (no redundant HTTP requests)

💾 Backup & Recovery

  • Acronis Cyber Protect: Complete agent management (install, update, configure, monitor, troubleshoot)
  • MySQL Database Restore Tool: Advanced recovery from file-based backups with intelligent Force Recovery
    • Multi-control panel support (cPanel, InterWorx, Plesk, standalone)
    • Smart detection for selective restore scenarios
    • Safe single-database extraction from full backups
    • Clean SQL export for production import

🌐 Website Diagnostics

  • Error Analysis: Comprehensive website error detection and troubleshooting
  • 500 Error Tracking: Detailed analysis of application errors
  • Log Integration: Apache, PHP-FPM, cPanel error log analysis
  • Smart Recommendations: Context-aware suggestions for fixing issues

🔍 Performance & Diagnostics

  • System Health Check: Comprehensive hardware, services, and security posture analysis
  • Loadwatch Analyzer: Historical system health analysis (1h/6h/24h/7d/30d time ranges)
  • MySQL Query Analyzer: Slow query detection and optimization recommendations
  • Network & Bandwidth Analyzer: Traffic analysis and top consumers
  • Hardware Health Check: SMART, memory, CPU sensors
  • PHP Configuration Optimizer: Per-domain PHP-FPM tuning with auto-backup and zero downtime
  • Multi-Panel Support: cPanel, InterWorx, Plesk, standalone Apache

📊 Session Intelligence

  • Reference Database: Cross-module data sharing (.sysref)
  • No Historical Tracking: Session-based intelligence only
  • "Download, Run, Fix, Delete": Designed for one-time troubleshooting

🎯 Usage Examples

Quick System Health Check

bash launcher.sh
# Select: 1) System Health Check

Security Analysis & Monitoring

bash launcher.sh
# Select: 2) Security & Monitoring
# Options:
#   - Bot & Traffic Analyzer (full scan or 1-hour quick scan)
#   - Live Attack Monitor (unified threat intelligence)
#   - SSH/Web/Firewall attack monitors
#   - IP Reputation Manager
#   - Malware Scanner
#   - Enable cPHulk Protection

Website Diagnostics

bash launcher.sh
# Select: 3) Website Diagnostics
# Options:
#   - Website Error Analyzer (comprehensive error detection)
#   - Fast 500 Error Tracker (500 errors only)
#   - WordPress Tools (WP-Cron manager)

Performance Analysis

bash launcher.sh
# Select: 4) Performance Analysis
# Options:
#   - MySQL Query Analyzer (slow query detection)
#   - Network & Bandwidth Analyzer
#   - Hardware Health Check
#   - PHP Configuration Optimizer (per-domain tuning)
#   - Loadwatch Health Analyzer (1h/6h/24h/7d/30d analysis)

Backup & Recovery

bash launcher.sh
# Select: 5) Backup & Recovery
# Options:
#   - Acronis Management (complete backup interface)
#   - MySQL File Restore (convert DB files to SQL)

🔧 Configuration

Edit the configuration file:

nano /root/server-toolkit/config/settings.conf

🔒 Security Considerations

  • Run as root: Most modules require root access
  • Credentials stored safely: Git credentials in ~/.git-credentials (outside project)
  • No sensitive data in repo: .gitignore excludes keys, tokens, credentials
  • Test first: Try on non-production environments first

📊 Recent Updates (v2.1)

December 2025 Highlights

  • Launcher Cleanup: Removed 90+ phantom menu items, reduced from 1,576 to 574 lines (64% reduction)
  • Performance: Cached domain status checks save ~5 minutes on 50-domain servers
  • MySQL Restore Tool: Advanced database recovery with intelligent Force Recovery detection
  • Multi-Panel: Full support for cPanel, InterWorx, Plesk, standalone Apache

Current Feature Set

  • 41 Working Modules: Security (14), Website (3), Performance (5), Backup (11), Diagnostics (8)
  • Reference Database: 1-hour cached status for cross-module intelligence
  • Zero Hardcoded Paths: Automatic control panel detection and path abstraction

🙏 Credits

Built for comprehensive cPanel/Linux server management with a focus on security and intelligent automation.


Version: 2.1.0 Repository: https://git.mull.lol/cschantz/Linux-Server-Management-Toolkit

S
Description
No description provided
Readme MIT 18 MiB
Languages
Shell 100%