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:
cschantz
2025-11-19 18:57:11 -05:00
parent d18885faa4
commit f513e5503d
+341
View File
@@ -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)