# 🔐 المرحلة 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! ═══════════════════════════════════════════