كيفية تأمين خادم VPS (مفاتيح SSH ومستخدم جديد وجدار حماية)

القراءة المقدرة:2دقائق

Summary: خادم VPS جديد التجهيز (راجع البدء مع خادم VeerHost VPS الخاص بك) مع تفعيل تسجيل دخول root بكلمة مرور هو من أكثر الأشياء استهدافًا على الإنترنت. ففي غضون

خادم VPS جديد التجهيز (راجع البدء مع خادم VeerHost VPS الخاص بك) مع تفعيل تسجيل دخول root بكلمة مرور هو من أكثر الأشياء استهدافًا على الإنترنت. ففي غضون دقائق من إطلاقه، تبدأ البوتات بمحاولة تسجيلات دخول بالقوة الغاشمة. يشرح هذا الدليل كل خطوة لتأمين خادم VeerHost VPS الخاص بك بشكل صحيح على Ubuntu 22.04 أو Ubuntu 24.04 أو Debian.

الخطوة 1: أنشئ مستخدم sudo جديدًا

تشغيل كل شيء بصلاحيات root أمر خطير. قد يؤدي خطأ واحد إلى تدمير خادمك — لذا من المستحسن أخذ نسخة Snapshot احتياطية قبل أن تبدأ. أنشئ مستخدمًا عاديًا بصلاحيات sudo:

adduser deploy

اتبع التعليمات لتعيين كلمة مرور. ثم أضف المستخدم إلى مجموعة sudo:

usermod -aG sudo deploy

اختبر عمل sudo بالتبديل إلى المستخدم الجديد:

su - deploy
sudo whoami

يجب أن ترى root كناتج. أبقِ هذه النافذة مفتوحة — ولا تسجّل الخروج حتى يتأكد نجاح تسجيل الدخول بمفتاح SSH.

الخطوة 2: أنشئ زوج مفاتيح SSH (على جهازك المحلي)

مفاتيح SSH أقوى بكثير من كلمات المرور. شغّل هذا على جهازك الخاص (وليس الخادم):

ssh-keygen -t ed25519 -C "[email protected]"

اضغط Enter لقبول موضع الملف الافتراضي (~/.ssh/id_ed25519). يمكنك اختياريًا إضافة عبارة مرور لأمان إضافي. ينشئ هذا ملفين:

  • ~/.ssh/id_ed25519 — هو مفتاحك الخاص (لا تشاركه أبدًا)
  • ~/.ssh/id_ed25519.pub — هو مفتاحك العام (ويذهب إلى الخادم)

الخطوة 3: انسخ مفتاحك العام إلى الخادم

من جهازك المحلي:

ssh-copy-id deploy@YOUR_VPS_IP

إذا لم يكن ssh-copy-id متاحًا (مثل Windows)، فانسخ المفتاح العام يدويًا. على الخادم، شغّل:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

الصق محتوى ملف id_ed25519.pub الخاص بك، واحفظ واخرج (Ctrl+X، ثم Y، ثم Enter). ثم اضبط الأذونات:

chmod 600 ~/.ssh/authorized_keys

اختبر تسجيل الدخول بمفتاح SSH في نافذة جديدة (لا تغلق الحالية بعد):

ssh deploy@YOUR_VPS_IP

إذا تمكنت من تسجيل الدخول دون كلمة مرور، فمفاتيح SSH تعمل بشكل صحيح.

الخطوة 4: عطّل تسجيل دخول root عبر SSH والمصادقة بكلمة المرور

الآن قوِّ تكوين خدمة SSH. على الخادم، عدّل ملف تكوين SSH:

nano /etc/ssh/sshd_config

ابحث عن هذه الأسطر وغيّرها (أو أضفها):

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

احفظ الملف، ثم أعد تحميل SSH (لا تعد تشغيله — إعادة التحميل تبقي جلستك الحالية حية):

systemctl reload sshd

اختبر حظر تسجيل دخول root بفتح نافذة جديدة وتجربة:

ssh root@YOUR_VPS_IP

يجب أن تظهر الرسالة Permission denied (publickey). إذا ظهرت، فأنت آمن. وإذا تم حظرك في أي مرحلة، فراجع إصلاح: رفض اتصال SSH أو انتهاء مهلته في خادم VPS.

الخطوة 5: غيّر منفذ SSH الافتراضي (اختياري لكنه موصى به)

تتم مسح المنفذ 22 باستمرار من قبل البوتات. تغييره إلى منفذ مخصص (مثل 2299) يقلل ضجيج السجلات بشكل كبير:

nano /etc/ssh/sshd_config

ابحث عن #Port 22 وغيّره إلى:

Port 2299

بعد الحفظ، اسمح بالمنفذ الجديد في جدار الحماية أولًا (راجع الخطوة 6)، ثم أعد تحميل SSH:

systemctl reload sshd

للاتصال عبر منفذ مخصص: ssh -p 2299 deploy@YOUR_VPS_IP

الخطوة 6: أعدّ جدار حماية UFW

UFW (Uncomplicated Firewall) هو أسهل أداة جدار حماية على Ubuntu/Debian. ثبّتها وقم بتكوينها:

apt install -y ufw

اضبط القواعد الافتراضية (منع جميع الوارد والسماح بجميع الصادر):

ufw default deny incoming
ufw default allow outgoing

اسمح بـ SSH (استخدم المنفذ 22 أو منفذك المخصص):

# If keeping default port 22:
ufw allow 22/tcp

# If you changed SSH to port 2299:
ufw allow 2299/tcp

اسمح بـ HTTP وHTTPS للمواقع:

ufw allow 80/tcp
ufw allow 443/tcp

فعّل جدار الحماية:

ufw enable

تحقق من الحالة:

ufw status verbose

الخطوة 7: ثبّت Fail2Ban (الحماية من هجمات القوة الغاشمة)

يحظر Fail2Ban تلقائيًا عناوين IP التي تفشل مرارًا في محاولات تسجيل دخول SSH:

apt install -y fail2ban

أنشئ تكوينًا محليًا (لا تعدّل ملف jail.conf الافتراضي مباشرة):

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
systemctl enable fail2ban
systemctl start fail2ban

تحقق من أن سجن SSH نشط:

fail2ban-client status sshd

قائمة مراجعة الأمان

  • ✅ تم إنشاء مستخدم sudo جديد (لا تستخدم root للمهام اليومية)
  • ✅ تم تفعيل المصادقة بمفاتيح SSH
  • ✅ تم تعطيل تسجيل دخول root عبر SSH
  • ✅ تم تعطيل المصادقة بكلمة المرور
  • ✅ جدار حماية UFW مفعّل مع أقل عدد من المنافذ المفتوحة
  • ✅ Fail2Ban يعمل
Launchpad