From d0b3e624ccb3aa64b86a4f55a55821a48513fda4 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Thu, 5 Feb 2026 13:22:27 +0300 Subject: [PATCH] 2026-02-05/1 --- PHASE_1_LAPTOP_SETUP.md | 557 +++++++++++++++ PHASE_2_SERVER_HARDENING.md | 1051 +++++++++++++++++++++++++++++ PHASE_3_APPLICATION_DEPLOYMENT.md | 822 ++++++++++++++++++++++ QUICK_START_GUIDE.md | 338 ++++++++++ config_example.sh | 216 ++++++ system_check.sh | 463 +++++++++++++ tripz_fortress_v8.2_generator.sh | 952 ++++++++++++++++++++++++++ 7 files changed, 4399 insertions(+) create mode 100644 PHASE_1_LAPTOP_SETUP.md create mode 100644 PHASE_2_SERVER_HARDENING.md create mode 100644 PHASE_3_APPLICATION_DEPLOYMENT.md create mode 100644 QUICK_START_GUIDE.md create mode 100644 config_example.sh create mode 100644 system_check.sh create mode 100644 tripz_fortress_v8.2_generator.sh diff --git a/PHASE_1_LAPTOP_SETUP.md b/PHASE_1_LAPTOP_SETUP.md new file mode 100644 index 0000000..fad9c00 --- /dev/null +++ b/PHASE_1_LAPTOP_SETUP.md @@ -0,0 +1,557 @@ +# ๐Ÿ” ุงู„ู…ุฑุญู„ุฉ 1: ุชุฃู…ูŠู† ูˆุฅุนุฏุงุฏ ุงู„ู„ุงุจุชูˆุจ (Ubuntu) + +## ๐Ÿ“‹ ู†ุธุฑุฉ ุนุงู…ุฉ +ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุชุฑูƒู‘ุฒ ุนู„ู‰ ุชุญูˆูŠู„ ุงู„ู„ุงุจุชูˆุจ ุฅู„ู‰ **ู…ุญุทุฉ ุฅุฏุงุฑุฉ ุขู…ู†ุฉ** ู„ุฅุฏุงุฑุฉ ุงู„ุณูŠุฑูุฑุงุช. + +--- + +## ๐Ÿ› ๏ธ ุงู„ุฎุทูˆุฉ 1: ุชุซุจูŠุช Ubuntu ุจุดูƒู„ ุขู…ู† + +### 1.1 ุงู„ุชุซุจูŠุช ุงู„ุฃุณุงุณูŠ +```bash +# ุฃุซู†ุงุก ุงู„ุชุซุจูŠุช: +# โœ… ูุนู‘ู„ Full Disk Encryption (LUKS) +# โœ… ุงุณุชุฎุฏู… ูƒู„ู…ุฉ ู…ุฑูˆุฑ ู‚ูˆูŠุฉ ู„ู„ุชุดููŠุฑ (20+ ุญุฑู) +# โœ… ุงุฎุชุฑ "Minimal Installation" +# โœ… ูุนู‘ู„ ุงู„ุชุญุฏูŠุซุงุช ุงู„ุชู„ู‚ุงุฆูŠุฉ +``` + +### 1.2 ุจุนุฏ ุงู„ุชุซุจูŠุช ู…ุจุงุดุฑุฉ +```bash +# ุชุญุฏูŠุซ ุงู„ู†ุธุงู… +sudo apt update && sudo apt upgrade -y +sudo apt dist-upgrade -y + +# ุชุซุจูŠุช ุงู„ุฃุฏูˆุงุช ุงู„ุฃุณุงุณูŠุฉ +sudo apt install -y \ + build-essential \ + git \ + curl \ + wget \ + vim \ + htop \ + ufw \ + fail2ban \ + openssh-client \ + gnupg2 \ + rng-tools \ + secure-delete \ + cryptsetup \ + tmux \ + jq \ + knockd +``` + +--- + +## ๐Ÿ”‘ ุงู„ุฎุทูˆุฉ 2: ุชูˆู„ูŠุฏ ุงู„ู…ูุงุชูŠุญ ุงู„ุฃู…ู†ูŠุฉ (ุงู„ุฃู‡ู…!) + +### 2.1 ุฅู†ุดุงุก ู…ุฌู„ุฏ ุขู…ู† ู„ู„ู…ูุงุชูŠุญ +```bash +# ุฅู†ุดุงุก ู…ุฌู„ุฏ ู…ุดูุฑ ู„ู„ู…ูุงุชูŠุญ +mkdir -p ~/FORTRESS_KEYS +chmod 700 ~/FORTRESS_KEYS +cd ~/FORTRESS_KEYS + +# ุฅู†ุดุงุก ู…ู„ู README ู„ุชูˆุซูŠู‚ ุงู„ู…ูุงุชูŠุญ +cat > README.md <<'EOF' +# ๐Ÿ” TRIPZ FORTRESS - Key Management + +## ุงู„ู…ูุงุชูŠุญ ุงู„ู…ุชูˆูุฑุฉ: +- fortress_master: ุงู„ู…ูุชุงุญ ุงู„ุฑุฆูŠุณูŠ ู„ู„ุณูŠุฑูุฑุงุช +- backup_key: ู…ูุชุงุญ ุงุญุชูŠุงุทูŠ ู„ู„ุทูˆุงุฑุฆ +- vpn_keys/: ู…ูุงุชูŠุญ WireGuard ู„ูƒู„ ุณูŠุฑูุฑ + +## ุงู„ุงุณุชุฎุฏุงู…: +ssh -i fortress_master tripzadmin@SERVER_IP -p 2200 + +## ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ: +ุงู„ู…ูุงุชูŠุญ ู…ู†ุณูˆุฎุฉ ุนู„ู‰: +1. USB ู…ุดูุฑ (Backup A) +2. KeePassXC Database +3. Cloud ู…ุดูุฑ (ุงุฎุชูŠุงุฑูŠ) +EOF +``` + +### 2.2 ุชูˆู„ูŠุฏ ุงู„ู…ูุชุงุญ ุงู„ุฑุฆูŠุณูŠ +```bash +# ุชูˆู„ูŠุฏ ู…ูุชุงุญ Ed25519 (ุฃู‚ูˆู‰ ูˆุฃุณุฑุน ู…ู† RSA) +ssh-keygen -t ed25519 -C "fortress-master-$(date +%Y%m%d)" -f fortress_master -N "" + +# ู…ู„ุงุญุธุงุช: +# โœ… Ed25519: ุฃูƒุซุฑ ุฃู…ุงู†ุงู‹ ูˆุฃุณุฑุน ู…ู† RSA 4096 +# โœ… ู„ุง passphrase: ู„ุฃู† ุงู„ู„ุงุจุชูˆุจ ู†ูุณู‡ ู…ุดูู‘ุฑ ุจุงู„ูƒุงู…ู„ +# โœ… Comment ูŠุญุชูˆูŠ ุนู„ู‰ ุงู„ุชุงุฑูŠุฎ ู„ู„ุชุชุจุน + +# ู†ุชูŠุฌุฉ: +# fortress_master (ุงู„ู…ูุชุงุญ ุงู„ุฎุงุต - ู„ุง ุชุดุงุฑูƒู‡ ุฃุจุฏุงู‹!) +# fortress_master.pub (ุงู„ู…ูุชุงุญ ุงู„ุนุงู… - ูŠูุฑูุน ู„ู„ุณูŠุฑูุฑุงุช) + +# ุนุฑุถ ุงู„ู…ูุชุงุญ ุงู„ุนุงู… +echo "=========================================" +echo "๐Ÿ”‘ ุงู„ู…ูุชุงุญ ุงู„ุนุงู… (ู„ู†ุณุฎู‡ ู„ู„ุณูŠุฑูุฑ):" +echo "=========================================" +cat fortress_master.pub +echo "=========================================" +``` + +### 2.3 ุชูˆู„ูŠุฏ ู…ูุชุงุญ ุงุญุชูŠุงุทูŠ (ู„ู„ุทูˆุงุฑุฆ) +```bash +# ู…ูุชุงุญ ุซุงู†ูˆูŠ ู„ู„ุทูˆุงุฑุฆ (ุจูƒู„ู…ุฉ ู…ุฑูˆุฑ!) +ssh-keygen -t ed25519 -C "fortress-backup-$(date +%Y%m%d)" -f backup_key + +# ู‡ุฐุง ุงู„ู…ูุชุงุญ: +# โœ… ูŠูุญูุธ ููŠ ู…ูƒุงู† ุขู…ู† ู…ู†ูุตู„ +# โœ… ู„ู‡ passphrase ู‚ูˆูŠุฉ +# โœ… ูŠูุณุชุฎุฏู… ูู‚ุท ู„ู„ุทูˆุงุฑุฆ +``` + +### 2.4 ุญู…ุงูŠุฉ ุงู„ู…ูุงุชูŠุญ +```bash +# ุตู„ุงุญูŠุงุช ุตุงุฑู…ุฉ +chmod 600 fortress_master backup_key +chmod 644 fortress_master.pub backup_key.pub + +# ุชุญู‚ู‚ ู…ู† ุงู„ุตู„ุงุญูŠุงุช +ls -la | grep fortress +# ูŠุฌุจ ุฃู† ุชุฑู‰: -rw------- (600) +``` + +--- + +## ๐Ÿ’พ ุงู„ุฎุทูˆุฉ 3: ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ ุงู„ุขู…ู† ู„ู„ู…ูุงุชูŠุญ + +### 3.1 ุงุณุชุฎุฏุงู… KeePassXC (ู…ูˆุตู‰ ุจู‡!) +```bash +# ุชุซุจูŠุช KeePassXC +sudo apt install -y keepassxc + +# โœ… ุงู„ู…ูŠุฒุงุช: +# - ู‚ุงุนุฏุฉ ุจูŠุงู†ุงุช ู…ุดูุฑุฉ ู…ุญู„ูŠุงู‹ +# - ุฏุนู… ุงู„ู…ูุงุชูŠุญ SSH ู…ุจุงุดุฑุฉ +# - Yubikey support +# - Cross-platform + +# ุงู„ุฅุนุฏุงุฏ: +# 1. ุงูุชุญ KeePassXC +# 2. ุฃู†ุดุฆ ู‚ุงุนุฏุฉ ุจูŠุงู†ุงุช ุฌุฏูŠุฏุฉ: FORTRESS_KEYS.kdbx +# 3. ุงุณุชุฎุฏู… ูƒู„ู…ุฉ ู…ุฑูˆุฑ ู‚ูˆูŠุฉ (25+ ุญุฑู) +# 4. ุฎุฒู‘ู† ุงู„ู…ูุงุชูŠุญ ุงู„ุฎุงุตุฉ ุฏุงุฎู„ ุงู„ู‚ุงุนุฏุฉ +# 5. ุฎุฒู‘ู† ู…ุนู„ูˆู…ุงุช ุงู„ุณูŠุฑูุฑุงุช ูˆุงู„ู€ API Keys +``` + +### 3.2 ู†ุณุฎุฉ USB ู…ุดูุฑุฉ +```bash +# ุชุดููŠุฑ USB stick +# โš ๏ธ ุณูŠุญุฐู ูƒู„ ุงู„ุจูŠุงู†ุงุช ุนู„ู‰ USB! + +# 1. ุงู„ุชุนุฑู ุนู„ู‰ USB +lsblk +# ุงูุฑุถ ุฃู†ู‡ /dev/sdb + +# 2. ุชุดููŠุฑ USB ุจู€ LUKS +sudo cryptsetup luksFormat /dev/sdb +# ุฃุฏุฎู„ ูƒู„ู…ุฉ ู…ุฑูˆุฑ ู‚ูˆูŠุฉ + +# 3. ูุชุญ USB ุงู„ู…ุดูุฑ +sudo cryptsetup open /dev/sdb fortress_usb + +# 4. ุฅู†ุดุงุก ู†ุธุงู… ู…ู„ูุงุช +sudo mkfs.ext4 /dev/mapper/fortress_usb + +# 5. ุชุญู…ูŠู„ ูˆู†ุณุฎ ุงู„ู…ูุงุชูŠุญ +sudo mkdir -p /mnt/fortress_backup +sudo mount /dev/mapper/fortress_usb /mnt/fortress_backup +sudo cp -r ~/FORTRESS_KEYS /mnt/fortress_backup/ +sudo cp ~/keepassxc.kdbx /mnt/fortress_backup/ + +# 6. ุฅู„ุบุงุก ุงู„ุชุญู…ูŠู„ ูˆุงู„ุฅุบู„ุงู‚ +sudo umount /mnt/fortress_backup +sudo cryptsetup close fortress_usb + +# โœ… ุงู„ุขู† ู„ุฏูŠูƒ ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ู…ุดูุฑุฉ ูƒุงู…ู„ุฉ! +``` + +--- + +## ๐Ÿ›ก๏ธ ุงู„ุฎุทูˆุฉ 4: ุชุฃู…ูŠู† ุงู„ู„ุงุจุชูˆุจ ู†ูุณู‡ + +### 4.1 ุชูุนูŠู„ Firewall +```bash +# ุชูƒูˆูŠู† UFW +sudo ufw default deny incoming +sudo ufw default allow outgoing +sudo ufw allow from 192.168.1.0/24 # ุดุจูƒุชูƒ ุงู„ู…ุญู„ูŠุฉ ูู‚ุท +sudo ufw enable + +# ุงู„ุชุญู‚ู‚ +sudo ufw status verbose +``` + +### 4.2 ุชุนุทูŠู„ ุงู„ุฎุฏู…ุงุช ุบูŠุฑ ุงู„ุถุฑูˆุฑูŠุฉ +```bash +# ุฅูŠู‚ุงู SSH server (ู„ุง ู†ุญุชุงุฌู‡ ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ) +sudo systemctl disable ssh +sudo systemctl stop ssh + +# ุฅูŠู‚ุงู ุงู„ุฎุฏู…ุงุช ุบูŠุฑ ุงู„ุถุฑูˆุฑูŠุฉ +sudo systemctl disable bluetooth +sudo systemctl disable cups # ุทุงุจุนุงุช +sudo systemctl disable avahi-daemon # ุงูƒุชุดุงู ุงู„ุดุจูƒุฉ +``` + +### 4.3 Fail2Ban ู„ู„ุญู…ุงูŠุฉ ุงู„ู…ุญู„ูŠุฉ +```bash +# ุชุซุจูŠุช ูˆุชูุนูŠู„ +sudo apt install -y fail2ban +sudo systemctl enable fail2ban +sudo systemctl start fail2ban + +# ุชูƒูˆูŠู† ุจุณูŠุท +sudo cat > /etc/fail2ban/jail.local <<'EOF' +[DEFAULT] +bantime = 3600 +findtime = 600 +maxretry = 3 + +[sshd] +enabled = false + +[laptop-login] +enabled = true +filter = systemd-auth +maxretry = 5 +EOF + +sudo systemctl restart fail2ban +``` + +### 4.4 ุชูุนูŠู„ ุงู„ุชุญุฏูŠุซุงุช ุงู„ุชู„ู‚ุงุฆูŠุฉ +```bash +sudo apt install -y unattended-upgrades +sudo dpkg-reconfigure -plow unattended-upgrades +# ุงุฎุชุฑ YES +``` + +--- + +## ๐Ÿ“ฆ ุงู„ุฎุทูˆุฉ 5: ุชุซุจูŠุช ุฃุฏูˆุงุช ุงู„ุฅุฏุงุฑุฉ + +### 5.1 CLI Tools ู„ู„ุฅุฏุงุฑุฉ +```bash +# Tmux ู„ู„ุฌู„ุณุงุช ุงู„ู…ุณุชู…ุฑุฉ +cat > ~/.tmux.conf <<'EOF' +# ุชุญุณูŠู†ุงุช Tmux +set -g mouse on +set -g history-limit 10000 +set -g base-index 1 + +# ุงุฎุชุตุงุฑุงุช +bind r source-file ~/.tmux.conf +EOF + +# SSH Config ู„ู„ุณูŠุฑูุฑุงุช +mkdir -p ~/.ssh +cat > ~/.ssh/config <<'EOF' +# ุชูƒูˆูŠู† SSH ู„ู„ุณูŠุฑูุฑุงุช + +Host fortress-* + User tripzadmin + Port 2200 + IdentityFile ~/FORTRESS_KEYS/fortress_master + ServerAliveInterval 60 + ServerAliveCountMax 3 + Compression yes + +# ู…ุซุงู„: +# Host fortress-web1 +# HostName 194.163.xxx.xxx +# LocalForward 8080 localhost:80 + +# Host fortress-db1 +# HostName 194.163.xxx.xxx +EOF + +chmod 600 ~/.ssh/config +``` + +### 5.2 Knock Client (ู„ู„ู€ Port Knocking) +```bash +# ุชุซุจูŠุช knockd client +sudo apt install -y knockd + +# ุฅู†ุดุงุก ุณูƒุฑูŠุจุช knock ู…ุฎุตุต +cat > ~/FORTRESS_KEYS/knock.sh <<'EOF' +#!/bin/bash +# ๐Ÿšช Port Knocking Script + +SERVER_IP=$1 +KNOCK_SEQUENCE="7000 8000 9000" # ุณูŠุชู… ุชุญุฏูŠุซู‡ุง ู„ุงุญู‚ุงู‹ + +if [ -z "$SERVER_IP" ]; then + echo "Usage: $0 " + exit 1 +fi + +echo "๐Ÿšช Knocking on $SERVER_IP..." +knock $SERVER_IP $KNOCK_SEQUENCE + +echo "โœ… Knocked! Wait 5 seconds then SSH..." +sleep 5 + +ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200 tripzadmin@$SERVER_IP +EOF + +chmod +x ~/FORTRESS_KEYS/knock.sh +``` + +### 5.3 ุชุซุจูŠุช WireGuard Client +```bash +# ุชุซุจูŠุช WireGuard +sudo apt install -y wireguard wireguard-tools + +# ุฅู†ุดุงุก ู…ุฌู„ุฏ ู„ู„ู€ VPN configs +mkdir -p ~/FORTRESS_KEYS/vpn_configs +chmod 700 ~/FORTRESS_KEYS/vpn_configs + +# ุณูŠุชู… ุฅู†ุดุงุก ุงู„ู€ configs ููŠ ุงู„ู…ุฑุญู„ุฉ 2 +``` + +--- + +## ๐Ÿ” ุงู„ุฎุทูˆุฉ 6: ุฃุฏูˆุงุช ุงู„ู…ุฑุงู‚ุจุฉ ูˆุงู„ุชู†ุจูŠู‡ุงุช + +### 6.1 ุชุซุจูŠุช Telegram CLI (ู„ู„ุชู†ุจูŠู‡ุงุช) +```bash +# ุชุซุจูŠุช curl ูˆ jq +sudo apt install -y curl jq + +# ุฅู†ุดุงุก ุณูƒุฑูŠุจุช ุงู„ุชู†ุจูŠู‡ุงุช +cat > ~/FORTRESS_KEYS/telegram_notify.sh <<'EOF' +#!/bin/bash +# ๐Ÿ“ฑ Telegram Notification Script + +TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN" # ุณูŠุชู… ุชุญุฏูŠุซู‡ +TELEGRAM_CHAT_ID="YOUR_CHAT_ID" # ุณูŠุชู… ุชุญุฏูŠุซู‡ + +MESSAGE=$1 + +if [ -z "$MESSAGE" ]; then + echo "Usage: $0 'message'" + exit 1 +fi + +curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ + -d chat_id="${TELEGRAM_CHAT_ID}" \ + -d text="๐Ÿ›ก๏ธ FORTRESS ALERT: $MESSAGE" \ + -d parse_mode="HTML" > /dev/null + +echo "โœ… Notification sent!" +EOF + +chmod +x ~/FORTRESS_KEYS/telegram_notify.sh +``` + +### 6.2 ุฅุนุฏุงุฏ Telegram Bot +``` +๐Ÿ“ฑ ุงู„ุฎุทูˆุงุช ุงู„ูŠุฏูˆูŠุฉ: + +1. ุงูุชุญ Telegram ูˆุงุจุญุซ ุนู†: @BotFather +2. ุฃุฑุณู„: /newbot +3. ุงุฎุชุฑ ุงุณู… ู„ู„ุจูˆุช: TRIPZ Fortress Alert Bot +4. ุงุฎุชุฑ username: tripz_fortress_bot +5. ุงุญูุธ ุงู„ู€ TOKEN ุงู„ู…ุนุทู‰ + +6. ู„ู„ุญุตูˆู„ ุนู„ู‰ Chat ID: + - ุงุจุญุซ ุนู†: @userinfobot + - ุฃุฑุณู„ู‡ ุฃูŠ ุฑุณุงู„ุฉ + - ุงุญูุธ ุงู„ู€ ID ุงู„ู…ุนุทู‰ + +7. ุญุฏู‘ุซ ุงู„ุณูƒุฑูŠุจุช: + vim ~/FORTRESS_KEYS/telegram_notify.sh + # ุถุน TOKEN ูˆ CHAT_ID + +8. ุงุฎุชุจุฑ: + ~/FORTRESS_KEYS/telegram_notify.sh "Test Alert!" +``` + +--- + +## ๐Ÿ“ ุงู„ุฎุทูˆุฉ 7: ุชูˆุซูŠู‚ ูƒุงู…ู„ + +### 7.1 ุฅู†ุดุงุก ู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช +```bash +cat > ~/FORTRESS_KEYS/MASTER_INFO.txt < ~/FORTRESS_KEYS/check_laptop.sh <<'EOF' +#!/bin/bash +echo "๐Ÿ” ูุญุต ุฌุงู‡ุฒูŠุฉ ุงู„ู„ุงุจุชูˆุจ..." +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" + +# 1. ุงู„ู…ูุงุชูŠุญ +echo "๐Ÿ”‘ ุงู„ู…ูุงุชูŠุญ:" +if [ -f ~/FORTRESS_KEYS/fortress_master ]; then + echo " โœ… fortress_master ู…ูˆุฌูˆุฏ" +else + echo " โŒ fortress_master ู…ูู‚ูˆุฏ!" +fi + +if [ -f ~/FORTRESS_KEYS/backup_key ]; then + echo " โœ… backup_key ู…ูˆุฌูˆุฏ" +else + echo " โŒ backup_key ู…ูู‚ูˆุฏ!" +fi + +# 2. ุงู„ุตู„ุงุญูŠุงุช +echo "" +echo "๐Ÿ”’ ุงู„ุตู„ุงุญูŠุงุช:" +PERMS=$(stat -c %a ~/FORTRESS_KEYS/fortress_master) +if [ "$PERMS" == "600" ]; then + echo " โœ… ุตู„ุงุญูŠุงุช ุงู„ู…ูุงุชูŠุญ ุตุญูŠุญุฉ" +else + echo " โš ๏ธ ุตู„ุงุญูŠุงุช ุงู„ู…ูุงุชูŠุญ: $PERMS (ูŠุฌุจ 600)" +fi + +# 3. ุงู„ุฃุฏูˆุงุช +echo "" +echo "๐Ÿ› ๏ธ ุงู„ุฃุฏูˆุงุช:" +command -v ssh >/dev/null 2>&1 && echo " โœ… SSH Client" || echo " โŒ SSH Client" +command -v wg >/dev/null 2>&1 && echo " โœ… WireGuard" || echo " โŒ WireGuard" +command -v knock >/dev/null 2>&1 && echo " โœ… Knock" || echo " โŒ Knock" +command -v tmux >/dev/null 2>&1 && echo " โœ… Tmux" || echo " โŒ Tmux" + +# 4. Firewall +echo "" +echo "๐Ÿ›ก๏ธ ุงู„ุญู…ุงูŠุฉ:" +sudo ufw status | grep -q "Status: active" && echo " โœ… UFW ู†ุดุท" || echo " โš ๏ธ UFW ุบูŠุฑ ู†ุดุท" +systemctl is-active --quiet fail2ban && echo " โœ… Fail2Ban ู†ุดุท" || echo " โš ๏ธ Fail2Ban ุบูŠุฑ ู†ุดุท" + +# 5. ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠุฉ +echo "" +echo "๐Ÿ’พ ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠุฉ:" +if [ -f ~/keepassxc.kdbx ]; then + echo " โœ… KeePassXC Database ู…ูˆุฌูˆุฏ" +else + echo " โš ๏ธ KeePassXC Database ุบูŠุฑ ู…ูˆุฌูˆุฏ" +fi + +echo "" +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" +echo "โœ… ุงู„ูุญุต ู…ูƒุชู…ู„!" +EOF + +chmod +x ~/FORTRESS_KEYS/check_laptop.sh + +# ุชุดุบูŠู„ ุงู„ูุญุต +~/FORTRESS_KEYS/check_laptop.sh +``` + +--- + +## ๐ŸŽฏ ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ + +ุจุนุฏ ุฅุชู…ุงู… ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุจู†ุฌุงุญุŒ ุงู†ุชู‚ู„ ุฅู„ู‰: +๐Ÿ“„ **PHASE_2_SERVER_HARDENING.md** + +--- + +## ๐Ÿ†˜ ุงุณุชูƒุดุงู ุงู„ุฃุฎุทุงุก + +### ู…ุดูƒู„ุฉ: ุตู„ุงุญูŠุงุช ุงู„ู…ูุงุชูŠุญ ุฎุงุทุฆุฉ +```bash +chmod 600 ~/FORTRESS_KEYS/fortress_master +chmod 600 ~/FORTRESS_KEYS/backup_key +``` + +### ู…ุดูƒู„ุฉ: SSH ู„ุง ูŠู‚ุจู„ ุงู„ู…ูุชุงุญ +```bash +# ุชุฃูƒุฏ ู…ู† fingerprint +ssh-keygen -lf ~/FORTRESS_KEYS/fortress_master.pub + +# ุชุฃูƒุฏ ู…ู† ุชู†ุณูŠู‚ ุงู„ู…ูุชุงุญ +head -1 ~/FORTRESS_KEYS/fortress_master.pub +# ูŠุฌุจ ุฃู† ูŠุจุฏุฃ ุจู€: ssh-ed25519 AAAA... +``` + +### ู…ุดูƒู„ุฉ: Telegram Bot ู„ุง ูŠุนู…ู„ +```bash +# ุงุฎุชุจุงุฑ ูŠุฏูˆูŠ +curl "https://api.telegram.org/bot/getMe" +# ูŠุฌุจ ุฃู† ุชุฑู‰ ู…ุนู„ูˆู…ุงุช ุงู„ุจูˆุช +``` + +--- + +## ๐Ÿ“š ู…ุฑุงุฌุน ู…ููŠุฏุฉ + +- SSH Key Management: https://www.ssh.com/academy/ssh/keygen +- KeePassXC Guide: https://keepassxc.org/docs/ +- Ubuntu Security: https://ubuntu.com/security +- WireGuard Setup: https://www.wireguard.com/quickstart/ + +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โœ… ุงู„ู…ุฑุญู„ุฉ 1 ู…ูƒุชู…ู„ุฉ - ุฌุงู‡ุฒ ู„ู„ู…ุฑุญู„ุฉ 2! +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• diff --git a/PHASE_2_SERVER_HARDENING.md b/PHASE_2_SERVER_HARDENING.md new file mode 100644 index 0000000..490c597 --- /dev/null +++ b/PHASE_2_SERVER_HARDENING.md @@ -0,0 +1,1051 @@ +# ๐Ÿ›ก๏ธ ุงู„ู…ุฑุญู„ุฉ 2: ุชุฃู…ูŠู† ุงู„ุณูŠุฑูุฑ (Server Hardening) + +## ๐Ÿ“‹ ู†ุธุฑุฉ ุนุงู…ุฉ +ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุชุญูˆู‘ู„ ุงู„ุณูŠุฑูุฑ ุฅู„ู‰ **ู‚ู„ุนุฉ ู…ู†ูŠุนุฉ** ู…ุน 9 ุทุจู‚ุงุช ุญู…ุงูŠุฉ. + +โš ๏ธ **ุชุญุฐูŠุฑ ู…ู‡ู…**: ุงุชุจุน ุงู„ุชุฑุชูŠุจ ุจุงู„ุถุจุท ู„ุชุฌู†ุจ ู‚ุทุน ุงู„ุงุชุตุงู„! + +--- + +## ๐Ÿš€ ุงู„ู…ุชุทู„ุจุงุช ุงู„ุฃูˆู„ูŠุฉ + +```bash +# โœ… ู‚ุจู„ ุงู„ุจุฏุกุŒ ุชุฃูƒุฏ ู…ู†: +# 1. ุงู„ู„ุงุจุชูˆุจ ุฌุงู‡ุฒ (ุงู„ู…ุฑุญู„ุฉ 1 ู…ูƒุชู…ู„ุฉ) +# 2. ู„ุฏูŠูƒ ุงู„ู…ูุชุงุญ ุงู„ุนุงู…: cat ~/FORTRESS_KEYS/fortress_master.pub +# 3. ุงุชุตุงู„ SSH ุญุงู„ูŠ ุจุงู„ุณูŠุฑูุฑ ูƒู€ root +# 4. ุนู†ูˆุงู† IP ุงู„ุณูŠุฑูุฑ ู…ุนุฑูˆู +# 5. CloudPanel ู…ุซุจุช (ุฅู† ูˆุฌุฏ) +``` + +--- + +## ๐Ÿ“ฆ ุงู„ุฎุทูˆุฉ 0: ุงู„ูุญูˆุตุงุช ุงู„ุฃูˆู„ูŠุฉ (Pre-flight) + +### 0.1 ุงู„ุงุชุตุงู„ ุงู„ุฃูˆู„ูŠ ุจุงู„ุณูŠุฑูุฑ +```bash +# ู…ู† ุงู„ู„ุงุจุชูˆุจ - ุงู„ุงุชุตุงู„ ุงู„ุฃูˆู„ (ูƒู€ root ุนุจุฑ password) +ssh root@194.163.xxx.xxx + +# ุจุนุฏ ุงู„ุฏุฎูˆู„ุŒ ู†ูุฐ: +``` + +### 0.2 ุณูƒุฑูŠุจุช ุงู„ูุญุต ุงู„ุฃูˆู„ูŠ +```bash +cat > /tmp/preflight_check.sh <<'EOF' +#!/bin/bash +# ๐Ÿ” ูุญุต ู…ุง ู‚ุจู„ ุงู„ุชุซุจูŠุช + +echo "๐Ÿ” TRIPZ FORTRESS - Pre-flight Check" +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" + +# ู…ุนู„ูˆู…ุงุช ุงู„ู†ุธุงู… +echo "๐Ÿ“Š ู…ุนู„ูˆู…ุงุช ุงู„ู†ุธุงู…:" +echo " OS: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)" +echo " Kernel: $(uname -r)" +echo " RAM: $(free -h | awk '/^Mem:/ {print $2}')" +echo " Disk: $(df -h / | awk 'NR==2 {print $2}')" +echo "" + +# ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุงุชุตุงู„ +echo "๐ŸŒ ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุงุชุตุงู„:" +ping -c 2 8.8.8.8 >/dev/null 2>&1 && echo " โœ… Internet OK" || echo " โŒ No Internet!" +ping -c 2 google.com >/dev/null 2>&1 && echo " โœ… DNS OK" || echo " โŒ DNS Failed!" +echo "" + +# ุงู„ู…ู†ุงูุฐ ุงู„ู…ูุชูˆุญุฉ ุญุงู„ูŠุงู‹ +echo "๐Ÿ”“ ุงู„ู…ู†ุงูุฐ ุงู„ู…ูุชูˆุญุฉ ุญุงู„ูŠุงู‹:" +ss -tuln | grep LISTEN | awk '{print " " $5}' | sort -u +echo "" + +# ุงู„ุฎุฏู…ุงุช ุงู„ุญุงู„ูŠุฉ +echo "๐Ÿ”ง ุงู„ุฎุฏู…ุงุช ุงู„ู†ุดุทุฉ:" +systemctl list-units --type=service --state=running | grep -E "ssh|mysql|nginx|apache" | awk '{print " " $1}' +echo "" + +# CloudPanel Check +if [ -d "/usr/local/cloudpanel" ]; then + echo "โ˜๏ธ CloudPanel: โœ… ู…ุซุจุช" + echo " ุงู„ุฅุตุฏุงุฑ: $(cat /usr/local/cloudpanel/version 2>/dev/null || echo 'ุบูŠุฑ ู…ุนุฑูˆู')" +else + echo "โ˜๏ธ CloudPanel: โŒ ุบูŠุฑ ู…ุซุจุช" +fi +echo "" + +# ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุญุงู„ูŠูŠู† +echo "๐Ÿ‘ฅ ุงู„ู…ุณุชุฎุฏู…ูŠู† (UID >= 1000):" +awk -F: '$3 >= 1000 && $1 != "nobody" {print " " $1 " (UID: " $3 ")"}' /etc/passwd +echo "" + +# ุชุญุฐูŠุฑุงุช +echo "โš ๏ธ ุชุญุฐูŠุฑุงุช:" +[ "$(id -u)" -ne 0 ] && echo " โš ๏ธ ูŠุฌุจ ุงู„ุชุดุบูŠู„ ูƒู€ root!" || echo " โœ… Running as root" +[ -z "$SSH_CONNECTION" ] && echo " โš ๏ธ ู„ูŠุณ ุนุจุฑ SSH!" || echo " โœ… Connected via SSH" +echo "" + +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" +echo "โœ… ุงู„ูุญุต ู…ูƒุชู…ู„ - ุฌุงู‡ุฒ ู„ู„ุชุซุจูŠุช" +EOF + +chmod +x /tmp/preflight_check.sh +/tmp/preflight_check.sh +``` + +### 0.3 ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ุณุฑูŠุนุฉ (ู‚ุจู„ ุงู„ุชุนุฏูŠู„) +```bash +# ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ู„ู„ู…ู„ูุงุช ุงู„ุญุณุงุณุฉ +mkdir -p /root/backup_before_fortress +cp -r /etc/ssh /root/backup_before_fortress/ +cp /etc/sudoers /root/backup_before_fortress/ 2>/dev/null +[ -d /etc/nginx ] && cp -r /etc/nginx /root/backup_before_fortress/ +[ -d /usr/local/cloudpanel ] && cp /usr/local/cloudpanel/version /root/backup_before_fortress/ + +echo "โœ… ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ู…ุญููˆุธุฉ ููŠ /root/backup_before_fortress" +``` + +--- + +## ๐Ÿ‘ค ุงู„ุฎุทูˆุฉ 1: ุฅู†ุดุงุก ุงู„ู…ุณุชุฎุฏู… ุงู„ุฅุฏุงุฑูŠ (tripzadmin) + +### 1.1 ุฅู†ุดุงุก ุงู„ู…ุณุชุฎุฏู… +```bash +# ุฅู†ุดุงุก ู…ุณุชุฎุฏู… ุฅุฏุงุฑูŠ ุฌุฏูŠุฏ +useradd -m -s /bin/bash -G sudo tripzadmin + +# ุชุนุทูŠู„ ูƒู„ู…ุฉ ุงู„ู…ุฑูˆุฑ (ุณู†ุณุชุฎุฏู… ุงู„ู…ูุงุชูŠุญ ูู‚ุท) +passwd -l tripzadmin + +# ุชุฃูƒูŠุฏ ุงู„ุฅู†ุดุงุก +id tripzadmin +# ูŠุฌุจ ุฃู† ุชุฑู‰: uid=1000(tripzadmin) gid=1000(tripzadmin) groups=1000(tripzadmin),27(sudo) +``` + +### 1.2 ุฅุนุฏุงุฏ SSH ู„ู„ู…ุณุชุฎุฏู… +```bash +# ุฅู†ุดุงุก ู…ุฌู„ุฏ SSH +mkdir -p /home/tripzadmin/.ssh +chmod 700 /home/tripzadmin/.ssh + +# โš ๏ธ ู‡ู†ุง: ุงู„ุตู‚ ุงู„ู…ูุชุงุญ ุงู„ุนุงู… ู…ู† ุงู„ู„ุงุจุชูˆุจ! +# (ู…ู† ุงู„ู„ุงุจุชูˆุจ: cat ~/FORTRESS_KEYS/fortress_master.pub) + +cat > /home/tripzadmin/.ssh/authorized_keys <<'SSHKEYEOF' +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... fortress-master-20250205 +SSHKEYEOF + +# ุชุนูŠูŠู† ุงู„ุตู„ุงุญูŠุงุช +chmod 600 /home/tripzadmin/.ssh/authorized_keys +chown -R tripzadmin:tripzadmin /home/tripzadmin/.ssh + +# ุงู„ุชุญู‚ู‚ +ls -la /home/tripzadmin/.ssh/ +``` + +### 1.3 ุฅุนุทุงุก ุตู„ุงุญูŠุงุช sudo ุจุฏูˆู† ูƒู„ู…ุฉ ู…ุฑูˆุฑ +```bash +# ู„ู„ู…ุณุชุฎุฏู… ุงู„ุฅุฏุงุฑูŠ ูู‚ุท (ู„ุณู‡ูˆู„ุฉ ุงู„ุฅุฏุงุฑุฉ) +cat > /etc/sudoers.d/tripzadmin <<'EOF' +# TRIPZ FORTRESS - Admin User +tripzadmin ALL=(ALL) NOPASSWD:ALL + +# ุชุนุทูŠู„ ุตู„ุงุญูŠุงุช sudo ุนู† ุจุงู‚ูŠ ุงู„ู…ุณุชุฎุฏู…ูŠู† ู„ุงุญู‚ุงู‹ +EOF + +chmod 440 /etc/sudoers.d/tripzadmin + +# ุงู„ุชุญู‚ู‚ ู…ู† ุตุญุฉ ุงู„ุชูƒูˆูŠู† +visudo -c +``` + +--- + +## ๐Ÿงช ุงู„ุฎุทูˆุฉ 2: ุงุฎุชุจุงุฑ ุงู„ุงุชุตุงู„ (ู‚ุจู„ ู‚ุทุน root!) + +### 2.1 ูุชุญ ุฌู„ุณุฉ SSH ุซุงู†ูŠุฉ (CRITICAL!) +```bash +# โš ๏ธ ู…ู† ุงู„ู„ุงุจุชูˆุจ - ุงูุชุญ ู†ุงูุฐุฉ terminal ุซุงู†ูŠุฉ: +ssh -i ~/FORTRESS_KEYS/fortress_master tripzadmin@194.163.xxx.xxx + +# ูŠุฌุจ ุฃู† ุชุฏุฎู„ ุจู†ุฌุงุญ ุจุฏูˆู† ูƒู„ู…ุฉ ู…ุฑูˆุฑ! +# ุฅุฐุง ูุดู„ุชุŒ ู„ุง ุชูƒู…ู„! ุฑุงุฌุน ุงู„ุฎุทูˆุฉ 1 + +# ุจุนุฏ ุงู„ุฏุฎูˆู„ุŒ ู†ูุฐ: +whoami # ูŠุฌุจ ุฃู† ูŠุธู‡ุฑ: tripzadmin +sudo whoami # ูŠุฌุจ ุฃู† ูŠุธู‡ุฑ: root (ุจุฏูˆู† ุทู„ุจ ูƒู„ู…ุฉ ู…ุฑูˆุฑ) +``` + +### 2.2 ุฅู†ุดุงุก ุณูƒุฑูŠุจุช ุงู„ุทูˆุงุฑุฆ +```bash +# ู…ู† ุงู„ุฌู„ุณุฉ ุงู„ุฌุฏูŠุฏุฉ (tripzadmin): +sudo cat > /root/emergency_restore.sh <<'EOF' +#!/bin/bash +# ๐Ÿ†˜ ุณูƒุฑูŠุจุช ุงู„ุทูˆุงุฑุฆ - ุงุณุชุนุงุฏุฉ ุงู„ูˆุตูˆู„ + +echo "๐Ÿ†˜ EMERGENCY RESTORE MODE" +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" + +# ุงุณุชุนุงุฏุฉ SSH ุงู„ู‚ุฏูŠู… +if [ -d /root/backup_before_fortress ]; then + echo "โ™ป๏ธ ุงุณุชุนุงุฏุฉ ุชูƒูˆูŠู† SSH ุงู„ู‚ุฏูŠู…..." + cp -r /root/backup_before_fortress/ssh/* /etc/ssh/ + systemctl restart sshd + echo "โœ… SSH ู…ุณุชุนุงุฏ" +fi + +# ุฅุนุงุฏุฉ ูุชุญ ู…ู†ูุฐ 22 +ufw allow 22/tcp +echo "โœ… ู…ู†ูุฐ 22 ู…ูุชูˆุญ" + +# ุงู„ุณู…ุงุญ ุจู€ root login (ู…ุคู‚ุช) +sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config +systemctl restart sshd +echo "โœ… Root login ู…ูุนู‘ู„" + +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" +echo "โœ… ูŠู…ูƒู†ูƒ ุงู„ุขู† ุงู„ุงุชุตุงู„ ูƒู€ root" +EOF + +sudo chmod +x /root/emergency_restore.sh +``` + +--- + +## ๐Ÿ” ุงู„ุฎุทูˆุฉ 3: ุชุฃู…ูŠู† SSH (ุฎุทูˆุฉ ุญุณุงุณุฉ!) + +### 3.1 ุชูƒูˆูŠู† SSH ุงู„ุขู…ู† +```bash +# ู…ู† ุฌู„ุณุฉ tripzadmin: +sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup + +# ุงู„ุชูƒูˆูŠู† ุงู„ุฌุฏูŠุฏ +sudo tee /etc/ssh/sshd_config > /dev/null <<'SSHDEOF' +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# TRIPZ FORTRESS - SSH Hardened Config +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# ุงู„ู…ู†ูุฐ ุงู„ุฌุฏูŠุฏ (ุณูŠุชู… ุชุบูŠูŠุฑู‡ ู„ุงุญู‚ุงู‹) +Port 22 + +# ุงู„ุจุฑูˆุชูˆูƒูˆู„ +Protocol 2 + +# ุงู„ุงุณุชู…ุงุน +AddressFamily inet +ListenAddress 0.0.0.0 + +# ุงู„ู…ูุงุชูŠุญ ูู‚ุท +PubkeyAuthentication yes +PasswordAuthentication no +PermitEmptyPasswords no +ChallengeResponseAuthentication no + +# ุชุนุทูŠู„ root login ุงู„ู…ุจุงุดุฑ +PermitRootLogin no + +# ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ู…ุณู…ูˆุญ ู„ู‡ู… +AllowUsers tripzadmin + +# ุงู„ุฃู…ุงู† +X11Forwarding no +PermitUserEnvironment no +AllowAgentForwarding no +AllowTcpForwarding no +PermitTunnel no + +# ุงู„ุฌู„ุณุงุช +MaxAuthTries 3 +MaxSessions 2 +ClientAliveInterval 300 +ClientAliveCountMax 2 +LoginGraceTime 30 + +# ุงู„ุชุดููŠุฑ ุงู„ู‚ูˆูŠ +Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com +MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com +KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512 + +# ุงู„ู„ูˆู‚ +SyslogFacility AUTH +LogLevel VERBOSE + +# Banner (ุงุฎุชูŠุงุฑูŠ) +Banner /etc/ssh/banner.txt +SSHDEOF + +# ุฅู†ุดุงุก banner ุชุญุฐูŠุฑูŠ +sudo tee /etc/ssh/banner.txt > /dev/null <<'EOF' +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โš ๏ธ AUTHORIZED ACCESS ONLY โš ๏ธ + +This system is protected by TRIPZ FORTRESS v8.1 +All connections are monitored and logged. +Unauthorized access attempts will be prosecuted. + +๐Ÿ›ก๏ธ Protected by 9-Layer Security System +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +EOF +``` + +### 3.2 ุงุฎุชุจุงุฑ ุงู„ุชูƒูˆูŠู† (ู‚ุจู„ ุงู„ุชุทุจูŠู‚!) +```bash +# ุงู„ุชุญู‚ู‚ ู…ู† ุตุญุฉ ุงู„ุชูƒูˆูŠู† +sudo sshd -t + +# ูŠุฌุจ ุฃู„ุง ุชุฑู‰ ุฃูŠ ุฃุฎุทุงุก! +# ุฅุฐุง ุฑุฃูŠุช ุฃุฎุทุงุกุŒ ู„ุง ุชูƒู…ู„! +``` + +### 3.3 ุฅุนุงุฏุฉ ุชุดุบูŠู„ SSH ุจุฃู…ุงู† +```bash +# โš ๏ธ ุงู„ุทุฑูŠู‚ุฉ ุงู„ุขู…ู†ุฉ (ู„ุง ุชุณุชุฎุฏู… restart!) +sudo systemctl reload sshd + +# ุงู„ุชุญู‚ู‚ ู…ู† ุญุงู„ุฉ ุงู„ุฎุฏู…ุฉ +sudo systemctl status sshd | grep Active +# ูŠุฌุจ ุฃู† ุชุฑู‰: Active: active (running) +``` + +### 3.4 ุงุฎุชุจุงุฑ ู†ู‡ุงุฆูŠ (ู…ู† ุงู„ู„ุงุจุชูˆุจ) +```bash +# ุงูุชุญ terminal ุซุงู„ุซ ู…ู† ุงู„ู„ุงุจุชูˆุจ: +ssh -i ~/FORTRESS_KEYS/fortress_master tripzadmin@194.163.xxx.xxx + +# ูŠุฌุจ ุฃู† ุชุฏุฎู„ ุจู†ุฌุงุญ! +# ุฅุฐุง ู†ุฌุญุŒ ุฃุบู„ู‚ ุงู„ุฌู„ุณุงุช ุงู„ู‚ุฏูŠู…ุฉ ูˆุงุณุชู…ุฑ ู…ู† ุงู„ุฌู„ุณุฉ ุงู„ุฌุฏูŠุฏุฉ +``` + +--- + +## ๐Ÿ”ฅ ุงู„ุฎุทูˆุฉ 4: ุชุซุจูŠุช ูˆุชูƒูˆูŠู† UFW (Firewall) + +### 4.1 ุชุซุจูŠุช UFW +```bash +sudo apt update +sudo apt install -y ufw + +# ุนุฏู… ุงู„ุชูุนูŠู„ ุจุนุฏ! (ุณู†ุถุจุทู‡ ุฃูˆู„ุงู‹) +``` + +### 4.2 ุชูƒูˆูŠู† ุงู„ู‚ูˆุงุนุฏ ุงู„ุฃุณุงุณูŠุฉ +```bash +# ุงู„ุณูŠุงุณุฉ ุงู„ุงูุชุฑุงุถูŠุฉ +sudo ufw default deny incoming +sudo ufw default allow outgoing + +# ุงู„ุณู…ุงุญ ุจู€ SSH ุงู„ุญุงู„ูŠ (ู…ู†ูุฐ 22 ุญุงู„ูŠุงู‹) +sudo ufw allow 22/tcp comment 'SSH Temporary' + +# HTTP ูˆ HTTPS (ู„ู„ุชุทุจูŠู‚ุงุช) +sudo ufw allow 80/tcp comment 'HTTP' +sudo ufw allow 443/tcp comment 'HTTPS' + +# CloudPanel (ุฅู† ูˆุฌุฏ) +if [ -d "/usr/local/cloudpanel" ]; then + sudo ufw allow 8443/tcp comment 'CloudPanel' +fi + +# ู…ุนุงูŠู†ุฉ ุงู„ู‚ูˆุงุนุฏ ู‚ุจู„ ุงู„ุชูุนูŠู„ +sudo ufw show added +``` + +### 4.3 ุชูุนูŠู„ UFW +```bash +# โš ๏ธ ุชุฃูƒุฏ ู…ู† ูˆุฌูˆุฏ ู‚ุงุนุฏุฉ SSH! +sudo ufw enable + +# ุงู„ุชุญู‚ู‚ +sudo ufw status verbose +``` + +--- + +## ๐ŸŽฏ ุงู„ุฎุทูˆุฉ 5: ุชุซุจูŠุช Fail2Ban (ุงู„ุญู…ุงูŠุฉ ู…ู† Brute-Force) + +### 5.1 ุงู„ุชุซุจูŠุช +```bash +sudo apt install -y fail2ban +``` + +### 5.2 ุงู„ุชูƒูˆูŠู† ุงู„ู…ุญุณู‘ู† +```bash +# ุงู„ุชูƒูˆูŠู† ุงู„ุฑุฆูŠุณูŠ +sudo tee /etc/fail2ban/jail.local > /dev/null <<'JAILEOF' +[DEFAULT] +# ุงู„ุฅุนุฏุงุฏุงุช ุงู„ุนุงู…ุฉ +bantime = 3600 +findtime = 600 +maxretry = 3 +destemail = your-email@example.com +sendername = TRIPZ-FORTRESS-ALERT +action = %(action_mwl)s + +# Whitelist (ุนู†ูˆุงู† IP ุงู„ุฎุงุต ุจูƒ) +ignoreip = 127.0.0.1/8 ::1 + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# SSH Protection (ุงู„ุฃู‡ู…!) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +[sshd] +enabled = true +port = 22 +filter = sshd +logpath = /var/log/auth.log +maxretry = 3 +bantime = 7200 +findtime = 600 + +# ุญู…ุงูŠุฉ ุฃู‚ูˆู‰ ุถุฏ SSH brute-force +[sshd-aggressive] +enabled = true +port = 22 +filter = sshd +logpath = /var/log/auth.log +maxretry = 2 +bantime = 86400 +findtime = 300 + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# Web Protection (ู„ู€ CloudPanel / Nginx) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +[nginx-http-auth] +enabled = true +port = 80,443 +logpath = /var/log/nginx/error.log + +[nginx-noscript] +enabled = true +port = 80,443 +logpath = /var/log/nginx/access.log + +[nginx-badbots] +enabled = true +port = 80,443 +logpath = /var/log/nginx/access.log + +[nginx-noproxy] +enabled = true +port = 80,443 +logpath = /var/log/nginx/access.log +JAILEOF +``` + +### 5.3 ูู„ุชุฑ SSH ู…ุฎุตุต (ุงุฎุชูŠุงุฑูŠ) +```bash +sudo tee /etc/fail2ban/filter.d/sshd-custom.conf > /dev/null <<'EOF' +# Custom SSH filter for more aggressive detection +[Definition] +failregex = ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error|failed) for .* from ( via \S+)?\s*$ + ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from \s*$ + ^%(__prefix_line)sFailed (?:password|publickey) for .* from (?: port \d*)?(?: ssh\d*)?$ + ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM \s*$ + ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from \s*$ + +ignoreregex = +EOF +``` + +### 5.4 ุชูุนูŠู„ Fail2Ban +```bash +# ุชูุนูŠู„ ูˆุจุฏุก ุงู„ุฎุฏู…ุฉ +sudo systemctl enable fail2ban +sudo systemctl start fail2ban + +# ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุญุงู„ุฉ +sudo fail2ban-client status + +# ู…ุฑุงู‚ุจุฉ ุณุฌู„ SSH +sudo fail2ban-client status sshd +``` + +--- + +## ๐Ÿšช ุงู„ุฎุทูˆุฉ 6: Port Knocking (ุงู„ุทุจู‚ุฉ ุงู„ุณุฑูŠุฉ) + +### 6.1 ุชุซุจูŠุช Knockd +```bash +sudo apt install -y knockd +``` + +### 6.2 ุงุฎุชูŠุงุฑ ุชุณู„ุณู„ ุงู„ุทุฑู‚ +```bash +# ุงุฎุชุฑ 3 ู…ู†ุงูุฐ ุนุดูˆุงุฆูŠุฉ (ู„ูŠุณุช ู…ุณุชุฎุฏู…ุฉ) +# ู…ุซุงู„: 7531, 8642, 9753 +# ุงุญูุธู‡ุง ููŠ ู…ูƒุงู† ุขู…ู†! + +KNOCK1=7531 +KNOCK2=8642 +KNOCK3=9753 +``` + +### 6.3 ุชูƒูˆูŠู† Knockd +```bash +sudo tee /etc/knockd.conf > /dev/null < /dev/null <<'EOF' +# Port to bind (standard SSH port to trap bots) +Port 22 + +# Delay between lines (milliseconds) +Delay 10000 + +# Maximum line length +MaxLineLength 32 + +# Maximum number of clients +MaxClients 4096 + +# Log level +LogLevel 1 +EOF +``` + +### 8.3 Systemd Service +```bash +sudo tee /etc/systemd/system/endlessh.service > /dev/null <<'EOF' +[Unit] +Description=Endlessh SSH Tarpit +After=network.target + +[Service] +Type=simple +User=nobody +ExecStart=/usr/local/bin/endlessh -c /etc/endlessh/config +Restart=always + +# Hardening +PrivateTmp=true +ProtectSystem=strict +ProtectHome=true +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +EOF + +# ุชูุนูŠู„ +sudo systemctl daemon-reload +sudo systemctl enable endlessh +sudo systemctl start endlessh + +# ุงู„ุชุญู‚ู‚ +sudo systemctl status endlessh +``` + +--- + +## ๐ŸŽญ ุงู„ุฎุทูˆุฉ 9: Fake Services (MySQL Trap) + +### 9.1 ุณูƒุฑูŠุจุช Fake MySQL +```bash +sudo tee /usr/local/bin/fake-mysql.sh > /dev/null <<'FAKEMYSQLEOF' +#!/bin/bash +# ๐ŸŽญ Fake MySQL Service - Honeypot Trap + +LOG_FILE="/var/log/fortress/fake-mysql.log" +PORT=3306 + +mkdir -p /var/log/fortress + +echo "$(date '+%Y-%m-%d %H:%M:%S') - Fake MySQL started on port $PORT" >> "$LOG_FILE" + +# Listen and log +while true; do + nc -l -p $PORT -k 2>&1 | while read line; do + ATTACKER_IP=$(echo $line | grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | head -1) + echo "$(date '+%Y-%m-%d %H:%M:%S') - MySQL probe from: $ATTACKER_IP" >> "$LOG_FILE" + + # ุฑุณุงู„ุฉ ู…ุถู„ู„ุฉ + echo -e "\x4a\x00\x00\x00\x0a\x35\x2e\x37\x2e\x33\x33" # MySQL handshake + sleep 2 + done +done +FAKEMYSQLEOF + +sudo chmod +x /usr/local/bin/fake-mysql.sh +``` + +### 9.2 Systemd Service +```bash +sudo tee /etc/systemd/system/fake-mysql.service > /dev/null <<'EOF' +[Unit] +Description=Fake MySQL Honeypot +After=network.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/fake-mysql.sh +Restart=always +User=nobody + +[Install] +WantedBy=multi-user.target +EOF + +sudo systemctl daemon-reload +sudo systemctl enable fake-mysql +sudo systemctl start fake-mysql + +# ุงู„ุณู…ุงุญ ููŠ UFW +sudo ufw allow 3306/tcp comment 'Fake MySQL Trap' +``` + +--- + +## ๐Ÿ”ง ุงู„ุฎุทูˆุฉ 10: ุชุญุณูŠู†ุงุช ุงู„ู†ุธุงู… (Kernel Hardening) + +### 10.1 Sysctl Hardening +```bash +sudo tee -a /etc/sysctl.conf > /dev/null <<'SYSCTLEOF' + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# TRIPZ FORTRESS - Kernel Hardening +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# SYN flood protection +net.ipv4.tcp_syncookies = 1 +net.ipv4.tcp_max_syn_backlog = 2048 +net.ipv4.tcp_synack_retries = 2 +net.ipv4.tcp_syn_retries = 2 + +# TCP hardening +net.ipv4.tcp_rfc1337 = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.conf.default.rp_filter = 1 + +# IP spoofing protection +net.ipv4.conf.all.accept_source_route = 0 +net.ipv4.conf.default.accept_source_route = 0 +net.ipv6.conf.all.accept_source_route = 0 +net.ipv6.conf.default.accept_source_route = 0 + +# ICMP protection +net.ipv4.icmp_echo_ignore_broadcasts = 1 +net.ipv4.icmp_ignore_bogus_error_responses = 1 +net.ipv4.icmp_echo_ignore_all = 0 + +# Network performance +net.core.netdev_max_backlog = 2048 +net.core.somaxconn = 1024 + +# TCP BBR (ู„ู„ุฃุฏุงุก) +net.core.default_qdisc = fq +net.ipv4.tcp_congestion_control = bbr + +# File system protection +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 + +# Kernel pointers (security) +kernel.kptr_restrict = 2 +kernel.dmesg_restrict = 1 +SYSCTLEOF + +# ุชุทุจูŠู‚ ุงู„ุชุนุฏูŠู„ุงุช +sudo sysctl -p +``` + +--- + +## ๐Ÿ’พ ุงู„ุฎุทูˆุฉ 11: ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ ุงู„ุชู„ู‚ุงุฆูŠ + +### 11.1 ุณูƒุฑูŠุจุช ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ +```bash +sudo mkdir -p /usr/local/bin/fortress +sudo mkdir -p /backup/fortress + +sudo tee /usr/local/bin/fortress/backup.sh > /dev/null <<'BACKUPEOF' +#!/bin/bash +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# TRIPZ FORTRESS - Encrypted Backup +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +BACKUP_DIR="/backup/fortress" +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +TEMP_DIR="/tmp/fortress_backup_$TIMESTAMP" +BACKUP_FILE="${BACKUP_DIR}/fortress_${TIMESTAMP}.tar.gz" +ENCRYPTED_FILE="${BACKUP_FILE}.enc" +RETENTION_DAYS=30 + +# ุฅู†ุดุงุก ู…ุฌู„ุฏ ู…ุคู‚ุช +mkdir -p "$TEMP_DIR" + +# ู†ุณุฎ ุงู„ู…ู„ูุงุช ุงู„ู…ู‡ู…ุฉ +cp -r /etc/ssh "$TEMP_DIR/" 2>/dev/null +cp -r /etc/fail2ban "$TEMP_DIR/" 2>/dev/null +cp -r /etc/ufw "$TEMP_DIR/" 2>/dev/null +cp /etc/knockd.conf "$TEMP_DIR/" 2>/dev/null +cp /root/FORTRESS_INFO.txt "$TEMP_DIR/" 2>/dev/null + +# ุถุบุท +tar -czf "$BACKUP_FILE" -C /tmp "$(basename $TEMP_DIR)" + +# ุชุดููŠุฑ AES-256 +BACKUP_PASSWORD="TRIPZ_$(hostname)_$(date +%Y)" +openssl enc -aes-256-cbc -salt -pbkdf2 -in "$BACKUP_FILE" -out "$ENCRYPTED_FILE" -k "$BACKUP_PASSWORD" + +# ุญุฐู ุบูŠุฑ ุงู„ู…ุดูุฑ +rm -f "$BACKUP_FILE" +rm -rf "$TEMP_DIR" + +# ุชุทุจูŠู‚ ุณูŠุงุณุฉ ุงู„ุงุญุชูุงุธ (30 ูŠูˆู…) +find "$BACKUP_DIR" -name "fortress_*.tar.gz.enc" -mtime +$RETENTION_DAYS -delete + +echo "โœ… ุงู„ู†ุณุฎุฉ ุงู„ุงุญุชูŠุงุทูŠุฉ: $ENCRYPTED_FILE" +echo "๐Ÿ”‘ ูƒู„ู…ุฉ ููƒ ุงู„ุชุดููŠุฑ: $BACKUP_PASSWORD" + +# ุชู†ุจูŠู‡ Telegram (ุฅู† ูˆูุฌุฏ) +if [ -x /usr/local/bin/fortress/telegram_notify.sh ]; then + /usr/local/bin/fortress/telegram_notify.sh "โœ… ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ุฌุฏูŠุฏุฉ: $(basename $ENCRYPTED_FILE)" +fi +BACKUPEOF + +sudo chmod +x /usr/local/bin/fortress/backup.sh +``` + +### 11.2 ุฌุฏูˆู„ุฉ ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ (Cron) +```bash +# ุฅุถุงูุฉ ู…ู‡ู…ุฉ cron (ูŠูˆู…ูŠุงู‹ 2 ุตุจุงุญุงู‹) +(sudo crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/fortress/backup.sh >> /var/log/fortress/backup.log 2>&1") | sudo crontab - + +# ุงู„ุชุญู‚ู‚ +sudo crontab -l | grep backup +``` + +--- + +## ๐Ÿ“Š ุงู„ุฎุทูˆุฉ 12: ุงู„ู…ุฑุงู‚ุจุฉ ูˆุงู„ุชู†ุจูŠู‡ุงุช (Monitoring) + +### 12.1 ุชุซุจูŠุช ุฃุฏูˆุงุช ุงู„ู…ุฑุงู‚ุจุฉ +```bash +sudo apt install -y htop iotop nethogs +``` + +### 12.2 ุณูƒุฑูŠุจุช ุชู†ุจูŠู‡ุงุช Telegram +```bash +sudo tee /usr/local/bin/fortress/telegram_notify.sh > /dev/null <<'TELEGRAMEOF' +#!/bin/bash +# ๐Ÿ“ฑ Telegram Notification System + +TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN_HERE" +TELEGRAM_CHAT_ID="YOUR_CHAT_ID_HERE" + +MESSAGE=$1 + +if [ -z "$MESSAGE" ]; then + echo "Usage: $0 'message'" + exit 1 +fi + +# ุฅุฑุณุงู„ ุงู„ุฑุณุงู„ุฉ +curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ + -d chat_id="${TELEGRAM_CHAT_ID}" \ + -d text="๐Ÿ›ก๏ธ FORTRESS ALERT + +๐Ÿ–ฅ๏ธ Server: $(hostname) +๐Ÿ• Time: $(date '+%Y-%m-%d %H:%M:%S') + +๐Ÿ“จ Message: +$MESSAGE" \ + -d parse_mode="HTML" > /dev/null + +if [ $? -eq 0 ]; then + echo "โœ… ุชู… ุฅุฑุณุงู„ ุงู„ุชู†ุจูŠู‡" +else + echo "โŒ ูุดู„ ุฅุฑุณุงู„ ุงู„ุชู†ุจูŠู‡" +fi +TELEGRAMEOF + +sudo chmod +x /usr/local/bin/fortress/telegram_notify.sh + +# โš ๏ธ ู„ุง ุชู†ุณู‰ ุชุญุฏูŠุซ TOKEN ูˆ CHAT_ID! +``` + +### 12.3 ุชู†ุจูŠู‡ุงุช ุชู„ู‚ุงุฆูŠุฉ (Fail2Ban) +```bash +# ุชูƒูˆูŠู† Fail2Ban ู„ุฅุฑุณุงู„ ุชู†ุจูŠู‡ุงุช +sudo tee /etc/fail2ban/action.d/telegram.conf > /dev/null <<'EOF' +[Definition] +actionstart = /usr/local/bin/fortress/telegram_notify.sh "๐ŸŸข Fail2Ban ุจุฏุฃ" +actionstop = /usr/local/bin/fortress/telegram_notify.sh "๐Ÿ”ด Fail2Ban ุชูˆู‚ู" +actionban = /usr/local/bin/fortress/telegram_notify.sh "๐Ÿšซ ุญุธุฑ IP: (Jail: )" +actionunban = /usr/local/bin/fortress/telegram_notify.sh "โœ… ุฅู„ุบุงุก ุญุธุฑ IP: " +EOF + +# ุชูุนูŠู„ ููŠ jail.local +sudo sed -i 's/action = %(action_mwl)s/action = %(action_mwl)s\n telegram/' /etc/fail2ban/jail.local + +sudo systemctl restart fail2ban +``` + +--- + +## ๐Ÿ“ ุงู„ุฎุทูˆุฉ 13: ุงู„ุชูˆุซูŠู‚ ูˆู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช + +### 13.1 ุฅู†ุดุงุก ู…ู„ู ู…ุนู„ูˆู…ุงุช ุงู„ุณูŠุฑูุฑ +```bash +sudo tee /root/FORTRESS_INFO.txt > /dev/null < /dev/null <<'HEALTHEOF' +#!/bin/bash +# ๐Ÿ” TRIPZ FORTRESS - Health Check + +echo "๐Ÿ” TRIPZ FORTRESS Health Check" +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" + +# ุงู„ุฎุฏู…ุงุช +echo "๐Ÿ”ง ุงู„ุฎุฏู…ุงุช:" +services=("sshd" "ufw" "fail2ban" "knockd" "endlessh" "fake-mysql") +for svc in "${services[@]}"; do + if systemctl is-active --quiet "$svc" 2>/dev/null; then + echo " โœ… $svc ู†ุดุท" + else + echo " โŒ $svc ู…ุชูˆู‚ู!" + fi +done + +# UFW Status +echo "" +echo "๐Ÿ›ก๏ธ ุฌุฏุงุฑ ุงู„ุญู…ุงูŠุฉ:" +sudo ufw status | grep -E "Status:|22/tcp|80/tcp|443/tcp" | sed 's/^/ /' + +# Fail2Ban Status +echo "" +echo "๐Ÿšซ Fail2Ban:" +BANNED=$(sudo fail2ban-client status sshd 2>/dev/null | grep "Banned:" | awk '{print $NF}') +echo " ู…ุญุธูˆุฑูˆู† ุญุงู„ูŠุงู‹: $BANNED" + +# Disk Space +echo "" +echo "๐Ÿ’พ ู…ุณุงุญุฉ ุงู„ู‚ุฑุต:" +df -h / | awk 'NR==2 {print " ุงู„ู…ุณุชุฎุฏู…: " $3 " / " $2 " (" $5 ")"}' + +# ุงู„ุฐุงูƒุฑุฉ +echo "" +echo "๐Ÿง  ุงู„ุฐุงูƒุฑุฉ:" +free -h | awk 'NR==2 {print " ุงู„ู…ุณุชุฎุฏู…: " $3 " / " $2}' + +# ุขุฎุฑ ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ +echo "" +echo "๐Ÿ’พ ุขุฎุฑ ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ:" +LAST_BACKUP=$(ls -t /backup/fortress/*.enc 2>/dev/null | head -1) +if [ -n "$LAST_BACKUP" ]; then + echo " โœ… $(basename $LAST_BACKUP)" + echo " ๐Ÿ“… $(stat -c %y "$LAST_BACKUP" | cut -d'.' -f1)" +else + echo " โš ๏ธ ู„ุง ุชูˆุฌุฏ ู†ุณุฎ ุงุญุชูŠุงุทูŠุฉ" +fi + +echo "" +echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" +echo "โœ… ุงู„ูุญุต ู…ูƒุชู…ู„" +HEALTHEOF + +sudo chmod +x /usr/local/bin/fortress/health_check.sh + +# ุชุดุบูŠู„ ุงู„ูุญุต +sudo /usr/local/bin/fortress/health_check.sh +``` + +--- + +## ๐ŸŽ‰ ุงู„ู†ุชูŠุฌุฉ ุงู„ู†ู‡ุงุฆูŠุฉ + +```bash +# ุงู„ุขู† ุงู„ุณูŠุฑูุฑ: +# โœ… ู…ุญู…ูŠ ุจู€ 9 ุทุจู‚ุงุช ุฃู…ู†ูŠุฉ +# โœ… Port Knocking ู…ูุนู‘ู„ +# โœ… Honeypots ู†ุดุทุฉ +# โœ… ู†ุณุฎ ุงุญุชูŠุงุทูŠุฉ ุชู„ู‚ุงุฆูŠุฉ +# โœ… ุชู†ุจูŠู‡ุงุช Telegram +# โœ… Fail2Ban Progressive +# โœ… SSH ู…ุญู…ูŠ ุจุงู„ูƒุงู…ู„ +``` + +--- + +## ๐Ÿ†˜ ุงุณุชูƒุดุงู ุงู„ุฃุฎุทุงุก + +### ู…ุดูƒู„ุฉ: ู„ุง ุฃุณุชุทูŠุน ุงู„ุงุชุตุงู„ ุจุนุฏ Port Knocking +```bash +# ู…ู† ุงู„ุณูŠุฑูุฑ (ุฅู† ูƒุงู† ู„ุฏูŠูƒ ูˆุตูˆู„): +sudo /root/emergency_restore.sh + +# ู…ู† CloudPanel (ุฅู† ูˆูุฌุฏ): +# ุงุณุชุฎุฏู… Terminal ู…ู† ุงู„ูˆุงุฌู‡ุฉ +``` + +### ู…ุดูƒู„ุฉ: Fail2Ban ุญุธุฑู†ูŠ! +```bash +# ุฅู„ุบุงุก ุงู„ุญุธุฑ +sudo fail2ban-client set sshd unbanip YOUR_IP +``` + +### ู…ุดูƒู„ุฉ: ู†ุณูŠุช ุชุณู„ุณู„ Knocking +```bash +# ู…ู† ุงู„ุณูŠุฑูุฑ: +sudo cat /etc/knockd.conf | grep sequence +``` + +--- + +## ๐Ÿ“š ุงู„ู…ุฑุญู„ุฉ ุงู„ุชุงู„ูŠุฉ + +ุจุนุฏ ุฅุชู…ุงู… ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุจู†ุฌุงุญุŒ ุงู†ุชู‚ู„ ุฅู„ู‰: +๐Ÿ“„ **PHASE_3_APPLICATION_DEPLOYMENT.md** + +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โœ… ุงู„ู…ุฑุญู„ุฉ 2 ู…ูƒุชู…ู„ุฉ - ุงู„ุณูŠุฑูุฑ ู…ุญู…ูŠ! +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• diff --git a/PHASE_3_APPLICATION_DEPLOYMENT.md b/PHASE_3_APPLICATION_DEPLOYMENT.md new file mode 100644 index 0000000..97bf465 --- /dev/null +++ b/PHASE_3_APPLICATION_DEPLOYMENT.md @@ -0,0 +1,822 @@ +# ๐Ÿš€ ุงู„ู…ุฑุญู„ุฉ 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 + +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +๐ŸŽ‰ ุฌู…ูŠุน ุงู„ู…ุฑุงุญู„ ู…ูƒุชู…ู„ุฉ! +ุงู„ุณูŠุฑูุฑ ู…ุญู…ูŠ ูˆุงู„ุชุทุจูŠู‚ุงุช ุฌุงู‡ุฒุฉ! +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• diff --git a/QUICK_START_GUIDE.md b/QUICK_START_GUIDE.md new file mode 100644 index 0000000..7e191f1 --- /dev/null +++ b/QUICK_START_GUIDE.md @@ -0,0 +1,338 @@ +# ๐Ÿš€ ุฏู„ูŠู„ ุงู„ุจุฏุก ุงู„ุณุฑูŠุน - TRIPZ FORTRESS + +## ๐Ÿ“‹ ู†ุธุฑุฉ ุนุงู…ุฉ ุณุฑูŠุนุฉ + +ู‡ุฐุง ุงู„ุฏู„ูŠู„ ูŠูˆุถุญ ูƒูŠููŠุฉ ุงุณุชุฎุฏุงู… **TRIPZ FORTRESS v8.2** ุจุดูƒู„ ุณุฑูŠุน ูˆุขู…ู†. + +--- + +## โšก ุงู„ุจุฏุก ุงู„ุณุฑูŠุน (3 ุฎุทูˆุงุช ูู‚ุท!) + +### ุงู„ุฎุทูˆุฉ 1: ุชุญุถูŠุฑ ุงู„ู„ุงุจุชูˆุจ + +```bash +# ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ (Ubuntu): +cd ~ +mkdir FORTRESS_KEYS +cd FORTRESS_KEYS + +# ุชูˆู„ูŠุฏ ู…ูุชุงุญ SSH +ssh-keygen -t ed25519 -C "fortress-master-$(date +%Y%m%d)" -f fortress_master -N "" + +# ุนุฑุถ ุงู„ู…ูุชุงุญ ุงู„ุนุงู… (ุณุชุญุชุงุฌู‡ ู„ู„ุณูŠุฑูุฑ) +cat fortress_master.pub +``` + +### ุงู„ุฎุทูˆุฉ 2: ุชุญุถูŠุฑ ุงู„ุณูƒุฑูŠุจุช ุนู„ู‰ ุงู„ุณูŠุฑูุฑ + +```bash +# ุงู„ุงุชุตุงู„ ุจุงู„ุณูŠุฑูุฑ (ูƒู€ root) +ssh root@YOUR_SERVER_IP + +# ุชุญู…ูŠู„ ุงู„ุณูƒุฑูŠุจุช +wget https://your-domain.com/tripz_fortress_v8.2_generator.sh +# ุฃูˆ ุงุณุชุฎุฏู… scp: +# scp tripz_fortress_v8.2_generator.sh root@YOUR_SERVER_IP:/root/ + +# ู…ู†ุญ ุงู„ุตู„ุงุญูŠุงุช +chmod +x tripz_fortress_v8.2_generator.sh +``` + +### ุงู„ุฎุทูˆุฉ 3: ุชุดุบูŠู„ ุงู„ุชุซุจูŠุช + +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +# ุนุฏู‘ู„ ุงู„ู…ุชุบูŠุฑุงุช ููŠ ุฑุฃุณ ุงู„ุณูƒุฑูŠุจุช ุฃูˆ ู…ุฑุฑู‡ุง ูƒู€ environment variables: + +export SERVER_IP="194.163.xxx.xxx" +export ADMIN_USER="tripzadmin" +export SSH_PORT="2200" +export SSH_PUBLIC_KEY="ssh-ed25519 AAAA... fortress-master-20250205" + +# (ุงุฎุชูŠุงุฑูŠ) ุชูุนูŠู„/ุชุนุทูŠู„ ุงู„ู…ูŠุฒุงุช: +export ENABLE_HONEYPOT="true" +export ENABLE_FAKE_SERVICES="true" +export ENABLE_PORT_KNOCKING="true" +export ENABLE_FAIL2BAN="true" +export ENABLE_AUTO_BACKUP="true" + +# (ุงุฎุชูŠุงุฑูŠ) ุชู†ุจูŠู‡ุงุช Telegram: +export TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN" +export TELEGRAM_CHAT_ID="YOUR_CHAT_ID" + +# ุชุดุบูŠู„ ุงู„ุชุซุจูŠุช +sudo ./tripz_fortress_v8.2_generator.sh +``` + +--- + +## โœ… ุจุนุฏ ุงู„ุชุซุจูŠุช + +### 1. ุงุฎุชุจุงุฑ ุงู„ุงุชุตุงู„ (ู‚ุจู„ ู‚ุทุน ุงู„ุฌู„ุณุฉ ุงู„ุญุงู„ูŠุฉ!) + +```bash +# ู…ู† ุงู„ู„ุงุจุชูˆุจ - ููŠ terminal ุฌุฏูŠุฏ: + +# ุฅุฐุง ูƒุงู† Port Knocking ู…ูุนู‘ู„: +knock YOUR_SERVER_IP 7531 8642 9753 # ุงุณุชุฎุฏู… ุฃุฑู‚ุงู…ูƒ ุงู„ูุนู„ูŠุฉ +sleep 5 + +# ุงู„ุงุชุตุงู„ +ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200 tripzadmin@YOUR_SERVER_IP + +# ูŠุฌุจ ุฃู† ุชุฏุฎู„ ุจู†ุฌุงุญ ุจุฏูˆู† ูƒู„ู…ุฉ ู…ุฑูˆุฑ! +``` + +### 2. ูุญุต ุงู„ุญุงู„ุฉ + +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +sudo ufw status verbose +sudo fail2ban-client status +sudo systemctl status sshd knockd fail2ban + +# ู…ุฑุงุฌุนุฉ ู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช +cat /root/FORTRESS_INFO.txt +``` + +### 3. ุฅู†ุดุงุก ุณูƒุฑูŠุจุช ุงู„ุงุชุตุงู„ ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ + +```bash +# ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ: +cat > ~/FORTRESS_KEYS/connect.sh <<'EOF' +#!/bin/bash +# ๐Ÿ” ุณูƒุฑูŠุจุช ุงู„ุงุชุตุงู„ ุจุงู„ุณูŠุฑูุฑ + +SERVER_IP="194.163.xxx.xxx" +SSH_PORT="2200" +ADMIN_USER="tripzadmin" + +# Port Knocking (ุฅู† ูˆูุฌุฏ) +KNOCK_SEQUENCE="7531 8642 9753" # ุญุฏู‘ุซ ุจุฃุฑู‚ุงู…ูƒ + +echo "๐Ÿšช Knocking..." +knock $SERVER_IP $KNOCK_SEQUENCE + +echo "โณ ุงู†ุชุธุฑ 5 ุซูˆุงู†ูŠ..." +sleep 5 + +echo "๐Ÿ” ุงู„ุงุชุตุงู„..." +ssh -i ~/FORTRESS_KEYS/fortress_master -p $SSH_PORT $ADMIN_USER@$SERVER_IP +EOF + +chmod +x ~/FORTRESS_KEYS/connect.sh + +# ุงู„ุขู† ู„ู„ุงุชุตุงู„: +~/FORTRESS_KEYS/connect.sh +``` + +--- + +## ๐Ÿ“Š ุงู„ุฃูˆุงู…ุฑ ุงู„ู…ููŠุฏุฉ + +### ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: + +```bash +# ูุญุต ุงู„ุญู…ุงูŠุฉ +sudo /usr/local/bin/fortress/health_check.sh # (ุฅู† ูˆูุฌุฏ) +sudo ufw status verbose +sudo fail2ban-client status sshd + +# ุงู„ุณุฌู„ุงุช +sudo tail -f /var/log/fortress/install_*.log +sudo tail -f /var/log/knockd.log +sudo journalctl -u fail2ban -f + +# ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ ุงู„ูŠุฏูˆูŠ +sudo /usr/local/bin/fortress/backup.sh + +# ููƒ ุชุดููŠุฑ ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ +# ูƒู„ู…ุฉ ุงู„ู…ุฑูˆุฑ: TRIPZ__ +openssl enc -d -aes-256-cbc -pbkdf2 \ + -in /backup/fortress/fortress_TIMESTAMP.tar.gz.enc \ + -out fortress_backup.tar.gz \ + -k "TRIPZ_$(hostname)_2025" +``` + +### ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ: + +```bash +# ูุญุต ุงู„ู…ูุงุชูŠุญ +ls -la ~/FORTRESS_KEYS/ +ssh-keygen -lf ~/FORTRESS_KEYS/fortress_master.pub + +# ู†ุณุฎ ู…ู„ูุงุช ุฅู„ู‰ ุงู„ุณูŠุฑูุฑ +rsync -avz --progress \ + -e "ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200" \ + /local/path/ tripzadmin@SERVER_IP:/remote/path/ + +# ุชุญู…ูŠู„ ู…ู„ูุงุช ู…ู† ุงู„ุณูŠุฑูุฑ +rsync -avz --progress \ + -e "ssh -i ~/FORTRESS_KEYS/fortress_master -p 2200" \ + tripzadmin@SERVER_IP:/remote/path/ /local/path/ +``` + +--- + +## ๐Ÿ”ง ุงู„ุชุฎุตูŠุต + +### ุชุบูŠูŠุฑ ู…ู†ูุฐ SSH + +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +sudo nano /etc/ssh/sshd_config +# ุนุฏู‘ู„: Port 2200 โ†’ Port 3300 + +sudo systemctl reload sshd + +# ุญุฏู‘ุซ UFW (ุฅุฐุง ู„ู… ูŠูƒู† Port Knocking ู…ูุนู‘ู„) +sudo ufw delete allow 2200/tcp +sudo ufw allow 3300/tcp +``` + +### ุฅุถุงูุฉ ู…ูุชุงุญ SSH ุฌุฏูŠุฏ + +```bash +# ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ - ุชูˆู„ูŠุฏ ู…ูุชุงุญ ุฌุฏูŠุฏ: +ssh-keygen -t ed25519 -C "backup-key" -f ~/FORTRESS_KEYS/backup_key + +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ - ุฅุถุงูุฉ ุงู„ู…ูุชุงุญ: +echo "ssh-ed25519 AAAA... backup-key" | \ + sudo tee -a /home/tripzadmin/.ssh/authorized_keys +``` + +### ุชุนุทูŠู„ Port Knocking ู…ุคู‚ุชุงู‹ + +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +sudo systemctl stop knockd + +# ูุชุญ SSH ู…ุจุงุดุฑุฉ +sudo ufw allow 2200/tcp + +# ู„ุฅุนุงุฏุฉ ุงู„ุชูุนูŠู„: +sudo ufw delete allow 2200/tcp +sudo systemctl start knockd +``` + +--- + +## ๐Ÿ†˜ ุญู„ ุงู„ู…ุดุงูƒู„ ุงู„ุดุงุฆุนุฉ + +### ู…ุดูƒู„ุฉ 1: ู„ุง ุฃุณุชุทูŠุน ุงู„ุงุชุตุงู„ ุจุนุฏ Port Knocking + +**ุงู„ุญู„:** +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ (ู…ู† console ู…ุจุงุดุฑุฉ ุฃูˆ ู…ู† CloudPanel): +sudo /root/emergency_restore.sh + +# ุฃูˆ ูŠุฏูˆูŠุงู‹: +sudo ufw allow 2200/tcp +sudo systemctl stop knockd +``` + +### ู…ุดูƒู„ุฉ 2: SSH ูŠุฑูุถ ุงู„ู…ูุชุงุญ + +**ุงู„ุญู„:** +```bash +# ุชุญู‚ู‚ ู…ู† ุงู„ุตู„ุงุญูŠุงุช ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +sudo ls -la /home/tripzadmin/.ssh/ +# ูŠุฌุจ ุฃู† ุชูƒูˆู†: +# drwx------ (700) ู„ู„ู…ุฌู„ุฏ +# -rw------- (600) ู„ู…ู„ู authorized_keys + +# ุฅุตู„ุงุญ ุงู„ุตู„ุงุญูŠุงุช: +sudo chmod 700 /home/tripzadmin/.ssh +sudo chmod 600 /home/tripzadmin/.ssh/authorized_keys +sudo chown -R tripzadmin:tripzadmin /home/tripzadmin/.ssh +``` + +### ู…ุดูƒู„ุฉ 3: Fail2Ban ุญุธุฑ IP ุงู„ุฎุงุต ุจูŠ + +**ุงู„ุญู„:** +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +sudo fail2ban-client status sshd +sudo fail2ban-client set sshd unbanip YOUR_IP + +# ุฅุถุงูุฉ IP ุฅู„ู‰ whitelist: +sudo nano /etc/fail2ban/jail.local +# ุฃุถู ุชุญุช [DEFAULT]: +# ignoreip = 127.0.0.1/8 ::1 YOUR_IP +sudo systemctl restart fail2ban +``` + +### ู…ุดูƒู„ุฉ 4: ู†ุณูŠุช ุชุณู„ุณู„ Port Knocking + +**ุงู„ุญู„:** +```bash +# ุนู„ู‰ ุงู„ุณูŠุฑูุฑ (ู…ู† console): +sudo cat /etc/knockd.conf | grep sequence +# ุฃูˆ ู…ู† ู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช: +sudo cat /root/FORTRESS_INFO.txt | grep "Port Knocking" +``` + +--- + +## ๐Ÿ“š ุงู„ู…ู„ูุงุช ุงู„ู…ู‡ู…ุฉ + +### ุนู„ู‰ ุงู„ุณูŠุฑูุฑ: +- `/root/FORTRESS_INFO.txt` - ู…ุนู„ูˆู…ุงุช ูƒุงู…ู„ุฉ +- `/var/log/fortress/` - ุงู„ุณุฌู„ุงุช +- `/backup/fortress/` - ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠุฉ +- `/etc/ssh/sshd_config` - ุชูƒูˆูŠู† SSH +- `/etc/knockd.conf` - ุชูƒูˆูŠู† Port Knocking +- `/etc/fail2ban/jail.local` - ุชูƒูˆูŠู† Fail2Ban + +### ุนู„ู‰ ุงู„ู„ุงุจุชูˆุจ: +- `~/FORTRESS_KEYS/fortress_master` - ุงู„ู…ูุชุงุญ ุงู„ุฎุงุต (ุญู…ุงูŠุฉ!) +- `~/FORTRESS_KEYS/fortress_master.pub` - ุงู„ู…ูุชุงุญ ุงู„ุนุงู… +- `~/FORTRESS_KEYS/connect.sh` - ุณูƒุฑูŠุจุช ุงู„ุงุชุตุงู„ +- `~/.ssh/config` - ุชูƒูˆูŠู† SSH + +--- + +## ๐Ÿ” ุฃูุถู„ ุงู„ู…ู…ุงุฑุณุงุช + +### ุงู„ุฃู…ุงู†: +1. โœ… ู„ุง ุชุดุงุฑูƒ ุงู„ู…ูุชุงุญ ุงู„ุฎุงุต ุฃุจุฏุงู‹ +2. โœ… ุงุญุชูุธ ุจู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ู…ุดูุฑุฉ ู…ู† ุงู„ู…ูุงุชูŠุญ +3. โœ… ุงุณุชุฎุฏู… ูƒู„ู…ุงุช ู…ุฑูˆุฑ ู‚ูˆูŠุฉ (25+ ุญุฑู) ู„ู„ุชุดููŠุฑ +4. โœ… ุฑุงุฌุน ุงู„ุณุฌู„ุงุช ุฏูˆุฑูŠุงู‹ +5. โœ… ุญุฏู‘ุซ ุงู„ู†ุธุงู… ุจุงู†ุชุธุงู…: `sudo apt update && sudo apt upgrade` + +### ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ: +1. โœ… ุงู„ู…ูุงุชูŠุญ ุนู„ู‰ USB ู…ุดูุฑ +2. โœ… KeePassXC ู„ุญูุธ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุญุณุงุณุฉ +3. โœ… ู†ุณุฎ ุงุญุชูŠุงุทูŠุฉ ุชู„ู‚ุงุฆูŠุฉ ูŠูˆู…ูŠุฉ +4. โœ… ุงุฎุชุจุงุฑ ุงุณุชุนุงุฏุฉ ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠุฉ ุดู‡ุฑูŠุงู‹ + +### ุงู„ู…ุฑุงู‚ุจุฉ: +1. โœ… ุชูุนูŠู„ ุชู†ุจูŠู‡ุงุช Telegram +2. โœ… ูุญุต Fail2Ban ูŠูˆู…ูŠุงู‹ +3. โœ… ู…ุฑุงุฌุนุฉ ุงู„ุณุฌู„ุงุช ุฃุณุจูˆุนูŠุงู‹ +4. โœ… ุงุฎุชุจุงุฑ ุงู„ุงุชุตุงู„ ุจุงู„ู…ูุชุงุญ ุงู„ุงุญุชูŠุงุทูŠ ุดู‡ุฑูŠุงู‹ + +--- + +## ๐Ÿ“ž ุงู„ุฏุนู… + +ุฅุฐุง ูˆุงุฌู‡ุช ู…ุดุงูƒู„: +1. ุฑุงุฌุน ุงู„ุณุฌู„ุงุช: `/var/log/fortress/` +2. ุงู‚ุฑุฃ `/root/FORTRESS_INFO.txt` +3. ุชูˆุงุตู„: https://tripz-egypt.com + +--- + +## ๐ŸŽฏ ุงู„ุฎุทูˆุงุช ุงู„ุชุงู„ูŠุฉ + +ุจุนุฏ ุฅุชู…ุงู… ุงู„ุชุซุจูŠุช: +1. โœ… **ุงู„ู…ุฑุญู„ุฉ 1**: ุชุฃู…ูŠู† ุงู„ู„ุงุจุชูˆุจ (ู…ูƒุชู…ู„ุฉ) +2. โœ… **ุงู„ู…ุฑุญู„ุฉ 2**: ุชุฃู…ูŠู† ุงู„ุณูŠุฑูุฑ (ู…ูƒุชู…ู„ุฉ) +3. โญ๏ธ **ุงู„ู…ุฑุญู„ุฉ 3**: ู†ุดุฑ ุงู„ุชุทุจูŠู‚ุงุช (ุฑุงุฌุน PHASE_3) + +--- + +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โœ… ุฏู„ูŠู„ ุงู„ุจุฏุก ุงู„ุณุฑูŠุน ู…ูƒุชู…ู„! +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• diff --git a/config_example.sh b/config_example.sh new file mode 100644 index 0000000..33d80a4 --- /dev/null +++ b/config_example.sh @@ -0,0 +1,216 @@ +#!/bin/bash +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ”ง TRIPZ FORTRESS v8.2 - Configuration Template +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ุงุณุชุฎุฏู… ู‡ุฐุง ุงู„ู…ู„ู ู„ุชูƒูˆูŠู† ุงู„ุชุซุจูŠุช ุจุณู‡ูˆู„ุฉ +# ุงู†ุณุฎู‡ุŒ ุนุฏู‘ู„ ุงู„ู‚ูŠู…ุŒ ุซู…: source config_example.sh && sudo ./tripz_fortress_v8.2_generator.sh +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# โš™๏ธ ู…ุนู„ูˆู…ุงุช ุงู„ุณูŠุฑูุฑ (REQUIRED) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# ุนู†ูˆุงู† IP ุงู„ุณูŠุฑูุฑ (ู…ุซุงู„: 194.163.45.123) +export SERVER_IP="YOUR_SERVER_IP_HERE" + +# ุงู„ู…ูุชุงุญ ุงู„ุนุงู… SSH (ู…ู†: cat ~/FORTRESS_KEYS/fortress_master.pub) +export SSH_PUBLIC_KEY="YOUR_SSH_PUBLIC_KEY_HERE" + +# ุงุณู… ุงู„ู…ุณุชุฎุฏู… ุงู„ุฅุฏุงุฑูŠ (ุงูุชุฑุงุถูŠ: tripzadmin) +export ADMIN_USER="tripzadmin" + +# ู…ู†ูุฐ SSH ุงู„ุฌุฏูŠุฏ (ุงูุชุฑุงุถูŠ: 2200) +export SSH_PORT="2200" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ›ก๏ธ ุงู„ู…ูŠุฒุงุช ุงู„ุฃู…ู†ูŠุฉ (TOGGLES) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ุงู„ู‚ูŠู… ุงู„ู…ุณู…ูˆุญุฉ: true ุฃูˆ false + +# Port Knocking (ุจุงุจ ุณุฑูŠ ู„ู„ูˆุตูˆู„) +export ENABLE_PORT_KNOCKING="true" + +# Endlessh Honeypot (ูุฎ ุนู„ู‰ Port 22) +export ENABLE_HONEYPOT="true" + +# Fake Services (ุฎุฏู…ุงุช ูˆู‡ู…ูŠุฉ ูƒูุฎุงุฎ) +export ENABLE_FAKE_SERVICES="true" + +# Fail2Ban (ุญุธุฑ ุชู„ู‚ุงุฆูŠ ู„ู„ู…ู‡ุงุฌู…ูŠู†) +export ENABLE_FAIL2BAN="true" + +# WireGuard VPN (ุดุจูƒุฉ VPN ุฎุงุตุฉ) +export ENABLE_WIREGUARD="false" + +# Auto Backup (ู†ุณุฎ ุงุญุชูŠุงุทูŠุฉ ุชู„ู‚ุงุฆูŠุฉ ูŠูˆู…ูŠุฉ) +export ENABLE_AUTO_BACKUP="true" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿšช Port Knocking Configuration (ุงุฎุชูŠุงุฑูŠ) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ุฅุฐุง ุชุฑูƒุช ูุงุฑุบุฉุŒ ุณูŠุชู… ุชูˆู„ูŠุฏู‡ุง ุชู„ู‚ุงุฆูŠุงู‹ +# ูŠุฌุจ ุฃู† ุชูƒูˆู† ุฃุฑู‚ุงู… ุจูŠู† 7000-9000 + +export KNOCK_PORT_1="" # ู…ุซุงู„: 7531 +export KNOCK_PORT_2="" # ู…ุซุงู„: 8642 +export KNOCK_PORT_3="" # ู…ุซุงู„: 9753 + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐ŸŒ WireGuard VPN Configuration (ุฅุฐุง ููุนู‘ู„) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# ุดุจูƒุฉ VPN (ุงูุชุฑุงุถูŠ: 10.8.0.0/24) +export VPN_NETWORK="10.8.0.0/24" + +# ุนู†ูˆุงู† ุงู„ุณูŠุฑูุฑ ููŠ ุงู„ุดุจูƒุฉ (ุงูุชุฑุงุถูŠ: 10.8.0.1) +export VPN_SERVER_IP="10.8.0.1" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ฑ Telegram Notifications (ุงุฎุชูŠุงุฑูŠ) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ู„ู„ุญุตูˆู„ ุนู„ู‰ ุชู†ุจูŠู‡ุงุช ููˆุฑูŠุฉ ุนุจุฑ Telegram + +# ุชูˆูƒู† ุงู„ุจูˆุช (ู…ู† @BotFather) +export TELEGRAM_BOT_TOKEN="" + +# ู…ุนุฑู ุงู„ู…ุญุงุฏุซุฉ (ู…ู† @userinfobot) +export TELEGRAM_CHAT_ID="" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ ู…ู„ุงุญุธุงุช ู…ู‡ู…ุฉ: +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# +# 1. SERVER_IP ูˆ SSH_PUBLIC_KEY ู…ุทู„ูˆุจุงู† - ูŠุฌุจ ู…ู„ุคู‡ู…ุง! +# +# 2. ู„ู„ุญุตูˆู„ ุนู„ู‰ SSH_PUBLIC_KEY: +# cat ~/FORTRESS_KEYS/fortress_master.pub +# +# 3. Port Knocking: +# - ุฅุฐุง ุชุฑูƒุช ูุงุฑุบุงู‹ุŒ ุณูŠุชู… ุชูˆู„ูŠุฏ ุฃุฑู‚ุงู… ุนุดูˆุงุฆูŠุฉ +# - ุงุญูุธ ุงู„ุฃุฑู‚ุงู… ููŠ ู…ูƒุงู† ุขู…ู†! +# +# 4. Telegram: +# - ุงุฎุชูŠุงุฑูŠ ูˆู„ูƒู† ู…ูˆุตู‰ ุจู‡ ุจุดุฏุฉ ู„ู„ุชู†ุจูŠู‡ุงุช +# - ุฎุทูˆุงุช ุงู„ุฅุนุฏุงุฏ ููŠ PHASE_1_LAPTOP_SETUP.md +# +# 5. WireGuard VPN: +# - ู…ุนุทู‘ู„ ุงูุชุฑุงุถูŠุงู‹ +# - ูุนู‘ู„ู‡ ูู‚ุท ุฅุฐุง ูƒู†ุช ุจุญุงุฌุฉ ู„ุดุจูƒุฉ VPN +# +# 6. ุงู„ู…ูŠุฒุงุช ุงู„ู…ุนุทู‘ู„ุฉ: +# - ูŠู…ูƒู†ูƒ ุชุนุทูŠู„ ุฃูŠ ู…ูŠุฒุฉ ุจุชุบูŠูŠุฑ ุงู„ู‚ูŠู…ุฉ ุฅู„ู‰ false +# - ู„ูƒู† ู„ุง ู†ู†ุตุญ ุจุชุนุทูŠู„ Fail2Ban ุฃูˆ Auto Backup +# +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# โœ… Validation (ุงุฎุชูŠุงุฑูŠ - ู„ูƒู† ู…ููŠุฏ!) +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +validate_config() { + echo "๐Ÿ” ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุชูƒูˆูŠู†..." + + # ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู…ุชุทู„ุจุงุช + if [ -z "$SERVER_IP" ] || [ "$SERVER_IP" == "YOUR_SERVER_IP_HERE" ]; then + echo "โŒ ุฎุทุฃ: SERVER_IP ุบูŠุฑ ู…ูƒูˆู‘ู†!" + return 1 + fi + + if [ -z "$SSH_PUBLIC_KEY" ] || [ "$SSH_PUBLIC_KEY" == "YOUR_SSH_PUBLIC_KEY_HERE" ]; then + echo "โŒ ุฎุทุฃ: SSH_PUBLIC_KEY ุบูŠุฑ ู…ูƒูˆู‘ู†!" + return 1 + fi + + # ุงู„ุชุญู‚ู‚ ู…ู† ุชู†ุณูŠู‚ IP + if ! [[ $SERVER_IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + echo "โŒ ุฎุทุฃ: SERVER_IP ุบูŠุฑ ุตุงู„ุญ!" + return 1 + fi + + # ุงู„ุชุญู‚ู‚ ู…ู† ุชู†ุณูŠู‚ SSH Key + if ! echo "$SSH_PUBLIC_KEY" | grep -qE '^(ssh-rsa|ssh-ed25519|ecdsa-sha2)'; then + echo "โŒ ุฎุทุฃ: SSH_PUBLIC_KEY ุบูŠุฑ ุตุงู„ุญ!" + return 1 + fi + + echo "โœ… ุงู„ุชูƒูˆูŠู† ุตุงู„ุญ!" + echo "" + echo "๐Ÿ“Š ู…ู„ุฎุต ุงู„ุชูƒูˆูŠู†:" + echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + echo "Server IP: $SERVER_IP" + echo "Admin User: $ADMIN_USER" + echo "SSH Port: $SSH_PORT" + echo "" + echo "ุงู„ู…ูŠุฒุงุช ุงู„ู…ูุนู‘ู„ุฉ:" + [ "$ENABLE_PORT_KNOCKING" == "true" ] && echo " โœ… Port Knocking" + [ "$ENABLE_HONEYPOT" == "true" ] && echo " โœ… Honeypot" + [ "$ENABLE_FAKE_SERVICES" == "true" ] && echo " โœ… Fake Services" + [ "$ENABLE_FAIL2BAN" == "true" ] && echo " โœ… Fail2Ban" + [ "$ENABLE_WIREGUARD" == "true" ] && echo " โœ… WireGuard VPN" + [ "$ENABLE_AUTO_BACKUP" == "true" ] && echo " โœ… Auto Backup" + [ -n "$TELEGRAM_BOT_TOKEN" ] && echo " โœ… Telegram Alerts" + echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" + echo "" + echo "โœ… ุฌุงู‡ุฒ ู„ู„ุชุซุจูŠุช!" + echo "๐Ÿš€ ู„ู„ู…ุชุงุจุนุฉ: sudo ./tripz_fortress_v8.2_generator.sh" + echo "" + + return 0 +} + +# ุชุดุบูŠู„ ุงู„ุชุญู‚ู‚ ุชู„ู‚ุงุฆูŠุงู‹ +validate_config + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ’ก ุฃู…ุซู„ุฉ ู„ู„ุงุณุชุฎุฏุงู…: +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# +# ู…ุซุงู„ 1: ุชูƒูˆูŠู† ุฃุณุงุณูŠ (ุจุฏูˆู† VPN ุฃูˆ Telegram): +# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +# export SERVER_IP="194.163.45.123" +# export SSH_PUBLIC_KEY="ssh-ed25519 AAAAC3NzaC1l... fortress-master" +# export ADMIN_USER="tripzadmin" +# export SSH_PORT="2200" +# export ENABLE_PORT_KNOCKING="true" +# export ENABLE_HONEYPOT="true" +# export ENABLE_FAKE_SERVICES="true" +# export ENABLE_FAIL2BAN="true" +# export ENABLE_WIREGUARD="false" +# export ENABLE_AUTO_BACKUP="true" +# +# ู…ุซุงู„ 2: ุชูƒูˆูŠู† ู…ุชู‚ุฏู… (ู…ุน Telegram): +# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +# export SERVER_IP="194.163.45.123" +# export SSH_PUBLIC_KEY="ssh-ed25519 AAAAC3NzaC1l... fortress-master" +# export ADMIN_USER="tripzadmin" +# export SSH_PORT="2200" +# export ENABLE_PORT_KNOCKING="true" +# export ENABLE_HONEYPOT="true" +# export ENABLE_FAKE_SERVICES="true" +# export ENABLE_FAIL2BAN="true" +# export ENABLE_WIREGUARD="false" +# export ENABLE_AUTO_BACKUP="true" +# export TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz" +# export TELEGRAM_CHAT_ID="987654321" +# +# ู…ุซุงู„ 3: ุชูƒูˆูŠู† ูƒุงู…ู„ (ู…ุน VPN ูˆ Telegram): +# โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +# export SERVER_IP="194.163.45.123" +# export SSH_PUBLIC_KEY="ssh-ed25519 AAAAC3NzaC1l... fortress-master" +# export ADMIN_USER="tripzadmin" +# export SSH_PORT="2200" +# export ENABLE_PORT_KNOCKING="true" +# export ENABLE_HONEYPOT="true" +# export ENABLE_FAKE_SERVICES="true" +# export ENABLE_FAIL2BAN="true" +# export ENABLE_WIREGUARD="true" +# export VPN_NETWORK="10.8.0.0/24" +# export VPN_SERVER_IP="10.8.0.1" +# export ENABLE_AUTO_BACKUP="true" +# export TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz" +# export TELEGRAM_CHAT_ID="987654321" +# export KNOCK_PORT_1="7531" +# export KNOCK_PORT_2="8642" +# export KNOCK_PORT_3="9753" +# +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• diff --git a/system_check.sh b/system_check.sh new file mode 100644 index 0000000..c299506 --- /dev/null +++ b/system_check.sh @@ -0,0 +1,463 @@ +#!/bin/bash +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ” TRIPZ FORTRESS v8.2 - Comprehensive System Check +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ุงุณุชุฎุฏู… ู‡ุฐุง ุงู„ุณูƒุฑูŠุจุช ู„ูุญุต ุญุงู„ุฉ ุงู„ู†ุธุงู… ุงู„ุฃู…ู†ูŠ ุจุงู„ูƒุงู…ู„ +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +set -euo pipefail + +# Colors +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' + +# Counters +TOTAL_CHECKS=0 +PASSED_CHECKS=0 +FAILED_CHECKS=0 +WARNING_CHECKS=0 + +# Functions +check_pass() { + echo -e "${GREEN}โœ… $1${NC}" + ((PASSED_CHECKS++)) + ((TOTAL_CHECKS++)) +} + +check_fail() { + echo -e "${RED}โŒ $1${NC}" + ((FAILED_CHECKS++)) + ((TOTAL_CHECKS++)) +} + +check_warn() { + echo -e "${YELLOW}โš ๏ธ $1${NC}" + ((WARNING_CHECKS++)) + ((TOTAL_CHECKS++)) +} + +info() { + echo -e "${CYAN}โ„น๏ธ $1${NC}" +} + +section() { + echo "" + echo -e "${BLUE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" + echo -e "${BLUE}$1${NC}" + echo -e "${BLUE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" +} + +# Main +clear + +cat <<'BANNER' +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + ๐Ÿ” TRIPZ FORTRESS v8.2 - System Health Check +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +BANNER + +echo "" +info "Starting comprehensive system check..." +info "Date: $(date '+%Y-%m-%d %H:%M:%S')" +info "Hostname: $(hostname)" +echo "" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 1. BASIC SYSTEM INFO +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "1๏ธโƒฃ BASIC SYSTEM INFORMATION" + +# OS Info +if [ -f /etc/os-release ]; then + OS_NAME=$(grep PRETTY_NAME /etc/os-release | cut -d'"' -f2) + info "Operating System: $OS_NAME" + check_pass "OS detected" +else + check_fail "Cannot detect OS" +fi + +# Kernel +KERNEL=$(uname -r) +info "Kernel: $KERNEL" +check_pass "Kernel detected" + +# Uptime +UPTIME=$(uptime -p) +info "Uptime: $UPTIME" + +# Resources +MEMORY_TOTAL=$(free -h | awk '/^Mem:/ {print $2}') +MEMORY_USED=$(free -h | awk '/^Mem:/ {print $3}') +MEMORY_PERCENT=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2 * 100}') + +info "Memory: $MEMORY_USED / $MEMORY_TOTAL (${MEMORY_PERCENT}%)" + +if [ "$MEMORY_PERCENT" -lt 80 ]; then + check_pass "Memory usage OK" +elif [ "$MEMORY_PERCENT" -lt 90 ]; then + check_warn "Memory usage high: ${MEMORY_PERCENT}%" +else + check_fail "Memory usage critical: ${MEMORY_PERCENT}%" +fi + +DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//') +DISK_USED=$(df -h / | awk 'NR==2 {print $3}') +DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}') + +info "Disk: $DISK_USED / $DISK_TOTAL (${DISK_USAGE}%)" + +if [ "$DISK_USAGE" -lt 80 ]; then + check_pass "Disk usage OK" +elif [ "$DISK_USAGE" -lt 90 ]; then + check_warn "Disk usage high: ${DISK_USAGE}%" +else + check_fail "Disk usage critical: ${DISK_USAGE}%" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 2. NETWORK CONNECTIVITY +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "2๏ธโƒฃ NETWORK CONNECTIVITY" + +# Internet +if ping -c 2 8.8.8.8 &>/dev/null; then + check_pass "Internet connectivity" +else + check_fail "No internet connection" +fi + +# DNS +if ping -c 2 google.com &>/dev/null; then + check_pass "DNS resolution" +else + check_fail "DNS resolution failed" +fi + +# External IP +EXTERNAL_IP=$(curl -s ifconfig.me 2>/dev/null || echo "unknown") +info "External IP: $EXTERNAL_IP" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 3. SECURITY SERVICES +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "3๏ธโƒฃ SECURITY SERVICES" + +# SSH +if systemctl is-active --quiet sshd; then + check_pass "SSH (sshd) active" + + # SSH Config + SSH_PORT=$(grep -E "^Port " /etc/ssh/sshd_config | awk '{print $2}' || echo "22") + info "SSH Port: $SSH_PORT" + + if [ "$SSH_PORT" != "22" ]; then + check_pass "SSH port changed from default" + else + check_warn "SSH still on default port 22" + fi + + # Password Authentication + if grep -q "^PasswordAuthentication no" /etc/ssh/sshd_config; then + check_pass "Password authentication disabled" + else + check_warn "Password authentication enabled" + fi + + # Root Login + if grep -q "^PermitRootLogin no" /etc/ssh/sshd_config; then + check_pass "Root login disabled" + else + check_warn "Root login enabled" + fi +else + check_fail "SSH (sshd) not running" +fi + +# UFW +if systemctl is-active --quiet ufw; then + check_pass "UFW firewall active" + + UFW_STATUS=$(ufw status | head -1 | awk '{print $2}') + if [ "$UFW_STATUS" == "active" ]; then + check_pass "UFW enabled" + else + check_fail "UFW not enabled" + fi +else + check_fail "UFW not installed/running" +fi + +# Fail2Ban +if systemctl is-active --quiet fail2ban 2>/dev/null; then + check_pass "Fail2Ban active" + + # Banned IPs + if command -v fail2ban-client &>/dev/null; then + BANNED_COUNT=$(fail2ban-client status sshd 2>/dev/null | grep "Currently banned:" | awk '{print $4}' || echo "0") + info "Currently banned IPs: $BANNED_COUNT" + fi +else + check_warn "Fail2Ban not active (optional but recommended)" +fi + +# Knockd (Port Knocking) +if systemctl is-active --quiet knockd 2>/dev/null; then + check_pass "Port Knocking (knockd) active" + + if [ -f /etc/knockd.conf ]; then + KNOCK_SEQ=$(grep -A 1 "\[openSSH\]" /etc/knockd.conf | grep sequence | awk '{print $3}') + info "Knock sequence: $KNOCK_SEQ" + fi +else + check_warn "Port Knocking not active (optional)" +fi + +# Endlessh (Honeypot) +if systemctl is-active --quiet endlessh 2>/dev/null; then + check_pass "Endlessh honeypot active" +else + check_warn "Endlessh honeypot not active (optional)" +fi + +# Fake MySQL +if systemctl is-active --quiet fake-mysql 2>/dev/null; then + check_pass "Fake MySQL trap active" +else + check_warn "Fake MySQL trap not active (optional)" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 4. SYSTEM HARDENING +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "4๏ธโƒฃ SYSTEM HARDENING" + +# sysctl checks +if grep -q "net.ipv4.tcp_syncookies = 1" /etc/sysctl.conf; then + check_pass "SYN flood protection enabled" +else + check_warn "SYN flood protection not configured" +fi + +if grep -q "net.ipv4.conf.all.rp_filter = 1" /etc/sysctl.conf; then + check_pass "Reverse path filtering enabled" +else + check_warn "Reverse path filtering not configured" +fi + +if grep -q "kernel.kptr_restrict = 2" /etc/sysctl.conf; then + check_pass "Kernel pointer protection enabled" +else + check_warn "Kernel pointer protection not configured" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 5. USERS & AUTHENTICATION +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "5๏ธโƒฃ USERS & AUTHENTICATION" + +# Admin user +ADMIN_USER=$(grep -E "^AllowUsers" /etc/ssh/sshd_config | awk '{print $2}' || echo "unknown") +if [ "$ADMIN_USER" != "unknown" ]; then + info "Admin user: $ADMIN_USER" + check_pass "Admin user configured" + + # Check sudo access + if [ -f "/etc/sudoers.d/$ADMIN_USER" ]; then + check_pass "Sudo access configured" + fi +else + check_warn "No specific admin user configured" +fi + +# Check for users with UID 0 (root equivalents) +ROOT_USERS=$(awk -F: '$3 == 0 {print $1}' /etc/passwd | grep -v "^root$" | wc -l) +if [ "$ROOT_USERS" -eq 0 ]; then + check_pass "No additional UID 0 users" +else + check_warn "Found $ROOT_USERS additional UID 0 users" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 6. BACKUPS +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "6๏ธโƒฃ BACKUP SYSTEM" + +# Check backup directory +if [ -d "/backup/fortress" ]; then + check_pass "Backup directory exists" + + # Count backups + BACKUP_COUNT=$(ls -1 /backup/fortress/*.enc 2>/dev/null | wc -l || echo "0") + info "Backup files: $BACKUP_COUNT" + + if [ "$BACKUP_COUNT" -gt 0 ]; then + check_pass "Backups found" + + # Last backup + LAST_BACKUP=$(ls -t /backup/fortress/*.enc 2>/dev/null | head -1) + if [ -n "$LAST_BACKUP" ]; then + LAST_BACKUP_DATE=$(stat -c %y "$LAST_BACKUP" | cut -d' ' -f1) + info "Last backup: $LAST_BACKUP_DATE" + + # Check if recent (within 2 days) + DAYS_SINCE_BACKUP=$(( ($(date +%s) - $(stat -c %Y "$LAST_BACKUP")) / 86400 )) + if [ "$DAYS_SINCE_BACKUP" -le 2 ]; then + check_pass "Recent backup available" + else + check_warn "Last backup is $DAYS_SINCE_BACKUP days old" + fi + fi + else + check_warn "No backups found" + fi +else + check_warn "Backup directory not found" +fi + +# Check cron job +if crontab -l 2>/dev/null | grep -q "fortress/backup.sh"; then + check_pass "Backup cron job configured" +else + check_warn "No backup cron job found" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 7. MONITORING & LOGGING +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "7๏ธโƒฃ MONITORING & LOGGING" + +# Log directory +if [ -d "/var/log/fortress" ]; then + check_pass "Fortress log directory exists" + + LOG_SIZE=$(du -sh /var/log/fortress 2>/dev/null | awk '{print $1}') + info "Log directory size: $LOG_SIZE" +else + check_warn "Fortress log directory not found" +fi + +# Check for large log files +LARGE_LOGS=$(find /var/log -type f -size +100M 2>/dev/null | wc -l) +if [ "$LARGE_LOGS" -gt 0 ]; then + check_warn "Found $LARGE_LOGS log files >100MB" +else + check_pass "No excessively large log files" +fi + +# Telegram notifications +if [ -x "/usr/local/bin/fortress/telegram_notify.sh" ]; then + check_pass "Telegram notification script available" +else + check_warn "Telegram notifications not configured" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 8. OPEN PORTS +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "8๏ธโƒฃ OPEN PORTS" + +info "Listening ports:" +ss -tuln | grep LISTEN | awk '{print " " $5}' | sort -u + +# Critical ports check +CRITICAL_PORTS=("22" "80" "443") +for port in "${CRITICAL_PORTS[@]}"; do + if ss -tuln | grep -q ":$port "; then + info "Port $port is listening" + fi +done + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 9. SECURITY ADVISORIES +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "9๏ธโƒฃ SECURITY RECOMMENDATIONS" + +RECOMMENDATIONS=() + +# Check if running as root unnecessarily +if [ "$(id -u)" -eq 0 ]; then + RECOMMENDATIONS+=("โš ๏ธ Don't run routine tasks as root - use sudo when needed") +fi + +# Check SSH on default port +if ss -tuln | grep -q ":22 " && ! systemctl is-active --quiet endlessh; then + RECOMMENDATIONS+=("โš ๏ธ SSH on port 22 without honeypot - consider using Port Knocking") +fi + +# Check for pending updates +if command -v apt &>/dev/null; then + PENDING_UPDATES=$(apt list --upgradable 2>/dev/null | grep -c "upgradable" || echo "0") + if [ "$PENDING_UPDATES" -gt 0 ]; then + RECOMMENDATIONS+=("โš ๏ธ $PENDING_UPDATES pending system updates - run: sudo apt update && sudo apt upgrade") + fi +fi + +# Display recommendations +if [ ${#RECOMMENDATIONS[@]} -gt 0 ]; then + echo "" + for rec in "${RECOMMENDATIONS[@]}"; do + echo -e "${YELLOW}$rec${NC}" + done +else + check_pass "No critical recommendations" +fi + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# 10. FINAL SUMMARY +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +section "๐Ÿ“Š FINAL SUMMARY" + +echo "" +echo -e "${CYAN}Total Checks: $TOTAL_CHECKS${NC}" +echo -e "${GREEN}Passed: $PASSED_CHECKS${NC}" +echo -e "${RED}Failed: $FAILED_CHECKS${NC}" +echo -e "${YELLOW}Warnings: $WARNING_CHECKS${NC}" +echo "" + +# Calculate score +SCORE=$(( (PASSED_CHECKS * 100) / TOTAL_CHECKS )) + +if [ "$SCORE" -ge 90 ]; then + echo -e "${GREEN}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" + echo -e "${GREEN}โœ… EXCELLENT SECURITY POSTURE (Score: $SCORE%)${NC}" + echo -e "${GREEN}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" +elif [ "$SCORE" -ge 70 ]; then + echo -e "${YELLOW}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" + echo -e "${YELLOW}โš ๏ธ GOOD SECURITY, SOME IMPROVEMENTS NEEDED (Score: $SCORE%)${NC}" + echo -e "${YELLOW}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" +else + echo -e "${RED}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" + echo -e "${RED}โŒ SECURITY NEEDS ATTENTION (Score: $SCORE%)${NC}" + echo -e "${RED}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}" +fi + +echo "" +info "Check completed at: $(date '+%Y-%m-%d %H:%M:%S')" +info "For detailed logs, check: /var/log/fortress/" +echo "" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# Exit with appropriate code +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +if [ "$FAILED_CHECKS" -gt 0 ]; then + exit 1 +elif [ "$WARNING_CHECKS" -gt 3 ]; then + exit 2 +else + exit 0 +fi diff --git a/tripz_fortress_v8.2_generator.sh b/tripz_fortress_v8.2_generator.sh new file mode 100644 index 0000000..5f00525 --- /dev/null +++ b/tripz_fortress_v8.2_generator.sh @@ -0,0 +1,952 @@ +#!/bin/bash +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ›ก๏ธ TRIPZ FORTRESS v8.2 - PRODUCTION-SAFE DYNAMIC GENERATOR +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ุงู„ุฅุตุฏุงุฑ: 8.2 +# ุงู„ุชุงุฑูŠุฎ: 2025-02-05 +# ุงู„ู…ุทูˆู‘ุฑ: TRIPZ TEAM +# ุงู„ุชุฑุฎูŠุต: Proprietary +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +set -euo pipefail # Exit on error, undefined vars, pipe failures +IFS=$'\n\t' # Safe word splitting + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# โš™๏ธ CONFIGURATION SECTION - ูŠุชู… ู…ู„ุคู‡ุง ุฏูŠู†ุงู…ูŠูƒูŠุงู‹ +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# ู…ุนู„ูˆู…ุงุช ุงู„ุณูŠุฑูุฑ (REQUIRED) +SERVER_IP="${SERVER_IP:-}" +ADMIN_USER="${ADMIN_USER:-tripzadmin}" +SSH_PORT="${SSH_PORT:-2200}" +SSH_PUBLIC_KEY="${SSH_PUBLIC_KEY:-}" + +# Port Knocking Sequence (3 ู…ู†ุงูุฐ ุนุดูˆุงุฆูŠุฉ) +KNOCK_PORT_1="${KNOCK_PORT_1:-$(shuf -i 7000-9000 -n 1)}" +KNOCK_PORT_2="${KNOCK_PORT_2:-$(shuf -i 7000-9000 -n 1)}" +KNOCK_PORT_3="${KNOCK_PORT_3:-$(shuf -i 7000-9000 -n 1)}" + +# Telegram Integration (OPTIONAL) +TELEGRAM_BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-}" +TELEGRAM_CHAT_ID="${TELEGRAM_CHAT_ID:-}" + +# Security Features (TOGGLES) +ENABLE_HONEYPOT="${ENABLE_HONEYPOT:-true}" +ENABLE_FAKE_SERVICES="${ENABLE_FAKE_SERVICES:-true}" +ENABLE_PORT_KNOCKING="${ENABLE_PORT_KNOCKING:-true}" +ENABLE_WIREGUARD="${ENABLE_WIREGUARD:-false}" +ENABLE_FAIL2BAN="${ENABLE_FAIL2BAN:-true}" +ENABLE_AUTO_BACKUP="${ENABLE_AUTO_BACKUP:-true}" + +# WireGuard Configuration (if enabled) +VPN_NETWORK="${VPN_NETWORK:-10.8.0.0/24}" +VPN_SERVER_IP="${VPN_SERVER_IP:-10.8.0.1}" + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐ŸŽจ COLORS & STYLING +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +PURPLE='\033[0;35m' +CYAN='\033[0;36m' +NC='\033[0m' # No Color +BOLD='\033[1m' + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ LOGGING FUNCTIONS +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +LOG_DIR="/var/log/fortress" +LOG_FILE="${LOG_DIR}/install_$(date +%Y%m%d_%H%M%S).log" + +log() { + echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $*" | tee -a "$LOG_FILE" +} + +info() { + echo -e "${CYAN}โ„น๏ธ $*${NC}" | tee -a "$LOG_FILE" +} + +success() { + echo -e "${GREEN}โœ… $*${NC}" | tee -a "$LOG_FILE" +} + +warning() { + echo -e "${YELLOW}โš ๏ธ $*${NC}" | tee -a "$LOG_FILE" +} + +error() { + echo -e "${RED}โŒ ERROR: $*${NC}" | tee -a "$LOG_FILE" + return 1 +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ” PRE-FLIGHT CHECKS +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +preflight_checks() { + log "\n๐Ÿ” ุชุดุบูŠู„ ุงู„ูุญูˆุตุงุช ุงู„ุฃูˆู„ูŠุฉ..." + + # 1. ุงู„ุชุญู‚ู‚ ู…ู† root + if [ "$EUID" -ne 0 ]; then + error "ูŠุฌุจ ุชุดุบูŠู„ ู‡ุฐุง ุงู„ุณูƒุฑูŠุจุช ูƒู€ root ุฃูˆ ุจุงุณุชุฎุฏุงู… sudo" + exit 1 + fi + + # 2. ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู†ุธุงู… + if ! [ -f /etc/debian_version ] && ! [ -f /etc/redhat-release ]; then + warning "ู†ุธุงู… ุบูŠุฑ ู…ุฏุนูˆู… ุฑุณู…ูŠุงู‹ - ู‚ุฏ ุชุญุฏุซ ู…ุดุงูƒู„" + fi + + # 3. ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุงุชุตุงู„ + if ! ping -c 2 8.8.8.8 &>/dev/null; then + error "ู„ุง ูŠูˆุฌุฏ ุงุชุตุงู„ ุจุงู„ุฅู†ุชุฑู†ุช" + exit 1 + fi + + # 4. ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู…ุชุทู„ุจุงุช ุงู„ุฃุณุงุณูŠุฉ + local required_vars=("SERVER_IP" "SSH_PUBLIC_KEY") + for var in "${required_vars[@]}"; do + if [ -z "${!var}" ]; then + error "ุงู„ู…ุชุบูŠุฑ $var ู…ุทู„ูˆุจ ูˆู„ูƒู†ู‡ ูุงุฑุบ!" + exit 1 + fi + done + + # 5. ุงู„ุชุญู‚ู‚ ู…ู† ุตู„ุงุญูŠุฉ IP + if ! [[ $SERVER_IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + error "ุนู†ูˆุงู† IP ุบูŠุฑ ุตุงู„ุญ: $SERVER_IP" + exit 1 + fi + + # 6. ุงู„ุชุญู‚ู‚ ู…ู† SSH Key format + if ! echo "$SSH_PUBLIC_KEY" | grep -qE '^(ssh-rsa|ssh-ed25519|ecdsa-sha2)'; then + error "ุชู†ุณูŠู‚ SSH Key ุบูŠุฑ ุตุงู„ุญ" + exit 1 + fi + + # 7. ุฅู†ุดุงุก ู…ุฌู„ุฏ ุงู„ุณุฌู„ุงุช + mkdir -p "$LOG_DIR" + + # 8. ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ุณุฑูŠุนุฉ + log "ุฅู†ุดุงุก ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ู„ู„ู…ู„ูุงุช ุงู„ุญุณุงุณุฉ..." + mkdir -p /root/backup_before_fortress_$(date +%Y%m%d) + cp -r /etc/ssh /root/backup_before_fortress_$(date +%Y%m%d)/ 2>/dev/null || true + + success "โœ“ ุงู„ูุญูˆุตุงุช ุงู„ุฃูˆู„ูŠุฉ ู…ูƒุชู…ู„ุฉ" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ฆ SYSTEM PREPARATION +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +system_preparation() { + log "\n๐Ÿ“ฆ ุชุญุถูŠุฑ ุงู„ู†ุธุงู…..." + + # ุชุญุฏูŠุซ ุงู„ู†ุธุงู… + info "ุชุญุฏูŠุซ ู‚ูˆุงุฆู… ุงู„ุญุฒู…..." + export DEBIAN_FRONTEND=noninteractive + apt-get update -qq + + # ุชุซุจูŠุช ุงู„ุฃุฏูˆุงุช ุงู„ุฃุณุงุณูŠุฉ + info "ุชุซุจูŠุช ุงู„ุฃุฏูˆุงุช ุงู„ุฃุณุงุณูŠุฉ..." + apt-get install -y -qq \ + curl \ + wget \ + git \ + ufw \ + fail2ban \ + openssh-server \ + sudo \ + htop \ + net-tools \ + knockd \ + openssl \ + cron \ + bc \ + jq \ + netcat-openbsd + + success "โœ“ ุชุญุถูŠุฑ ุงู„ู†ุธุงู… ู…ูƒุชู…ู„" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ‘ค USER MANAGEMENT +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +create_admin_user() { + log "\n๐Ÿ‘ค ุฅู†ุดุงุก ุงู„ู…ุณุชุฎุฏู… ุงู„ุฅุฏุงุฑูŠ..." + + # ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ ุงู„ู…ุณุชุฎุฏู… + if id "$ADMIN_USER" &>/dev/null; then + warning "ุงู„ู…ุณุชุฎุฏู… $ADMIN_USER ู…ูˆุฌูˆุฏ ุจุงู„ูุนู„ - ุณูŠุชู… ุชุญุฏูŠุซู‡" + else + info "ุฅู†ุดุงุก ุงู„ู…ุณุชุฎุฏู… $ADMIN_USER..." + useradd -m -s /bin/bash -G sudo "$ADMIN_USER" + fi + + # ุชุนุทูŠู„ ูƒู„ู…ุฉ ุงู„ู…ุฑูˆุฑ (ุณู†ุณุชุฎุฏู… ุงู„ู…ูุงุชูŠุญ ูู‚ุท) + passwd -l "$ADMIN_USER" + + # ุฅุนุฏุงุฏ SSH + mkdir -p "/home/$ADMIN_USER/.ssh" + echo "$SSH_PUBLIC_KEY" > "/home/$ADMIN_USER/.ssh/authorized_keys" + chmod 700 "/home/$ADMIN_USER/.ssh" + chmod 600 "/home/$ADMIN_USER/.ssh/authorized_keys" + chown -R "$ADMIN_USER:$ADMIN_USER" "/home/$ADMIN_USER/.ssh" + + # ุตู„ุงุญูŠุงุช sudo ุจุฏูˆู† ูƒู„ู…ุฉ ู…ุฑูˆุฑ + cat > /etc/sudoers.d/"$ADMIN_USER" < /etc/ssh/sshd_config < /etc/ssh/banner.txt <<'BANNEREOF' +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โš ๏ธ AUTHORIZED ACCESS ONLY โš ๏ธ + +This system is protected by TRIPZ FORTRESS v8.2 +All connections are monitored and logged. +Unauthorized access attempts will be prosecuted. + +๐Ÿ›ก๏ธ Protected by 9-Layer Security System +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +BANNEREOF + + # ุงุฎุชุจุงุฑ ุงู„ุชูƒูˆูŠู† + info "ุงุฎุชุจุงุฑ ุชูƒูˆูŠู† SSH..." + if ! sshd -t; then + error "ุชูƒูˆูŠู† SSH ุบูŠุฑ ุตุงู„ุญ!" + cp /etc/ssh/sshd_config.backup.$(date +%Y%m%d) /etc/ssh/sshd_config + exit 1 + fi + + # ุฅุนุงุฏุฉ ุชุญู…ูŠู„ SSH (ุจุฏูˆู† ู‚ุทุน ุงู„ุงุชุตุงู„!) + systemctl reload sshd + + success "โœ“ SSH ู…ุญู…ูŠ (Port: $SSH_PORT)" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ”ฅ FIREWALL CONFIGURATION +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +configure_firewall() { + log "\n๐Ÿ”ฅ ุชูƒูˆูŠู† ุฌุฏุงุฑ ุงู„ุญู…ุงูŠุฉ..." + + # ุงู„ุณูŠุงุณุฉ ุงู„ุงูุชุฑุงุถูŠุฉ + ufw default deny incoming + ufw default allow outgoing + + # ุงู„ุณู…ุงุญ ุจุงู„ู…ู†ุงูุฐ ุงู„ุฃุณุงุณูŠุฉ + info "ุงู„ุณู…ุงุญ ุจู€ HTTP/HTTPS..." + ufw allow 80/tcp comment 'HTTP' + ufw allow 443/tcp comment 'HTTPS' + + # SSH: ุณูŠุชู… ุฅุฏุงุฑุชู‡ ุจูˆุงุณุทุฉ Port Knocking + if [ "$ENABLE_PORT_KNOCKING" == "true" ]; then + info "Port Knocking ู…ูุนู‘ู„ - SSH ุณูŠููุชุญ ุนุจุฑ ุงู„ุทุฑู‚ ูู‚ุท" + else + ufw allow "$SSH_PORT/tcp" comment 'SSH Direct Access' + fi + + # WireGuard VPN + if [ "$ENABLE_WIREGUARD" == "true" ]; then + ufw allow 51820/udp comment 'WireGuard VPN' + fi + + # Honeypot (Port 22 ู„ู„ุฎุฏุงุน) + if [ "$ENABLE_HONEYPOT" == "true" ]; then + ufw allow 22/tcp comment 'Endlessh Honeypot' + fi + + # Fake Services + if [ "$ENABLE_FAKE_SERVICES" == "true" ]; then + ufw allow 3306/tcp comment 'Fake MySQL Trap' + fi + + # ุชูุนูŠู„ UFW + info "ุชูุนูŠู„ ุฌุฏุงุฑ ุงู„ุญู…ุงูŠุฉ..." + echo "y" | ufw enable + + # ุนุฑุถ ุงู„ุญุงู„ุฉ + ufw status verbose | head -20 + + success "โœ“ ุฌุฏุงุฑ ุงู„ุญู…ุงูŠุฉ ู†ุดุท" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿšซ FAIL2BAN SETUP +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +setup_fail2ban() { + if [ "$ENABLE_FAIL2BAN" != "true" ]; then + warning "Fail2Ban ู…ุนุทู‘ู„ - ุชุฎุทูŠ..." + return 0 + fi + + log "\n๐Ÿšซ ุชูƒูˆูŠู† Fail2Ban..." + + # ุงู„ุชูƒูˆูŠู† ุงู„ุฑุฆูŠุณูŠ + cat > /etc/fail2ban/jail.local < /etc/knockd.conf < /etc/endlessh/config <<'ENDLESSHEOF' +Port 22 +Delay 10000 +MaxLineLength 32 +MaxClients 4096 +LogLevel 1 +ENDLESSHEOF + + # Systemd service + cat > /etc/systemd/system/endlessh.service <<'SERVICEEOF' +[Unit] +Description=Endlessh SSH Tarpit +After=network.target + +[Service] +Type=simple +User=nobody +ExecStart=/usr/local/bin/endlessh -c /etc/endlessh/config +Restart=always +PrivateTmp=true +ProtectSystem=strict +ProtectHome=true +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target +SERVICEEOF + + systemctl daemon-reload + systemctl enable endlessh + systemctl start endlessh + + success "โœ“ Endlessh Honeypot ู†ุดุท (Port 22)" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐ŸŽญ FAKE SERVICES +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +setup_fake_services() { + if [ "$ENABLE_FAKE_SERVICES" != "true" ]; then + warning "Fake Services ู…ุนุทู‘ู„ - ุชุฎุทูŠ..." + return 0 + fi + + log "\n๐ŸŽญ ุฅุนุฏุงุฏ Fake MySQL..." + + # ุณูƒุฑูŠุจุช Fake MySQL + cat > /usr/local/bin/fake-mysql.sh <<'FAKEMYSQLEOF' +#!/bin/bash +LOG_FILE="/var/log/fortress/fake-mysql.log" +PORT=3306 + +mkdir -p /var/log/fortress + +while true; do + nc -l -p $PORT -k 2>&1 | while read line; do + echo "$(date '+%Y-%m-%d %H:%M:%S') - MySQL probe: ${line:0:100}" >> "$LOG_FILE" + echo -e "\x4a\x00\x00\x00\x0a\x35\x2e\x37\x2e\x33\x33" + sleep 2 + done +done +FAKEMYSQLEOF + + chmod +x /usr/local/bin/fake-mysql.sh + + # Systemd service + cat > /etc/systemd/system/fake-mysql.service <<'EOF' +[Unit] +Description=Fake MySQL Honeypot +After=network.target + +[Service] +Type=simple +ExecStart=/usr/local/bin/fake-mysql.sh +Restart=always +User=nobody + +[Install] +WantedBy=multi-user.target +EOF + + systemctl daemon-reload + systemctl enable fake-mysql + systemctl start fake-mysql + + success "โœ“ Fake MySQL ู†ุดุท (Port 3306)" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# โšก SYSTEM OPTIMIZATION +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +optimize_system() { + log "\nโšก ุชุญุณูŠู†ุงุช ุงู„ู†ุธุงู…..." + + # Kernel hardening + cat >> /etc/sysctl.conf <<'SYSCTLEOF' + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# TRIPZ FORTRESS v8.2 - Kernel Hardening +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +# SYN flood protection +net.ipv4.tcp_syncookies = 1 +net.ipv4.tcp_max_syn_backlog = 2048 +net.ipv4.tcp_synack_retries = 2 +net.ipv4.tcp_syn_retries = 2 + +# TCP hardening +net.ipv4.tcp_rfc1337 = 1 +net.ipv4.conf.all.rp_filter = 1 +net.ipv4.conf.default.rp_filter = 1 + +# IP spoofing protection +net.ipv4.conf.all.accept_source_route = 0 +net.ipv4.conf.default.accept_source_route = 0 + +# ICMP protection +net.ipv4.icmp_echo_ignore_broadcasts = 1 +net.ipv4.icmp_ignore_bogus_error_responses = 1 + +# Performance +net.core.netdev_max_backlog = 2048 +net.core.somaxconn = 1024 + +# TCP BBR +net.core.default_qdisc = fq +net.ipv4.tcp_congestion_control = bbr + +# Security +fs.protected_hardlinks = 1 +fs.protected_symlinks = 1 +kernel.kptr_restrict = 2 +kernel.dmesg_restrict = 1 +SYSCTLEOF + + # ุชุทุจูŠู‚ ุงู„ุชุนุฏูŠู„ุงุช + sysctl -p || warning "ุจุนุถ ุฅุนุฏุงุฏุงุช sysctl ุบูŠุฑ ู…ุฏุนูˆู…ุฉ" + + success "โœ“ ุชุญุณูŠู†ุงุช ุงู„ู†ุธุงู… ู…ุทุจู‘ู‚ุฉ" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ’พ AUTO BACKUP SYSTEM +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +setup_auto_backup() { + if [ "$ENABLE_AUTO_BACKUP" != "true" ]; then + warning "Auto Backup ู…ุนุทู‘ู„ - ุชุฎุทูŠ..." + return 0 + fi + + log "\n๐Ÿ’พ ุฅุนุฏุงุฏ ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ ุงู„ุชู„ู‚ุงุฆูŠ..." + + mkdir -p /usr/local/bin/fortress + mkdir -p /backup/fortress + + # ุณูƒุฑูŠุจุช ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ + cat > /usr/local/bin/fortress/backup.sh <<'BACKUPEOF' +#!/bin/bash +BACKUP_DIR="/backup/fortress" +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +TEMP_DIR="/tmp/fortress_backup_$TIMESTAMP" +BACKUP_FILE="${BACKUP_DIR}/fortress_${TIMESTAMP}.tar.gz" +ENCRYPTED_FILE="${BACKUP_FILE}.enc" +RETENTION_DAYS=30 + +mkdir -p "$TEMP_DIR" + +# ู†ุณุฎ ุงู„ู…ู„ูุงุช ุงู„ู…ู‡ู…ุฉ +cp -r /etc/ssh "$TEMP_DIR/" 2>/dev/null +cp -r /etc/fail2ban "$TEMP_DIR/" 2>/dev/null +cp -r /etc/ufw "$TEMP_DIR/" 2>/dev/null +cp /etc/knockd.conf "$TEMP_DIR/" 2>/dev/null + +# ุถุบุท +tar -czf "$BACKUP_FILE" -C /tmp "$(basename $TEMP_DIR)" + +# ุชุดููŠุฑ AES-256 +BACKUP_PASSWORD="TRIPZ_$(hostname)_$(date +%Y)" +openssl enc -aes-256-cbc -salt -pbkdf2 -in "$BACKUP_FILE" -out "$ENCRYPTED_FILE" -k "$BACKUP_PASSWORD" + +# ุญุฐู ุบูŠุฑ ุงู„ู…ุดูุฑ +rm -f "$BACKUP_FILE" +rm -rf "$TEMP_DIR" + +# ุชุทุจูŠู‚ ุณูŠุงุณุฉ ุงู„ุงุญุชูุงุธ +find "$BACKUP_DIR" -name "fortress_*.tar.gz.enc" -mtime +$RETENTION_DAYS -delete + +echo "โœ… ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ: $ENCRYPTED_FILE" +echo "๐Ÿ”‘ ูƒู„ู…ุฉ ููƒ ุงู„ุชุดููŠุฑ: $BACKUP_PASSWORD" +BACKUPEOF + + chmod +x /usr/local/bin/fortress/backup.sh + + # ุฌุฏูˆู„ุฉ cron (ูŠูˆู…ูŠุงู‹ 2 ุตุจุงุญุงู‹) + (crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/fortress/backup.sh >> ${LOG_DIR}/backup.log 2>&1") | crontab - + + success "โœ“ ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠ ุงู„ุชู„ู‚ุงุฆูŠ ู…ุฌุฏูˆู„" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ฑ TELEGRAM NOTIFICATIONS +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +setup_telegram_alerts() { + if [ -z "$TELEGRAM_BOT_TOKEN" ] || [ -z "$TELEGRAM_CHAT_ID" ]; then + warning "Telegram ุบูŠุฑ ู…ูƒูˆู‘ู† - ุชุฎุทูŠ ุงู„ุชู†ุจูŠู‡ุงุช..." + return 0 + fi + + log "\n๐Ÿ“ฑ ุฅุนุฏุงุฏ ุชู†ุจูŠู‡ุงุช Telegram..." + + # ุณูƒุฑูŠุจุช ุงู„ุฅุฑุณุงู„ + cat > /usr/local/bin/fortress/telegram_notify.sh < /dev/null + +echo "โœ… ุชู… ุฅุฑุณุงู„ ุงู„ุชู†ุจูŠู‡" +TELEGRAMEOF + + chmod +x /usr/local/bin/fortress/telegram_notify.sh + + # ุงุฎุชุจุงุฑ + /usr/local/bin/fortress/telegram_notify.sh "โœ… ุชู… ุชุซุจูŠุช TRIPZ FORTRESS v8.2 ุจู†ุฌุงุญ!" + + success "โœ“ ุชู†ุจูŠู‡ุงุช Telegram ุฌุงู‡ุฒุฉ" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# โœ… FINAL VERIFICATION +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +final_verification() { + log "\nโœ… ุงู„ุชุญู‚ู‚ ุงู„ู†ู‡ุงุฆูŠ..." + + SERVICES_OK=0 + SERVICES_FAILED=0 + + check_service() { + if systemctl is-active --quiet "$1"; then + success "$1 โœ“" + ((SERVICES_OK++)) + else + warning "$1 โœ—" + ((SERVICES_FAILED++)) + fi + } + + info "ูุญุต ุงู„ุฎุฏู…ุงุช..." + check_service "sshd" + check_service "ufw" + + [ "$ENABLE_FAIL2BAN" == "true" ] && check_service "fail2ban" + [ "$ENABLE_PORT_KNOCKING" == "true" ] && check_service "knockd" + [ "$ENABLE_HONEYPOT" == "true" ] && check_service "endlessh" + [ "$ENABLE_FAKE_SERVICES" == "true" ] && check_service "fake-mysql" + + log "\nุงู„ุฎุฏู…ุงุช ุงู„ู†ุดุทุฉ: $SERVICES_OK" + log "ุงู„ุฎุฏู…ุงุช ุงู„ูุงุดู„ุฉ: $SERVICES_FAILED" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐Ÿ“ GENERATE INFO FILE +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +generate_info_file() { + log "\n๐Ÿ“ ุฅู†ุดุงุก ู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช..." + + cat > /root/FORTRESS_INFO.txt </dev/null || echo "ุบูŠุฑ ู…ุชุงุญ") + +๐Ÿ” ู…ุนู„ูˆู…ุงุช ุงู„ุฃู…ุงู†: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +ุงู„ู…ุณุชุฎุฏู… ุงู„ุฅุฏุงุฑูŠ: $ADMIN_USER +ู…ู†ูุฐ SSH: $SSH_PORT +Port Knocking: $KNOCK_PORT_1, $KNOCK_PORT_2, $KNOCK_PORT_3 + +๐Ÿ›ก๏ธ ุงู„ุทุจู‚ุงุช ุงู„ุฃู…ู†ูŠุฉ ุงู„ู†ุดุทุฉ: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +โœ… SSH Key-Only Authentication +โœ… UFW Firewall +$([ "$ENABLE_FAIL2BAN" == "true" ] && echo "โœ… Fail2Ban Progressive Blocking" || echo "โŠ˜ Fail2Ban (ู…ุนุทู‘ู„)") +$([ "$ENABLE_PORT_KNOCKING" == "true" ] && echo "โœ… Port Knocking" || echo "โŠ˜ Port Knocking (ู…ุนุทู‘ู„)") +$([ "$ENABLE_HONEYPOT" == "true" ] && echo "โœ… Endlessh Honeypot (Port 22)" || echo "โŠ˜ Honeypot (ู…ุนุทู‘ู„)") +$([ "$ENABLE_FAKE_SERVICES" == "true" ] && echo "โœ… Fake MySQL (Port 3306)" || echo "โŠ˜ Fake Services (ู…ุนุทู‘ู„)") +โœ… Kernel Hardening +$([ "$ENABLE_AUTO_BACKUP" == "true" ] && echo "โœ… Encrypted Auto Backups" || echo "โŠ˜ Auto Backup (ู…ุนุทู‘ู„)") +$([ -n "$TELEGRAM_BOT_TOKEN" ] && echo "โœ… Telegram Alerts" || echo "โŠ˜ Telegram (ุบูŠุฑ ู…ูƒูˆู‘ู†)") + +๐Ÿ”ง ุฃูˆุงู…ุฑ ู…ููŠุฏุฉ: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +โ€ข ูุญุต UFW: sudo ufw status verbose +โ€ข ูุญุต Fail2Ban: sudo fail2ban-client status +โ€ข ุณุฌู„ Knockd: sudo tail -f /var/log/knockd.log +โ€ข ู†ุณุฎุฉ ุงุญุชูŠุงุทูŠุฉ ูŠุฏูˆูŠุฉ: sudo /usr/local/bin/fortress/backup.sh + +๐Ÿ“ ุงู„ู…ู„ูุงุช ุงู„ู…ู‡ู…ุฉ: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +โ€ข ุงู„ุณุฌู„ุงุช: $LOG_DIR/ +โ€ข ุงู„ู†ุณุฎ ุงู„ุงุญุชูŠุงุทูŠุฉ: /backup/fortress/ +โ€ข ุงู„ุชูƒูˆูŠู†ุงุช: /etc/ssh/, /etc/fail2ban/ + +โš ๏ธ ู„ู„ุงุชุตุงู„ ุจุงู„ุณูŠุฑูุฑ: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +$(if [ "$ENABLE_PORT_KNOCKING" == "true" ]; then + echo "1. knock $SERVER_IP $KNOCK_PORT_1 $KNOCK_PORT_2 $KNOCK_PORT_3" + echo "2. ssh -p $SSH_PORT $ADMIN_USER@$SERVER_IP" +else + echo "ssh -p $SSH_PORT $ADMIN_USER@$SERVER_IP" +fi) + +๐Ÿ“ž ุงู„ุฏุนู…: +โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” +https://tripz-egypt.com +[email protected] + +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +โœ… ุงู„ุณูŠุฑูุฑ ู…ุญู…ูŠ ุจุงู„ูƒุงู…ู„! +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +INFOEOF + + chmod 600 /root/FORTRESS_INFO.txt + + success "โœ“ ู…ู„ู ุงู„ู…ุนู„ูˆู…ุงุช: /root/FORTRESS_INFO.txt" +} + +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +# ๐ŸŽฏ MAIN INSTALLATION FLOW +# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + +main() { + clear + + cat <<'BANNER' +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• + โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— + โ•šโ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ•šโ•โ•โ–ˆโ–ˆโ–ˆโ•”โ• + โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ• โ–ˆโ–ˆโ–ˆโ•”โ• + โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ–ˆโ•”โ• + โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— + โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•โ• + + โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— + โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ•šโ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• + โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— + โ–ˆโ–ˆโ•”โ•โ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ• โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘ + โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘ + โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ• โ•šโ•โ• โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• + + ๐Ÿ›ก๏ธ v8.2 - PRODUCTION-SAFE EDITION + 9-Layer Security System | Enterprise Ready +โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• +BANNER + + log "\n๐Ÿš€ ุจุฏุก ุงู„ุชุซุจูŠุช..." + log "ุงู„ุฅุตุฏุงุฑ: 8.2" + log "ุงู„ุชุงุฑูŠุฎ: $(date '+%Y-%m-%d %H:%M:%S')" + log "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•\n" + + # ุชู†ููŠุฐ ุงู„ู…ุฑุงุญู„ + preflight_checks + system_preparation + create_admin_user + harden_ssh + configure_firewall + setup_fail2ban + setup_port_knocking + setup_honeypot + setup_fake_services + optimize_system + setup_auto_backup + setup_telegram_alerts + final_verification + generate_info_file + + # ุงู„ู†ุชูŠุฌุฉ ุงู„ู†ู‡ุงุฆูŠุฉ + log "\nโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•" + success "๐ŸŽ‰ ุงูƒุชู…ู„ ุชุซุจูŠุช TRIPZ FORTRESS v8.2!" + log "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•\n" + + cat <