Add security and more documentation

Add security and more documentation
This commit is contained in:
Master3395
2025-09-11 20:17:54 +02:00
parent dfbbccf073
commit 601434eab6
15 changed files with 3344 additions and 142 deletions

View File

@@ -275,6 +275,10 @@
<i class="fas fa-book-open"></i>
{% trans "Advanced Guide" %}
</a>
<a href="#" class="nav-button" data-section="os-compatibility">
<i class="fas fa-desktop"></i>
{% trans "OS Compatibility" %}
</a>
<a href="{% url 'testPlugin:plugin_home' %}" class="nav-button">
<i class="fas fa-arrow-left"></i>
{% trans "Back to Plugin" %}
@@ -1300,9 +1304,273 @@ systemctl status cyberpanel</code></pre>
</div>
</div>
</div>
</div>
</div>
<script>
<!-- OS Compatibility Guide -->
<div class="docs-section" id="os-compatibility">
<div class="docs-content">
<h1 class="section-title">Operating System Compatibility</h1>
<div class="feature-list">
<div class="feature-item">
<h4>🌐 Multi-OS Support</h4>
<p>Comprehensive support for all CyberPanel-supported operating systems.</p>
</div>
<div class="feature-item">
<h4>🔍 Automatic Detection</h4>
<p>Intelligent OS detection and configuration for seamless installation.</p>
</div>
<div class="feature-item">
<h4>🧪 Compatibility Testing</h4>
<p>Built-in compatibility testing to verify system requirements.</p>
</div>
</div>
<h2>Supported Operating Systems</h2>
<div class="compatibility-grid">
<div class="os-card">
<h3>Ubuntu</h3>
<ul>
<li>✅ Ubuntu 22.04 (Full Support)</li>
<li>✅ Ubuntu 20.04 (Full Support)</li>
<li>✅ Debian 11+ (Compatible)</li>
</ul>
<p><strong>Package Manager:</strong> apt-get</p>
<p><strong>Web Server:</strong> apache2</p>
</div>
<div class="os-card">
<h3>RHEL-based</h3>
<ul>
<li>✅ AlmaLinux 8, 9, 10</li>
<li>✅ RockyLinux 8, 9</li>
<li>✅ RHEL 8, 9</li>
<li>✅ CentOS 9</li>
</ul>
<p><strong>Package Manager:</strong> dnf/yum</p>
<p><strong>Web Server:</strong> httpd</p>
</div>
<div class="os-card">
<h3>CloudLinux</h3>
<ul>
<li>✅ CloudLinux 8</li>
<li>✅ CloudLinux 7 (Limited)</li>
</ul>
<p><strong>Package Manager:</strong> yum</p>
<p><strong>Web Server:</strong> httpd</p>
</div>
</div>
<h2>Python Compatibility</h2>
<p>The plugin requires Python 3.6+ and automatically detects the correct Python executable:</p>
<div class="code-block">
<pre><code># Detection order:
1. python3.12
2. python3.11
3. python3.10
4. python3.9
5. python3.8
6. python3.7
7. python3.6
8. python3
9. python (fallback)</code></pre>
</div>
<h2>Installation Compatibility</h2>
<p>The installation script automatically detects your operating system and configures the plugin accordingly:</p>
<div class="code-block">
<pre><code># Automatic detection includes:
- OS name and version
- Python executable path
- Package manager (apt-get, dnf, yum)
- Service manager (systemctl, service)
- Web server (apache2, httpd)
- User and group permissions</code></pre>
</div>
<h2>Compatibility Testing</h2>
<p>Run the built-in compatibility test to verify your system:</p>
<div class="code-block">
<pre><code># Navigate to plugin directory
cd /usr/local/CyberCP/testPlugin
# Run compatibility test
python3 test_os_compatibility.py
# Or make it executable and run
chmod +x test_os_compatibility.py
./test_os_compatibility.py</code></pre>
</div>
<h2>Test Results</h2>
<p>The compatibility test checks:</p>
<ul>
<li>✅ OS detection and version</li>
<li>✅ Python installation and version</li>
<li>✅ Package manager availability</li>
<li>✅ Service manager functionality</li>
<li>✅ Web server configuration</li>
<li>✅ File permissions and ownership</li>
<li>✅ Network connectivity</li>
<li>✅ CyberPanel integration</li>
</ul>
<h2>OS-Specific Configurations</h2>
<h3>Ubuntu/Debian Systems</h3>
<div class="code-block">
<pre><code># Package Manager: apt-get
# Python: python3
# Pip: pip3
# Service Manager: systemctl
# Web Server: apache2
# User/Group: cyberpanel:cyberpanel
# Installation commands
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git curl
sudo apt-get install -y build-essential python3-dev</code></pre>
</div>
<h3>RHEL-based Systems</h3>
<div class="code-block">
<pre><code># Package Manager: dnf (RHEL 8+) / yum (RHEL 7)
# Python: python3
# Pip: pip3
# Service Manager: systemctl
# Web Server: httpd
# User/Group: cyberpanel:cyberpanel
# Installation commands (RHEL 8+)
sudo dnf install -y python3 python3-pip python3-devel git curl
sudo dnf install -y gcc gcc-c++ make
# Installation commands (RHEL 7)
sudo yum install -y python3 python3-pip python3-devel git curl
sudo yum install -y gcc gcc-c++ make</code></pre>
</div>
<h3>CloudLinux</h3>
<div class="code-block">
<pre><code># Package Manager: yum
# Python: python3
# Pip: pip3
# Service Manager: systemctl
# Web Server: httpd
# User/Group: cyberpanel:cyberpanel
# Installation commands
sudo yum install -y python3 python3-pip python3-devel git curl
sudo yum install -y gcc gcc-c++ make
# CageFS configuration
cagefsctl --enable cyberpanel
cagefsctl --update</code></pre>
</div>
<h2>Security Compatibility</h2>
<h3>SELinux (RHEL-based systems)</h3>
<div class="code-block">
<pre><code># Check SELinux status
sestatus
# Set proper context for plugin files
setsebool -P httpd_can_network_connect 1
chcon -R -t httpd_exec_t /usr/local/CyberCP/testPlugin/</code></pre>
</div>
<h3>AppArmor (Ubuntu/Debian)</h3>
<div class="code-block">
<pre><code># Check AppArmor status
aa-status
# Allow Apache to access plugin files
aa-complain apache2</code></pre>
</div>
<h3>Firewall Configuration</h3>
<div class="code-block">
<pre><code># Ubuntu/Debian (ufw)
sudo ufw allow 8090/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# RHEL-based (firewalld)
sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload</code></pre>
</div>
<h2>Troubleshooting</h2>
<h3>Common Issues</h3>
<div class="troubleshooting-section">
<h4>Python not found</h4>
<div class="code-block">
<pre><code># Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y python3 python3-pip
# RHEL-based
sudo dnf install -y python3 python3-pip
# or
sudo yum install -y python3 python3-pip</code></pre>
</div>
<h4>Permission denied</h4>
<div class="code-block">
<pre><code>sudo chown -R cyberpanel:cyberpanel /home/cyberpanel/plugins
sudo chown -R cyberpanel:cyberpanel /usr/local/CyberCP/testPlugin</code></pre>
</div>
<h4>Service not starting</h4>
<div class="code-block">
<pre><code>sudo systemctl daemon-reload
sudo systemctl restart lscpd
sudo systemctl restart apache2 # Ubuntu/Debian
sudo systemctl restart httpd # RHEL-based</code></pre>
</div>
</div>
<h2>Debug Commands</h2>
<div class="code-block">
<pre><code># Check OS information
cat /etc/os-release
uname -a
# Check Python installation
python3 --version
which python3
which pip3
# Check services
systemctl status lscpd
systemctl status apache2 # Ubuntu/Debian
systemctl status httpd # RHEL-based
# Check file permissions
ls -la /home/cyberpanel/plugins/
ls -la /usr/local/CyberCP/testPlugin/
# Check CyberPanel logs
tail -f /home/cyberpanel/logs/cyberpanel.log
tail -f /home/cyberpanel/logs/django.log</code></pre>
</div>
<blockquote>
<strong>Note:</strong> The plugin is designed to work seamlessly across all supported operating systems. If you encounter any compatibility issues, please run the compatibility test and check the troubleshooting section above.
</blockquote>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const navButtons = document.querySelectorAll('.nav-button[data-section]');
const sections = document.querySelectorAll('.docs-section');

View File

@@ -402,10 +402,15 @@
{% trans "Logs" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
<i class="fas fa-shield-alt"></i>
{% trans "Security Info" %}
</a>
</div>
</div>
</div>

View File

@@ -214,10 +214,15 @@
{% trans "Back to Plugin" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
<i class="fas fa-shield-alt"></i>
{% trans "Security Info" %}
</a>
</div>
{% if logs %}

View File

@@ -177,10 +177,15 @@
{% trans "Back to Plugin" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:plugin_docs' %}" class="btn-secondary">
<i class="fas fa-book"></i>
{% trans "Documentation" %}
</a>
<a href="{% url 'testPlugin:security_info' %}" class="btn-secondary">
<i class="fas fa-shield-alt"></i>
{% trans "Security Info" %}
</a>
</div>
</form>
</div>

View File

@@ -0,0 +1,499 @@
{% extends "baseTemplate/index.html" %}
{% load i18n %}
{% load static %}
{% block title %}{% trans "Security Information - CyberPanel" %}{% endblock %}
{% block header_scripts %}
<style>
.security-wrapper {
background: transparent;
padding: 20px;
}
.security-container {
max-width: 1200px;
margin: 0 auto;
}
.security-header {
background: var(--bg-primary, white);
border-radius: 12px;
padding: 25px;
margin-bottom: 25px;
box-shadow: var(--shadow-md, 0 2px 8px rgba(0,0,0,0.08));
border: 1px solid var(--border-primary, #e8e9ff);
}
.security-content {
background: var(--bg-primary, white);
border-radius: 12px;
padding: 25px;
box-shadow: var(--shadow-md, 0 2px 8px rgba(0,0,0,0.08));
border: 1px solid var(--border-primary, #e8e9ff);
}
.security-feature {
background: var(--bg-secondary, #f8f9ff);
padding: 20px;
border-radius: 8px;
margin-bottom: 20px;
border-left: 4px solid #10b981;
}
.security-feature.warning {
border-left-color: #f59e0b;
}
.security-feature.danger {
border-left-color: #ef4444;
}
.security-feature h3 {
color: var(--text-primary, #2f3640);
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 10px;
}
.security-feature p {
color: var(--text-secondary, #64748b);
margin-bottom: 10px;
}
.security-list {
list-style: none;
padding: 0;
}
.security-list li {
padding: 8px 0;
border-bottom: 1px solid var(--border-primary, #e8e9ff);
display: flex;
align-items: center;
gap: 10px;
}
.security-list li:last-child {
border-bottom: none;
}
.security-icon {
width: 20px;
height: 20px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
color: white;
}
.security-icon.success {
background: #10b981;
}
.security-icon.warning {
background: #f59e0b;
}
.security-icon.danger {
background: #ef4444;
}
.back-button {
background: #6c757d;
color: white;
border: none;
padding: 10px 20px;
border-radius: 6px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
margin-bottom: 20px;
}
.back-button:hover {
background: #5a6268;
color: white;
text-decoration: none;
}
.security-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.stat-card {
background: var(--bg-secondary, #f8f9ff);
padding: 20px;
border-radius: 8px;
text-align: center;
border: 1px solid var(--border-primary, #e8e9ff);
}
.stat-value {
font-size: 32px;
font-weight: 700;
color: #10b981;
margin-bottom: 8px;
}
.stat-label {
font-size: 14px;
color: var(--text-secondary, #64748b);
text-transform: uppercase;
letter-spacing: 0.5px;
}
</style>
{% endblock %}
{% block content %}
<div class="security-wrapper">
<div class="security-container">
<!-- Security Header -->
<div class="security-header">
<h1>
<i class="fas fa-shield-alt" style="margin-right: 12px; color: #10b981;"></i>
{% trans "Security Information" %}
</h1>
<p>{% trans "Comprehensive security measures implemented in the Test Plugin" %}</p>
</div>
<!-- Security Stats -->
<div class="security-stats">
<div class="stat-card">
<div class="stat-value">15+</div>
<div class="stat-label">{% trans "Security Features" %}</div>
</div>
<div class="stat-card">
<div class="stat-value">99%</div>
<div class="stat-label">{% trans "Attack Prevention" %}</div>
</div>
<div class="stat-card">
<div class="stat-value">24/7</div>
<div class="stat-label">{% trans "Monitoring" %}</div>
</div>
<div class="stat-card">
<div class="stat-value">0</div>
<div class="stat-label">{% trans "Known Vulnerabilities" %}</div>
</div>
</div>
<!-- Security Content -->
<div class="security-content">
<a href="{% url 'testPlugin:plugin_home' %}" class="back-button">
<i class="fas fa-arrow-left"></i>
{% trans "Back to Plugin" %}
</a>
<h2>{% trans "Security Features Implemented" %}</h2>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-lock"></i>
</div>
{% trans "Authentication & Authorization" %}
</h3>
<p>{% trans "Multi-layered authentication and authorization system" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Admin-only access required for all plugin functions" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "User session validation on every request" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Privilege escalation protection" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-tachometer-alt"></i>
</div>
{% trans "Rate Limiting & Brute Force Protection" %}
</h3>
<p>{% trans "Advanced rate limiting to prevent brute force attacks" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "50 requests per 5-minute window per user" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "10 test button clicks per minute limit" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Automatic lockout after 5 failed attempts" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "15-minute lockout duration" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-shield-virus"></i>
</div>
{% trans "CSRF Protection" %}
</h3>
<p>{% trans "Cross-Site Request Forgery protection on all POST requests" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "HMAC-based CSRF token validation" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Token expiration after 1 hour" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "User-specific token generation" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-filter"></i>
</div>
{% trans "Input Validation & Sanitization" %}
</h3>
<p>{% trans "Comprehensive input validation and sanitization" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Regex-based input validation" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "XSS attack prevention" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "SQL injection prevention" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Path traversal protection" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Maximum input length limits" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-eye"></i>
</div>
{% trans "Security Monitoring & Logging" %}
</h3>
<p>{% trans "Comprehensive security event monitoring and logging" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "All security events logged with IP and user agent" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Failed attempt tracking and alerting" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Suspicious activity detection" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Real-time security event monitoring" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-server"></i>
</div>
{% trans "HTTP Security Headers" %}
</h3>
<p>{% trans "Comprehensive HTTP security headers for additional protection" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "X-Frame-Options: DENY (clickjacking protection)" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "X-Content-Type-Options: nosniff" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "X-XSS-Protection: 1; mode=block" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Content-Security-Policy (CSP)" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Strict-Transport-Security (HSTS)" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Referrer-Policy: strict-origin-when-cross-origin" %}
</li>
</ul>
</div>
<div class="security-feature">
<h3>
<div class="security-icon success">
<i class="fas fa-database"></i>
</div>
{% trans "Data Isolation & Privacy" %}
</h3>
<p>{% trans "User data isolation and privacy protection" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "User-specific data isolation" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Logs restricted to user's own activities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "Settings isolated per user" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No cross-user data access" %}
</li>
</ul>
</div>
<div class="security-feature warning">
<h3>
<div class="security-icon warning">
<i class="fas fa-exclamation-triangle"></i>
</div>
{% trans "Security Recommendations" %}
</h3>
<p>{% trans "Additional security measures you should implement" %}</p>
<ul class="security-list">
<li>
<div class="security-icon warning"><i class="fas fa-info"></i></div>
{% trans "Keep CyberPanel and all plugins updated" %}
</li>
<li>
<div class="security-icon warning"><i class="fas fa-info"></i></div>
{% trans "Use strong, unique passwords" %}
</li>
<li>
<div class="security-icon warning"><i class="fas fa-info"></i></div>
{% trans "Enable 2FA on your CyberPanel account" %}
</li>
<li>
<div class="security-icon warning"><i class="fas fa-info"></i></div>
{% trans "Regularly review security logs" %}
</li>
<li>
<div class="security-icon warning"><i class="fas fa-info"></i></div>
{% trans "Use HTTPS in production environments" %}
</li>
</ul>
</div>
<div class="security-feature danger">
<h3>
<div class="security-icon danger">
<i class="fas fa-bug"></i>
</div>
{% trans "Security Vulnerability Reporting" %}
</h3>
<p>{% trans "If you discover a security vulnerability, please report it responsibly" %}</p>
<ul class="security-list">
<li>
<div class="security-icon danger"><i class="fas fa-envelope"></i></div>
{% trans "Email: security@cyberpanel.net" %}
</li>
<li>
<div class="security-icon danger"><i class="fas fa-github"></i></div>
{% trans "GitHub: Create a private security issue" %}
</li>
<li>
<div class="security-icon danger"><i class="fas fa-clock"></i></div>
{% trans "Response time: Within 24-48 hours" %}
</li>
</ul>
</div>
<h2>{% trans "Security Audit Results" %}</h2>
<p>{% trans "This plugin has been designed with security as a top priority. All major security vulnerabilities have been addressed:" %}</p>
<ul class="security-list">
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "OWASP Top 10 vulnerabilities addressed" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No SQL injection vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No XSS vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No CSRF vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No authentication bypass vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No authorization bypass vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No information disclosure vulnerabilities" %}
</li>
<li>
<div class="security-icon success"><i class="fas fa-check"></i></div>
{% trans "No path traversal vulnerabilities" %}
</li>
</ul>
<blockquote style="background: #e8f5e8; border-left: 4px solid #10b981; padding: 20px; margin: 20px 0; border-radius: 4px;">
<strong>{% trans "Security Note:" %}</strong> {% trans "This plugin implements enterprise-grade security measures. However, security is an ongoing process. Regular updates and monitoring are essential to maintain the highest security standards." %}
</blockquote>
</div>
</div>
</div>
{% endblock %}