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

823 lines
24 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 المرحلة 3: نشر التطبيقات (Application Deployment)
## 📋 نظرة عامة
هذه المرحلة تركّز على نشر التطبيقات بأمان على السيرفر المحمي مع CloudPanel.
---
## 🎯 الأهداف
- نشر تطبيقات PHP/Python بأمان
- تكوين قواعد البيانات
- إعداد SSL/TLS
- اختبار وفحص التطبيقات
- مراقبة الأداء
---
## ⚙️ الخطوة 1: التحقق من CloudPanel
### 1.1 فحص التثبيت
```bash
# الاتصال بالسيرفر (باستخدام 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 (إن لم يكن مثبتاً)
```bash
# تثبيت 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
```bash
# 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
```bash
# تشغيل معالج الأمان
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 إنشاء مستخدم قاعدة بيانات للتطبيق
```bash
# الدخول إلى 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 نسخ احتياطي تلقائي لقواعد البيانات
```bash
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)
```bash
# تحرير 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 رفع الكود
```bash
# من اللابتوب - رفع الملفات عبر 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 تكوين قاعدة البيانات للتطبيق
```bash
# تحرير ملف التكوين (.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 والأدوات
```bash
# تثبيت Python 3.11
sudo apt install -y python3.11 python3.11-venv python3-pip
# إنشاء مستخدم للتطبيق
sudo useradd -m -s /bin/bash pyapp
```
### 4.2 إنشاء بيئة افتراضية
```bash
# إنشاء المجلدات
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)
```bash
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
```bash
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
```bash
sudo apt install -y certbot python3-certbot-nginx
```
### 5.2 الحصول على شهادة SSL
```bash
# لموقع 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 التجديد التلقائي
```bash
# اختبار التجديد
sudo certbot renew --dry-run
# التجديد مُجدول تلقائياً في systemd timer
sudo systemctl status certbot.timer
```
---
## 🔍 الخطوة 6: الفحص والاختبار
### 6.1 سكريبت فحص التطبيق
```bash
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 اختبار الأداء
```bash
# تثبيت أدوات الاختبار
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)
```bash
# تثبيت 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
```bash
# إضافة 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 للمواقع
```bash
# فلتر 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 (اختياري)
```bash
# 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 تنبيهات الأداء
```bash
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 قائمة الفحص النهائية
```bash
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 ملف معلومات التطبيقات
```bash
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)
```bash
# 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/
```
### مشكلة: قاعدة البيانات لا تتصل
```bash
# 1. فحص MySQL
sudo systemctl status mysql
# 2. اختبار الاتصال
mysql -u appuser -p app_production
# 3. فحص المستخدمين
sudo mysql -e "SELECT User, Host FROM mysql.user;"
```
### مشكلة: SSL لا يعمل
```bash
# 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
═══════════════════════════════════════════
🎉 جميع المراحل مكتملة!
السيرفر محمي والتطبيقات جاهزة!
═══════════════════════════════════════════