Files
Linux-Server-Management-Too…/INTERWORX_COMPATIBILITY_AUDIT.md
T
cschantz f513e5503d COMPREHENSIVE INTERWORX COMPATIBILITY AUDIT
Created detailed audit report of ALL 38 toolkit modules.

FINDINGS:
-  3 modules already InterWorx compatible
- ⚠️ 14 modules need InterWorx fixes
- ✓ 21 modules are control panel agnostic

CRITICAL ISSUES IDENTIFIED:

1. Security Modules (Priority 1)
   - live-attack-monitor.sh: Hardcoded domlogs path
   - malware-scanner.sh: Hardcoded public_html, cPanel paths
   - optimize-ct-limit.sh: Wrong fallback path

2. Website Diagnostics (Priority 2)
   - website-error-analyzer.sh: Heavy cPanel dependencies
   - 500-error-tracker.sh: /var/cpanel/users/* lookups

3. Monitoring Tools (Priority 3)
   - web-traffic-monitor.sh: Hardcoded domlogs
   - tail-apache-access.sh: Hardcoded paths
   - tail-apache-error.sh: Hardcoded paths
   - network-bandwidth-analyzer.sh: Hardcoded log detection

KEY PATH DIFFERENCES DOCUMENTED:
- Access logs: /var/log/apache2/domlogs/domain → /home/user/var/domain/logs/access_log
- Document root: /home/user/public_html → /home/user/domain.com/html
- Error logs: Different per-domain structure
- User config: /var/cpanel/users/* → NodeWorx API/vhost configs

STANDARD FIX PATTERN DEFINED:
1. Use SYS_LOG_DIR from system-detect.sh
2. Use get_user_info()/get_user_domains() from user-manager.sh
3. Support both cPanel and InterWorx document root patterns
4. Add InterWorx-specific log discovery

IMPLEMENTATION PLAN:
- Phase 3: Critical security modules (3 modules)
- Phase 4: Website diagnostics (2 modules)
- Phase 5: Monitoring tools (4 modules)
- Phase 6: System health check (1 module)

Estimated effort: 8 hours for full InterWorx parity

REPORT LOCATION:
INTERWORX_COMPATIBILITY_AUDIT.md
2025-11-19 18:57:11 -05:00

9.6 KiB
Raw Blame History

InterWorx Compatibility Audit Report

Generated: 2025-11-19 Toolkit Version: Latest from git

Executive Summary

Out of 38 total modules, 14 modules have hardcoded cPanel-specific paths that will break on InterWorx servers.

Compatibility Status:

  • 3 modules - Already InterWorx compatible (using SYS_LOG_DIR)
  • ⚠️ 14 modules - Need InterWorx fixes (hardcoded paths)
  • 21 modules - Control panel agnostic (no paths)

Critical Path Differences: cPanel vs InterWorx

Resource cPanel Location InterWorx Location
Access Logs /var/log/apache2/domlogs/domain.com /home/user/var/domain.com/logs/access_log
Error Logs /var/log/apache2/domlogs/domain-error_log /home/user/var/domain.com/logs/error_log
Document Root /home/user/public_html /home/user/domain.com/html
User Config /var/cpanel/users/username NodeWorx DB or listaccounts.pex
Domain Config /var/cpanel/userdata/user/domain /etc/httpd/conf.d/vhost_domain.conf
Main IP /var/cpanel/mainip /usr/local/interworx/iworx.ini
PHP Error Logs /home/user/public_html/error_log /home/user/domain.com/html/error_log

Modules Requiring Fixes

PRIORITY 1: Critical Security Modules

1. live-attack-monitor.sh ⚠️ HIGH PRIORITY

Issues:

  • Line 1256: LOG_DIR="${SYS_LOG_DIR:-/var/log/apache2/domlogs}"
  • Line 1261-1262: Hardcoded /var/log/httpd/access_log
  • Line 1267: Comment mentions "cPanel domlogs"
  • Line 1537: CPHulk detection (cPanel-only feature)

Fix Required:

  • Already uses SYS_LOG_DIR (GOOD!)
  • But fallback is wrong - should use system-detect.sh
  • Add InterWorx log discovery like bot-analyzer
  • CPHulk detection should be cPanel-only conditional

Impact: Real-time attack monitoring won't see attacks on InterWorx


2. malware-scanner.sh ⚠️ HIGH PRIORITY

Issues:

  • Line 31: /usr/local/cpanel/3rdparty/bin/clamscan check
  • Line 182: cPanel detection check
  • Line 353: PATH with cPanel 3rdparty
  • Line 429: get_user_docroots() function
  • Line 878-880: Hardcoded /var/log/apache2/domlogs search

Fix Required:

  • Use system-detect.sh for ClamAV path detection
  • Fix get_user_docroots() to use user-manager.sh functions
  • Support InterWorx document roots: /home/user/domain.com/html
  • Fix log file discovery for malware analysis

Impact: Malware scanner won't find infected files in InterWorx sites


3. optimize-ct-limit.sh ⚠️ MEDIUM PRIORITY

Issues:

  • Line 292: log_dir="${SYS_LOG_DIR:-/var/log/apache2/domlogs}"

Fix Required:

  • Already uses SYS_LOG_DIR (GOOD!)
  • Fallback should be removed (rely on system-detect.sh)

Impact: Can't analyze connection limits on InterWorx


PRIORITY 2: Website Diagnostic Modules

4. website-error-analyzer.sh ⚠️ HIGH PRIORITY

Issues:

  • Line 19: DOMLOGS_DIR="/var/log/apache2/domlogs"
  • Line 140: Hardcoded Apache error log paths
  • Line 153: /var/cpanel/users/* for user lookup
  • Line 161: find /home/*/public_html -name "error_log"
  • Line 176-177: Reads /var/cpanel/users/$FILTER_USER
  • Line 339: User lookup via /var/cpanel/users/*
  • Line 341: .user.ini in public_html
  • Line 815: Error log path in public_html

Fix Required:

  • Use SYS_LOG_DIR from system-detect.sh
  • Use get_user_info() and get_user_domains() from user-manager.sh
  • Support InterWorx document roots: /home/user/domain.com/html
  • Support InterWorx error logs: /home/user/var/domain.com/logs/error_log

Impact: Can't diagnose website errors on InterWorx


5. 500-error-tracker.sh ⚠️ HIGH PRIORITY

Issues:

  • Line 60: DOMLOGS_DIR="/var/log/apache2/domlogs"
  • Line 83: /var/cpanel/users/* for domain→user lookup
  • Line 233: docroot="/home/$user/public_html"
  • Line 261: Error log in public_html
  • Line 264-265: Hardcoded domlog paths
  • Line 454: /var/cpanel/userdata/$user/$domain
  • Line 679: Fix suggestion mentions public_html

Fix Required:

  • Use SYS_LOG_DIR from system-detect.sh
  • Use get_user_info() for user lookups
  • Support InterWorx document roots: /home/user/domain.com/html
  • Support InterWorx error logs in /home/user/var/domain.com/logs/

Impact: Can't track 500 errors on InterWorx


PRIORITY 3: Live Monitoring Tools

6. web-traffic-monitor.sh ⚠️ MEDIUM PRIORITY

Issues:

  • Line 12-13: Hardcoded /var/log/apache2/domlogs
  • Line 32: Error message mentions "domlogs"

Fix Required:

  • Use SYS_LOG_DIR from system-detect.sh
  • Add InterWorx log discovery

Impact: Can't monitor live web traffic on InterWorx


7. tail-apache-access.sh ⚠️ LOW PRIORITY

Issues:

  • Line 8: Hardcoded /var/log/apache2/domlogs/*

Fix Required:

  • Use SYS_LOG_DIR from system-detect.sh
  • Support InterWorx: tail -f /home/*/var/*/logs/access_log

Impact: Simple log tailing won't work


8. tail-apache-error.sh ⚠️ LOW PRIORITY

Issues:

  • Line 8: Hardcoded /var/log/httpd/error_log

Fix Required:

  • Use system-detect.sh to find Apache error log location
  • InterWorx: Per-domain error logs at /home/user/var/domain.com/logs/error_log

Impact: Can't tail error logs on InterWorx


PRIORITY 4: Performance Analysis

9. network-bandwidth-analyzer.sh ⚠️ MEDIUM PRIORITY

Issues:

  • Line 187-192: Hardcoded log directory detection

Fix Required:

  • Use SYS_LOG_DIR from system-detect.sh
  • Add InterWorx log discovery

Impact: Can't analyze bandwidth usage on InterWorx


PRIORITY 5: cPanel-Specific Modules (Expected)

10. enable-cphulk.sh N/A - cPanel Only

Issues:

  • Line 42: /usr/local/cpanel/bin/cphulk_pam_ctl check
  • Line 58, 68, 287: cPanel-specific commands
  • Line 131, 133: /var/cpanel/ and /usr/local/cpanel/ paths

Fix Required:

  • None - this is cPanel-specific
  • Should check SYS_CONTROL_PANEL=cpanel before running
  • Add warning for non-cPanel systems

PRIORITY 6: Diagnostic Tools

11. system-health-check.sh ⚠️ LOW PRIORITY

Issues:

  • Line 492-493: Hardcoded /var/log/httpd/error_log
  • Line 606-608: cPanel CPHulk checks
  • Line 941-942: cPanel version detection
  • Line 1205: Error log path in suggestion

Fix Required:

  • Use system-detect.sh for log paths
  • Make CPHulk checks conditional on SYS_CONTROL_PANEL=cpanel
  • Control panel version already detected in system-detect.sh

Impact: Health checks may miss issues on InterWorx


PRIORITY 7: Backup Tools

12. acronis-configure.sh DOCUMENTATION ONLY

Issues:

  • Line 52: Echo message mentions public_html

Fix Required:

  • Update documentation to mention both cPanel and InterWorx paths
  • No functional impact (just display text)

Modules Already Compatible

These modules already use SYS_LOG_DIR or user-manager.sh functions:

  1. bot-analyzer.sh - FIXED in Phase 1 & 2
  2. optimize-ct-limit.sh - Uses SYS_LOG_DIR (just needs fallback removed)
  3. mysql-query-analyzer.sh - Uses get_user_* functions

Modules That Are Control Panel Agnostic

These modules don't use control panel-specific paths (21 total):

  • All Acronis backup modules (13 modules)
  • Hardware health check
  • SSH attack monitor
  • Firewall activity monitor
  • Tail secure log
  • Tail mail log
  • IP reputation manager
  • Cleanup toolkit data
  • WordPress modules

Phase 3: Critical Security Modules (THIS PHASE)

  1. malware-scanner.sh - Fix document root discovery
  2. live-attack-monitor.sh - Fix log discovery
  3. optimize-ct-limit.sh - Remove hardcoded fallback

Phase 4: Website Diagnostic Modules

  1. website-error-analyzer.sh - Full InterWorx support
  2. 500-error-tracker.sh - Full InterWorx support

Phase 5: Monitoring Tools

  1. web-traffic-monitor.sh
  2. network-bandwidth-analyzer.sh
  3. tail-apache-access.sh
  4. tail-apache-error.sh

Phase 6: System Tools

  1. system-health-check.sh - Make cPanel checks conditional

Standard Fix Pattern

For all modules, follow this pattern:

1. Replace hardcoded paths with system-detect.sh:

# OLD (BAD):
LOG_DIR="/var/log/apache2/domlogs"

# NEW (GOOD):
LOG_DIR="${SYS_LOG_DIR}"  # Auto-detected in system-detect.sh

2. Use user-manager.sh functions:

# OLD (BAD):
user=$(grep -l "DNS.*$domain" /var/cpanel/users/* 2>/dev/null | ...)

# NEW (GOOD):
eval $(get_user_info "$username")
# Now you have: $USER_EXISTS, $PRIMARY_DOMAIN, $ALL_DOMAINS, $HOME_DIR

3. Support both document root patterns:

# OLD (BAD):
docroot="/home/$user/public_html"

# NEW (GOOD):
if [ "$SYS_CONTROL_PANEL" = "interworx" ]; then
    docroot="/home/$user/$domain/html"
else
    docroot="/home/$user/public_html"
fi

4. Add InterWorx log discovery:

if [ "$SYS_CONTROL_PANEL" = "interworx" ]; then
    find /home/*/var/*/logs -name "access_log" ...
else
    find "$LOG_DIR" -type f ! -name "*-bytes_log" ...
fi

Testing Checklist

For each fixed module, test on:

  • cPanel server (regression test)
  • InterWorx server (new functionality)
  • Standalone server (no control panel)

Estimated Effort

  • Phase 3: 2-3 hours (3 critical security modules)
  • Phase 4: 2-3 hours (2 website diagnostic modules)
  • Phase 5: 1-2 hours (4 simple monitoring tools)
  • Phase 6: 1 hour (system health check)

Total: ~8 hours to achieve full InterWorx parity


Current Progress

  • Phase 1: user-manager.sh InterWorx support (COMPLETE)
  • Phase 2: bot-analyzer.sh + system-detect.sh improvements (COMPLETE)
  • Phase 3: Critical security modules (PENDING)