Files
servers_security_sys/config_example.sh
2026-02-05 13:22:27 +03:00

217 lines
11 KiB
Bash

#!/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"
#
# ════════════════════════════════════════════════════════════════