# ๐Ÿ›ก๏ธ ุงู„ู…ุฑุญู„ุฉ 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 ู…ูƒุชู…ู„ุฉ - ุงู„ุณูŠุฑูุฑ ู…ุญู…ูŠ! โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•