# ๐Ÿš€ ุงู„ู…ุฑุญู„ุฉ 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: 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 โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• ๐ŸŽ‰ ุฌู…ูŠุน ุงู„ู…ุฑุงุญู„ ู…ูƒุชู…ู„ุฉ! ุงู„ุณูŠุฑูุฑ ู…ุญู…ูŠ ูˆุงู„ุชุทุจูŠู‚ุงุช ุฌุงู‡ุฒุฉ! โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•