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

342 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)