217 lines
11 KiB
Bash
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"
|
|
#
|
|
# ════════════════════════════════════════════════════════════════
|