Files
servers_security_sys/PHASE_3_APPLICATION_DEPLOYMENT.md
2026-02-05 13:22:27 +03:00

24 KiB
Raw Blame History

🚀 المرحلة 3: نشر التطبيقات (Application Deployment)

📋 نظرة عامة

هذه المرحلة تركّز على نشر التطبيقات بأمان على السيرفر المحمي مع CloudPanel.


🎯 الأهداف

  • نشر تطبيقات PHP/Python بأمان
  • تكوين قواعد البيانات
  • إعداد SSL/TLS
  • اختبار وفحص التطبيقات
  • مراقبة الأداء

⚙️ الخطوة 1: التحقق من CloudPanel

1.1 فحص التثبيت

# الاتصال بالسيرفر (باستخدام knock)
~/FORTRESS_KEYS/knock.sh 194.163.xxx.xxx

# بعد الدخول:
# التحقق من CloudPanel
if [ -d "/usr/local/cloudpanel" ]; then
    echo "✅ CloudPanel مثبت"
    cat /usr/local/cloudpanel/version
else
    echo "❌ CloudPanel غير مثبت - سيتم التثبيت"
fi

1.2 تثبيت CloudPanel (إن لم يكن مثبتاً)

# تثبيت CloudPanel
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh
sudo bash install.sh

# الانتظار حتى يكتمل التثبيت (5-10 دقائق)

# بعد التثبيت:
# الوصول: https://SERVER_IP:8443
# المستخدم: admin
# كلمة المرور: ستُعرض بعد التثبيت

1.3 تأمين CloudPanel

# 1. فتح منفذ CloudPanel في UFW
sudo ufw allow 8443/tcp comment 'CloudPanel Admin'

# 2. إنشاء سكريبت للوصول الآمن
sudo tee /usr/local/bin/fortress/cloudpanel_access.sh > /dev/null <<'EOF'
#!/bin/bash
# 🔐 CloudPanel Safe Access

# فتح المنفذ مؤقتاً (30 دقيقة)
sudo ufw allow from $SSH_CLIENT to any port 8443 proto tcp

echo "✅ CloudPanel متاح لـ 30 دقيقة"
echo "🌐 https://$(curl -s ifconfig.me):8443"

# إغلاق تلقائي بعد 30 دقيقة
(sleep 1800 && sudo ufw delete allow from $SSH_CLIENT to any port 8443 proto tcp) &
EOF

sudo chmod +x /usr/local/bin/fortress/cloudpanel_access.sh

📦 الخطوة 2: إعداد قواعد البيانات

2.1 تأمين MySQL/MariaDB

# تشغيل معالج الأمان
sudo mysql_secure_installation

# الإجابات الموصى بها:
# Enter current password: [اضغط Enter]
# Set root password? [Y]
# Remove anonymous users? [Y]
# Disallow root login remotely? [Y]
# Remove test database? [Y]
# Reload privilege tables? [Y]

2.2 إنشاء مستخدم قاعدة بيانات للتطبيق

# الدخول إلى MySQL
sudo mysql

# إنشاء قاعدة بيانات ومستخدم
CREATE DATABASE app_production CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD_HERE';
GRANT ALL PRIVILEGES ON app_production.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

# التحقق
SHOW DATABASES;
SELECT User, Host FROM mysql.user;

EXIT;

2.3 نسخ احتياطي تلقائي لقواعد البيانات

sudo tee /usr/local/bin/fortress/db_backup.sh > /dev/null <<'DBBACKUPEOF'
#!/bin/bash
# 💾 Database Backup Script

BACKUP_DIR="/backup/databases"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DB_NAME="app_production"
DB_USER="appuser"
DB_PASS="STRONG_PASSWORD_HERE"

mkdir -p "$BACKUP_DIR"

# نسخة احتياطية مضغوطة
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz"

# تشفير النسخة
openssl enc -aes-256-cbc -salt -pbkdf2 \
    -in "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz" \
    -out "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz.enc" \
    -k "TRIPZ_DB_$(hostname)_$(date +%Y)"

# حذف غير المشفر
rm -f "${BACKUP_DIR}/${DB_NAME}_${TIMESTAMP}.sql.gz"

# الاحتفاظ بآخر 14 يوم
find "$BACKUP_DIR" -name "*.sql.gz.enc" -mtime +14 -delete

echo "✅ نسخة احتياطية: ${DB_NAME}_${TIMESTAMP}.sql.gz.enc"
DBBACKUPEOF

sudo chmod +x /usr/local/bin/fortress/db_backup.sh

# جدولة (يومياً 3 صباحاً)
(sudo crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/fortress/db_backup.sh >> /var/log/fortress/db_backup.log 2>&1") | sudo crontab -

🌐 الخطوة 3: نشر تطبيق PHP

3.1 إنشاء موقع في CloudPanel

📝 من واجهة CloudPanel:

1. اذهب إلى: Sites → Add Site
2. املأ البيانات:
   - Site Name: myapp.com
   - Site User: myapp
   - Document Root: /home/myapp/htdocs/myapp.com
   - PHP Version: 8.2 (الأحدث)
   - Enable Varnish Cache: نعم

3. اضغط: Create Site

3.2 تكوين PHP (من SSH)

# تحرير php.ini للموقع
SITE_USER="myapp"
PHP_VERSION="8.2"

sudo tee /home/$SITE_USER/.php/cli/php.ini > /dev/null <<'PHPEOF'
# ══════════════════════════════════════
# TRIPZ FORTRESS - PHP Security Config
# ══════════════════════════════════════

# الأمان
expose_php = Off
display_errors = Off
log_errors = On
error_log = /home/myapp/logs/php_error.log

# الحدود
memory_limit = 256M
upload_max_filesize = 10M
post_max_size = 10M
max_execution_time = 30
max_input_time = 60

# الجلسات
session.cookie_httponly = 1
session.cookie_secure = 1
session.use_strict_mode = 1

# الملفات المعطلة (الخطيرة)
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
PHPEOF

# إعادة تشغيل PHP-FPM
sudo systemctl restart php${PHP_VERSION}-fpm

3.3 رفع الكود

# من اللابتوب - رفع الملفات عبر rsync
cd /path/to/your/app

rsync -avz --progress \
    -e "ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200" \
    ./ tripzadmin@194.163.xxx.xxx:/tmp/app_upload/

# على السيرفر - نقل الملفات
sudo mv /tmp/app_upload/* /home/myapp/htdocs/myapp.com/
sudo chown -R myapp:myapp /home/myapp/htdocs/myapp.com/
sudo chmod -R 755 /home/myapp/htdocs/myapp.com/

# الصلاحيات الخاصة (للمجلدات القابلة للكتابة)
sudo chmod -R 775 /home/myapp/htdocs/myapp.com/storage
sudo chmod -R 775 /home/myapp/htdocs/myapp.com/cache

3.4 تكوين قاعدة البيانات للتطبيق

# تحرير ملف التكوين (.env للـ Laravel مثلاً)
sudo -u myapp nano /home/myapp/htdocs/myapp.com/.env

# المحتوى:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=app_production
DB_USERNAME=appuser
DB_PASSWORD=STRONG_PASSWORD_HERE

# حماية الملف
sudo chmod 600 /home/myapp/htdocs/myapp.com/.env

🐍 الخطوة 4: نشر تطبيق Python (Flask/Django)

4.1 تثبيت Python والأدوات

# تثبيت Python 3.11
sudo apt install -y python3.11 python3.11-venv python3-pip

# إنشاء مستخدم للتطبيق
sudo useradd -m -s /bin/bash pyapp

4.2 إنشاء بيئة افتراضية

# إنشاء المجلدات
sudo mkdir -p /home/pyapp/app
sudo mkdir -p /home/pyapp/logs

# إنشاء venv
sudo -u pyapp python3.11 -m venv /home/pyapp/venv

# تفعيل وتثبيت المتطلبات
sudo -u pyapp /home/pyapp/venv/bin/pip install --upgrade pip
sudo -u pyapp /home/pyapp/venv/bin/pip install flask gunicorn

# أو من requirements.txt:
# sudo -u pyapp /home/pyapp/venv/bin/pip install -r /home/pyapp/app/requirements.txt

4.3 تكوين Gunicorn (WSGI Server)

sudo tee /etc/systemd/system/pyapp.service > /dev/null <<'GUNICORNEOF'
[Unit]
Description=Python App - Gunicorn
After=network.target

[Service]
User=pyapp
Group=pyapp
WorkingDirectory=/home/pyapp/app
Environment="PATH=/home/pyapp/venv/bin"

ExecStart=/home/pyapp/venv/bin/gunicorn \
    --workers 3 \
    --bind unix:/home/pyapp/app.sock \
    --access-logfile /home/pyapp/logs/access.log \
    --error-logfile /home/pyapp/logs/error.log \
    wsgi:app

Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
GUNICORNEOF

# تفعيل وبدء
sudo systemctl daemon-reload
sudo systemctl enable pyapp
sudo systemctl start pyapp

# التحقق
sudo systemctl status pyapp

4.4 تكوين Nginx للتطبيق Python

sudo tee /etc/nginx/sites-available/pyapp.conf > /dev/null <<'NGINXEOF'
server {
    listen 80;
    server_name pyapp.example.com;

    # التحويل إلى HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name pyapp.example.com;

    # SSL Certificates (سيتم إضافتها لاحقاً)
    ssl_certificate /etc/letsencrypt/live/pyapp.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/pyapp.example.com/privkey.pem;

    # الأمان
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    # السجلات
    access_log /home/pyapp/logs/nginx_access.log;
    error_log /home/pyapp/logs/nginx_error.log;

    # Proxy إلى Gunicorn
    location / {
        proxy_pass http://unix:/home/pyapp/app.sock;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # الملفات الثابتة
    location /static {
        alias /home/pyapp/app/static;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}
NGINXEOF

# تفعيل الموقع
sudo ln -s /etc/nginx/sites-available/pyapp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

🔒 الخطوة 5: إعداد SSL/TLS (Let's Encrypt)

5.1 تثبيت Certbot

sudo apt install -y certbot python3-certbot-nginx

5.2 الحصول على شهادة SSL

# لموقع PHP (عبر CloudPanel)
# استخدم الواجهة: SSL/TLS → Let's Encrypt

# لموقع Python (يدوياً)
sudo certbot --nginx -d pyapp.example.com

# الإجابات:
# Email: your-email@example.com
# Agree to TOS: Yes
# Redirect HTTP to HTTPS: Yes

5.3 التجديد التلقائي

# اختبار التجديد
sudo certbot renew --dry-run

# التجديد مُجدول تلقائياً في systemd timer
sudo systemctl status certbot.timer

🔍 الخطوة 6: الفحص والاختبار

6.1 سكريبت فحص التطبيق

sudo tee /usr/local/bin/fortress/app_check.sh > /dev/null <<'APPCHECKEOF'
#!/bin/bash
# 🔍 Application Health Check

echo "🔍 TRIPZ FORTRESS - Application Check"
echo "════════════════════════════════════════"

# 1. فحص المواقع
echo "🌐 المواقع:"
for site in /home/*/htdocs/*; do
    if [ -d "$site" ]; then
        SITE_NAME=$(basename $site)
        SITE_USER=$(basename $(dirname $(dirname $site)))
        echo "  📁 $SITE_NAME (المستخدم: $SITE_USER)"
        
        # فحص الصلاحيات
        PERMS=$(stat -c %a $site)
        if [ "$PERMS" == "755" ]; then
            echo "     ✅ الصلاحيات: $PERMS"
        else
            echo "     ⚠️ الصلاحيات: $PERMS (مقترح: 755)"
        fi
    fi
done

# 2. فحص قواعد البيانات
echo ""
echo "💾 قواعد البيانات:"
sudo mysql -e "SHOW DATABASES;" | grep -v -E "Database|information_schema|performance_schema|mysql|sys" | while read db; do
    SIZE=$(sudo mysql -e "SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)' FROM information_schema.TABLES WHERE table_schema='$db';" | tail -1)
    echo "  📊 $db: ${SIZE} MB"
done

# 3. فحص Nginx
echo ""
echo "🌍 Nginx:"
if nginx -t 2>&1 | grep -q "successful"; then
    echo "  ✅ التكوين صحيح"
else
    echo "  ❌ أخطاء في التكوين!"
fi

# 4. فحص PHP-FPM
echo ""
echo "🐘 PHP-FPM:"
for version in 8.0 8.1 8.2 8.3; do
    if systemctl is-active --quiet php${version}-fpm 2>/dev/null; then
        echo "  ✅ PHP $version نشط"
    fi
done

# 5. فحص Python Apps
echo ""
echo "🐍 Python Apps:"
if systemctl is-active --quiet pyapp 2>/dev/null; then
    echo "  ✅ pyapp نشط"
    WORKERS=$(ps aux | grep gunicorn | grep -v grep | wc -l)
    echo "     Workers: $WORKERS"
else
    echo "  ⚠️ pyapp غير نشط"
fi

# 6. فحص SSL
echo ""
echo "🔒 SSL Certificates:"
sudo certbot certificates 2>/dev/null | grep "Certificate Name" | while read line; do
    DOMAIN=$(echo $line | awk '{print $3}')
    EXPIRY=$(sudo certbot certificates 2>/dev/null | grep -A 10 "Certificate Name: $DOMAIN" | grep "Expiry Date" | awk '{print $3, $4}')
    echo "  🔐 $DOMAIN → ينتهي: $EXPIRY"
done

echo ""
echo "════════════════════════════════════════"
echo "✅ الفحص مكتمل"
APPCHECKEOF

sudo chmod +x /usr/local/bin/fortress/app_check.sh

# تشغيل الفحص
sudo /usr/local/bin/fortress/app_check.sh

6.2 اختبار الأداء

# تثبيت أدوات الاختبار
sudo apt install -y apache2-utils

# اختبار PHP site
ab -n 1000 -c 10 https://myapp.com/

# اختبار Python app
ab -n 1000 -c 10 https://pyapp.example.com/

🛡️ الخطوة 7: حماية التطبيقات

7.1 ModSecurity (WAF)

# تثبيت ModSecurity
sudo apt install -y libmodsecurity3 modsecurity-crs

# تكوين Nginx مع ModSecurity
sudo tee /etc/nginx/modsec/main.conf > /dev/null <<'MODSECEOF'
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On

SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log

# OWASP Core Rule Set
Include /etc/nginx/modsec/crs-setup.conf
Include /etc/nginx/modsec/rules/*.conf
MODSECEOF

# تفعيل في Nginx
# (يتطلب إعادة بناء Nginx مع ModSecurity module)

7.2 Rate Limiting في Nginx

# إضافة Rate Limiting للحماية من DDoS
sudo tee -a /etc/nginx/nginx.conf > /dev/null <<'RATELIMITEOF'

# ══════════════════════════════════════
# TRIPZ FORTRESS - Rate Limiting
# ══════════════════════════════════════

# تحديد المعدل: 10 طلبات/ثانية
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;

# تحديد الاتصالات المتزامنة
limit_conn_zone $binary_remote_addr zone=addr:10m;
RATELIMITEOF

# تطبيق على المواقع
# في ملفات sites-enabled، أضف:
# limit_req zone=general burst=20 nodelay;
# limit_conn addr 10;

7.3 Fail2Ban للمواقع

# فلتر Nginx
sudo tee /etc/fail2ban/filter.d/nginx-limit-req.conf > /dev/null <<'F2BEOF'
[Definition]
failregex = limiting requests, excess:.* by zone.*client: <HOST>
ignoreregex =
EOF

# Jail
sudo tee -a /etc/fail2ban/jail.local > /dev/null <<'EOF'

[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/*error.log
maxretry = 5
bantime = 3600
findtime = 600
EOF

sudo systemctl restart fail2ban

📊 الخطوة 8: المراقبة والتنبيهات

8.1 تثبيت Netdata (اختياري)

# Netdata للمراقبة في الوقت الفعلي
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

# الوصول: http://SERVER_IP:19999
# ⚠️ يجب تأمينه بـ password أو VPN!

# تأمين Netdata
sudo tee -a /etc/netdata/netdata.conf > /dev/null <<'EOF'
[web]
    bind to = localhost
EOF

sudo systemctl restart netdata

# الآن يمكن الوصول فقط عبر SSH tunnel:
# ssh -L 19999:localhost:19999 -i ~/FORTRESS_KEYS/fortress_master -p 2200 tripzadmin@SERVER_IP

8.2 تنبيهات الأداء

sudo tee /usr/local/bin/fortress/performance_alert.sh > /dev/null <<'PERFEOF'
#!/bin/bash
# 📊 Performance Monitoring & Alerts

# حدود التنبيه
CPU_THRESHOLD=80
MEMORY_THRESHOLD=85
DISK_THRESHOLD=90

# الحالة الحالية
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
MEMORY_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}' | cut -d'.' -f1)
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | cut -d'%' -f1)

# التحقق والتنبيه
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
    /usr/local/bin/fortress/telegram_notify.sh "⚠️ CPU مرتفع: ${CPU_USAGE}%"
fi

if [ "$MEMORY_USAGE" -gt "$MEMORY_THRESHOLD" ]; then
    /usr/local/bin/fortress/telegram_notify.sh "⚠️ الذاكرة مرتفعة: ${MEMORY_USAGE}%"
fi

if [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then
    /usr/local/bin/fortress/telegram_notify.sh "⚠️ القرص ممتلئ: ${DISK_USAGE}%"
fi
PERFEOF

sudo chmod +x /usr/local/bin/fortress/performance_alert.sh

# جدولة الفحص (كل 30 دقيقة)
(sudo crontab -l 2>/dev/null; echo "*/30 * * * * /usr/local/bin/fortress/performance_alert.sh") | sudo crontab -

🧪 الخطوة 9: الاختبار النهائي

9.1 قائمة الفحص النهائية

sudo tee /usr/local/bin/fortress/final_test.sh > /dev/null <<'FINALTESTEOF'
#!/bin/bash
# ✅ Final Deployment Test

echo "🧪 TRIPZ FORTRESS - Final Deployment Test"
echo "════════════════════════════════════════════════"

# 1. الاتصال
echo "1⃣ فحص الاتصال:"
ping -c 2 8.8.8.8 >/dev/null && echo "  ✅ Internet" || echo "  ❌ Internet"
curl -s https://google.com >/dev/null && echo "  ✅ HTTPS" || echo "  ❌ HTTPS"

# 2. الخدمات
echo ""
echo "2⃣ الخدمات الأساسية:"
SERVICES=("nginx" "mysql" "php8.2-fpm" "sshd" "ufw" "fail2ban")
for svc in "${SERVICES[@]}"; do
    systemctl is-active --quiet $svc && echo "  ✅ $svc" || echo "  ❌ $svc"
done

# 3. المواقع
echo ""
echo "3⃣ فحص المواقع:"
for site in myapp.com pyapp.example.com; do
    STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://$site 2>/dev/null || echo "000")
    if [ "$STATUS" == "200" ]; then
        echo "  ✅ $site → $STATUS"
    else
        echo "  ⚠️ $site → $STATUS"
    fi
done

# 4. SSL
echo ""
echo "4⃣ SSL Certificates:"
sudo certbot certificates 2>/dev/null | grep -c "Certificate Name" && echo "  ✅ شهادات نشطة" || echo "  ⚠️ لا توجد شهادات"

# 5. قواعد البيانات
echo ""
echo "5⃣ قواعد البيانات:"
mysql -e "SHOW DATABASES;" 2>/dev/null | grep -c "app_production" && echo "  ✅ app_production" || echo "  ❌ app_production"

# 6. الأمان
echo ""
echo "6⃣ الطبقات الأمنية:"
systemctl is-active --quiet knockd && echo "  ✅ Port Knocking" || echo "  ❌ Port Knocking"
systemctl is-active --quiet endlessh && echo "  ✅ Honeypot" || echo "  ❌ Honeypot"
sudo fail2ban-client status sshd &>/dev/null && echo "  ✅ Fail2Ban" || echo "  ❌ Fail2Ban"

# 7. النسخ الاحتياطية
echo ""
echo "7⃣ النسخ الاحتياطية:"
[ -d "/backup/fortress" ] && ls /backup/fortress/*.enc &>/dev/null && echo "  ✅ نسخ السيرفر" || echo "  ⚠️ نسخ السيرفر"
[ -d "/backup/databases" ] && ls /backup/databases/*.enc &>/dev/null && echo "  ✅ نسخ قواعد البيانات" || echo "  ⚠️ نسخ قواعد البيانات"

echo ""
echo "════════════════════════════════════════════════"
echo "✅ الاختبار مكتمل!"
FINALTESTEOF

sudo chmod +x /usr/local/bin/fortress/final_test.sh

# تشغيل الاختبار
sudo /usr/local/bin/fortress/final_test.sh

📚 الخطوة 10: التوثيق النهائي

10.1 ملف معلومات التطبيقات

sudo tee /root/APPLICATIONS_INFO.txt > /dev/null <<'EOF'
════════════════════════════════════════════════════════
🚀 TRIPZ FORTRESS - معلومات التطبيقات
════════════════════════════════════════════════════════

📝 المواقع النشطة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. myapp.com
   - النوع: PHP 8.2
   - الموقع: /home/myapp/htdocs/myapp.com
   - قاعدة البيانات: app_production
   - SSL: Let's Encrypt ✅

2. pyapp.example.com
   - النوع: Python (Flask + Gunicorn)
   - الموقع: /home/pyapp/app
   - Socket: /home/pyapp/app.sock
   - SSL: Let's Encrypt ✅

💾 قواعد البيانات:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- app_production (myapp.com)
- النسخ الاحتياطي: يومياً 3 صباحاً
- الموقع: /backup/databases/

🔧 الصيانة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• فحص التطبيقات: sudo /usr/local/bin/fortress/app_check.sh
• فحص الأداء: sudo /usr/local/bin/fortress/performance_alert.sh
• الاختبار الشامل: sudo /usr/local/bin/fortress/final_test.sh
• نسخة احتياطية يدوية: sudo /usr/local/bin/fortress/db_backup.sh

🔐 CloudPanel:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
الوصول: https://SERVER_IP:8443
المستخدم: admin
للأمان: استخدم /usr/local/bin/fortress/cloudpanel_access.sh

📊 المراقبة:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Netdata: http://localhost:19999 (عبر SSH tunnel فقط)
السجلات: /var/log/fortress/, /var/log/nginx/

⚠️ ملاحظات:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. تحديث SSL تلقائياً (Certbot)
2. Rate Limiting مفعّل (10 req/s)
3. ModSecurity WAF (إن فُعّل)
4. تنبيهات الأداء كل 30 دقيقة

════════════════════════════════════════════════════════
EOF

sudo cat /root/APPLICATIONS_INFO.txt

النتيجة النهائية

الآن السيرفر:

  • محمي بـ 9 طبقات أمنية
  • التطبيقات منشورة ومحمية
  • قواعد البيانات آمنة ومنسوخة
  • SSL/TLS مفعّل وتلقائي
  • مراقبة وتنبيهات نشطة
  • نسخ احتياطية يومية

🆘 استكشاف الأخطاء

مشكلة: الموقع لا يعمل (502 Bad Gateway)

# 1. فحص PHP-FPM
sudo systemctl status php8.2-fpm
sudo tail -f /var/log/php8.2-fpm.log

# 2. فحص Nginx
sudo nginx -t
sudo systemctl status nginx

# 3. فحص الصلاحيات
ls -la /home/myapp/htdocs/myapp.com/

مشكلة: قاعدة البيانات لا تتصل

# 1. فحص MySQL
sudo systemctl status mysql

# 2. اختبار الاتصال
mysql -u appuser -p app_production

# 3. فحص المستخدمين
sudo mysql -e "SELECT User, Host FROM mysql.user;"

مشكلة: SSL لا يعمل

# 1. فحص الشهادات
sudo certbot certificates

# 2. إعادة المحاولة
sudo certbot --nginx -d myapp.com --force-renewal

# 3. فحص Nginx
sudo nginx -t

📞 الدعم النهائي

إذا واجهت أي مشاكل:

  1. راجع السجلات: sudo journalctl -xe
  2. فحص الأمان: sudo /usr/local/bin/fortress/health_check.sh
  3. فحص التطبيقات: sudo /usr/local/bin/fortress/app_check.sh
  4. التواصل: https://tripz-egypt.com

═══════════════════════════════════════════ 🎉 جميع المراحل مكتملة! السيرفر محمي والتطبيقات جاهزة! ═══════════════════════════════════════════