تقنيات وتطبيق
النشر على Debian بدون خوف
١٣ أكتوبر ٢٠٢٦ · 8 دقائق قراءة
لا تستخدم root — بمعنى فعلًا لا تستخدمه
أول ما تستلم سيرفر Debian: أنشئ مستخدمًا بصلاحيات sudo ومفتاح SSH، واقفل دخول root. أي دخول بـ root هو باب مفتوح لجلسة يمكن أن تتحول لاختراق سيرفر كامل.
adduser deploy
usermod -aG sudo deploy
rsync ~/.ssh/authorized_keys /home/deploy/.ssh/authorized_keys
إعداد SSH مع التحقق قبل التطبيق
إعدادات لا تعمل بدونها حماية فعّالة:
- تعطيل دخول root:
PermitRootLogin no. - تعطيل المصادقة بكلمة المرور:
PasswordAuthentication no. - قاعدة ذهبية: أي تعديل على
sshd_configيُتحقق منه بـsshd -tقبل أيreload، مع نسخة احتياطية لكل ملف يُستبدل (<file>.bak.<timestamp>) — فلا تقفل السيرفر على نفسك بخطأ إملائي.
الجدار الناري — عزل افتراضي يمنع
UFW بقواعد بسيطة: منع الوارد افتراضيًا، وفقط فتح 22 و 80 و 443، ثم التفعيل:
ufw default deny incoming
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw --force enable
انتبه للترتيب: القواعد تُضاف قبل التفعيل حتى لا ينقطع اتصالك الحالي.
ضد التخمين، وتحديثات تلقائية
- fail2ban لـ sshd: يعطب محاولات التخمين المتواصلة.
unattended-upgrades: التحديثات الأمنية التلقائية — ثغرة معلنة تصلح نفسها بدون تدخلك.
الـ swap ووقت النظام
على الخادم الصغير، swap مفيد: swapfile مثبّت في fstab، مع vm.swappiness معتدل. وتفعيل NTP مع منطقة زمنية صحيحة — فالتوقيعات واللوجز والخدمات المقرونة بالوقت تظل سليمة.
التكرار: dry-run أولًا، وتنفيذ لاحق
كل ما سبق في مشروع debian-bootstrap تديره طبقة منطقية (Python) وسكربتات bash مستقلة تقدر تراجعها. الميزة الحاسمة: --dry-run يعرض كل خطوة قبل أي تغيير، و--only docker / --skip swap ينفذ مرحلة بعينها، وكل تشغيل يسجّل كل سطر في logs/bootstrap-<timestamp>.log. التهيئة القابلة للتكرار هي معنى النشر الحقيقي في الإنتاج — لا سلسلة خطوات تُحفظ في الذاكرة.
الخلاصة
سيرفر جديد آمن = سلسلة خطوات مؤكدة قابلة للإعادة، لا حِيل يدوية. حين تحوّلها لسكربت idempotent، يصبح كل سيرفر جديد جاهزًا بأمان في نفس المدة، مع مراجعة كاملة قبل أي تنفيذ. هذه «مصدر واحد للحقيقة» على مستوى الأنظمة، لا الكود فقط.