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
This commit is contained in:
@@ -0,0 +1,341 @@
|
||||
# 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
|
||||
|
||||
---
|
||||
|
||||
## Recommended Implementation Plan
|
||||
|
||||
### 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:
|
||||
```bash
|
||||
# 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:
|
||||
```bash
|
||||
# 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:
|
||||
```bash
|
||||
# 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:
|
||||
```bash
|
||||
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)
|
||||
Reference in New Issue
Block a user