استلمت عنوان IP وكلمة مرور root لخادم Linux VPS جديد؟ قبل أن تثبّت عليه موقعًا أو تطبيقًا، خصص ساعة لعشر خطوات أساسية: دخول أكثر أمانًا، وتحديثات، وجدار ناري، وحماية من تخمين كلمات المرور، وضبط الوقت، ونسخ احتياطي، ومراقبة. ستجد هنا الأوامر القياسية لتوزيعتي Ubuntu وDebian ولتوزيعتي AlmaLinux وRocky Linux، وهي التوزيعات المذكورة في صفحة باقات VPS لينكس.
قبل البدء: إدارة الخادم أصبحت مسؤوليتك
يأتي الـ VPS بصلاحيات root كاملة، ومعها مسؤولية كاملة. فبحسب سياسة الاستخدام في EngHosting، يصبح الخادم بعد تسليم بيانات الدخول مسؤولية العميل من حيث الملفات والإعدادات والتحديثات والحماية، وإدارة الخادم من الداخل خدمة منفصلة. إذا لم يكن في فريقك من يتعامل بثقة مع سطر الأوامر، فقرر من الآن: إما أن تتعلم هذه الخطوات، وإما أن تطلب خدمة الإدارة.
في الأوامر التالية استبدل SERVER_IP بعنوان خادمك، واكتب اسم المستخدم الذي تختاره مكان deploy. الخطوات من 1 إلى 3 تُنفَّذ بحساب root، ومن الخطوة 4 أضف sudo قبل الأوامر الإدارية.
مرجع سريع: عائلتا لينكس
| المهمة | Ubuntu / Debian | AlmaLinux / Rocky |
|---|---|---|
| مدير الحزم | apt | dnf |
| مجموعة المديرين | sudo | wheel |
| أداة الجدار الناري | ufw | firewalld |
| التحديث التلقائي | unattended-upgrades | dnf-automatic |
| اسم خدمة SSH | ssh | sshd |
| مصدر Fail2ban | المستودع الرئيسي | مستودع EPEL |
الخطوة 1: ادخل وغيّر كلمة مرور root
أنظمة لينكس وmacOS والإصدارات الحالية من Windows تتضمن عميل SSH جاهزًا. اتصل بالأمر ssh root@SERVER_IP ووافق على بصمة مفتاح الخادم في أول اتصال، ثم نفّذ passwd واختر كلمة مرور جديدة وطويلة لحساب root، حتى لو كنت ستتوقف عن استخدامها للدخول عن بُعد بعد قليل. احفظها في مدير كلمات مرور، لا في رسالة بريد أو محادثة.
الخطوة 2: حدّث النظام وفعّل تحديثات الأمان التلقائية
- على Ubuntu أو Debian: apt update && apt upgrade -y
- على AlmaLinux أو Rocky Linux: dnf upgrade -y
أعد التشغيل مرة واحدة بالأمر reboot إذا ثُبّتت نواة جديدة. بعد ذلك اجعل تحديثات الأمان تُثبَّت وحدها: على Ubuntu وDebian ثبّت حزمة unattended-upgrades وفعّلها بالأمر dpkg-reconfigure --priority=low unattended-upgrades، وعلى AlmaLinux وRocky Linux ثبّت حزمة dnf-automatic واضبط apply_updates = yes في ملف إعداداتها، ثم فعّلها بالأمر systemctl enable --now dnf-automatic.timer. إصلاحات الثغرات المعروفة تصدر عادة بعد كشفها بوقت قصير، والأتمتة تعني أنها لن تنتظر دخولك إلى الخادم. أما الترقية إلى إصدار رئيسي جديد من التوزيعة فاتركها قرارًا يدويًا.
الخطوة 3: أنشئ مستخدمًا عاديًا بصلاحيات sudo
- على Ubuntu أو Debian: adduser deploy ثم usermod -aG sudo deploy (وفي نسخ Debian المصغرة ثبّت sudo أولًا بالأمر apt install sudo)
- على AlmaLinux أو Rocky Linux: useradd -m deploy ثم passwd deploy ثم usermod -aG wheel deploy
الهجمات الآلية تجرّب اسم المستخدم root دائمًا، والعمل به طوال الوقت يجعل خطأً واحدًا في كتابة أمر كافيًا لإتلاف النظام، بينما يترك المستخدم المسمى بصلاحيات sudo سجلًا أوضح لمن فعل ماذا.
الخطوة 4: انتقل إلى الدخول بمفاتيح SSH
على جهازك أنت نفّذ ssh-keygen -t ed25519 واحمِ المفتاح الخاص بعبارة مرور؛ فالمفتاح الخاص لا يغادر جهازك أبدًا. انسخ المفتاح العام إلى الخادم بالأمر ssh-copy-id deploy@SERVER_IP من لينكس أو macOS. أما Windows فلا يتضمن ssh-copy-id، لذلك ادخل بالمستخدم الجديد وأنشئ المجلد بالأمر mkdir -p ~/.ssh، والصق محتوى ملف id_ed25519.pub في ملف authorized_keys داخله، ثم اضبط الصلاحيات بالأمر chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys. افتح نافذة طرفية جديدة وتأكد أن الأمر ssh deploy@SERVER_IP يُدخلك دون أن يطلب كلمة مرور الحساب.
الخطوة 5: شدّد إعدادات SSH
افتح ملف الإعداد بالأمر sudo nano /etc/ssh/sshd_config واضبط PermitRootLogin no وPasswordAuthentication no. راجع أيضًا الملفات الموجودة في مجلد sshd_config.d المجاور، لأن إعدادًا موضوعًا هناك، من نظام التجهيز الآلي مثلًا، قد يتقدم على الملف الرئيسي. افحص صحة الصياغة بالأمر sudo sshd -t (عدم ظهور أي مخرجات يعني أن الملف سليم)، ثم أعد تشغيل الخدمة: sudo systemctl restart ssh على Ubuntu وDebian، أو sudo systemctl restart sshd على AlmaLinux وRocky Linux.
لا تغلق الجلسة الحالية قبل تجربة دخول جديد من نافذة ثانية؛ فإذا فشل، أصلحت الملف من الجلسة المفتوحة.
الخطوة 6: شغّل الجدار الناري
افتح فقط المنافذ التي تقدم عليها خدمة فعلًا: منفذ SSH، والمنفذين 80 و443 إذا كان الخادم سيستضيف مواقع. واسمح بـ SSH قبل تفعيل الجدار الناري، وإلا أغلقت الباب على نفسك.
- على Ubuntu أو Debian (ثبّت الأداة أولًا على Debian بالأمر sudo apt install ufw): sudo ufw allow 22/tcp وsudo ufw allow 80/tcp وsudo ufw allow 443/tcp، ثم sudo ufw enable، وراجع النتيجة بالأمر sudo ufw status.
- على AlmaLinux أو Rocky Linux: إذا لم تكن firewalld تعمل فثبّتها بالأمر sudo dnf install firewalld وشغّلها بالأمر sudo systemctl enable --now firewalld. منفذ SSH مسموح أصلًا في المنطقة الافتراضية، فأضف منافذ الويب بالأمر sudo firewall-cmd --permanent --add-service=http والأمر نفسه مع https، ثم طبّق التغيير بالأمر sudo firewall-cmd --reload.
لا تفتح منافذ قواعد البيانات مثل 3306 أو 5432 للإنترنت؛ فالتطبيقات الموجودة على الخادم نفسه تصل إلى قاعدة البيانات محليًا.
الخطوة 7: أوقف محاولات تخمين كلمات المرور بأداة Fail2ban
أي خادم منفذ SSH فيه مفتوح يبدأ في تلقي محاولات دخول آلية بعد وقت قصير من تشغيله. أداة Fail2ban تراقب السجلات وتحظر مؤقتًا العناوين التي تكرر الفشل. ضع إعداداتك في ملف jail.local بدل تعديل jail.conf، لأن تحديثات الحزمة تستبدل الأخير.
- على Ubuntu أو Debian: sudo apt install fail2ban. حماية SSH مفعّلة في الإعدادات الافتراضية للتوزيعة، وإذا فشلت الخدمة في البدء لعدم وجود ملف auth.log فأضف backend = systemd تحت قسم [sshd] في jail.local.
- على AlmaLinux أو Rocky Linux: فعّل مستودع EPEL بالأمر sudo dnf install epel-release، ثم ثبّت الأداة بالأمر sudo dnf install fail2ban، وأنشئ jail.local بقسم [sshd] يحتوي على enabled = true، ثم نفّذ sudo systemctl enable --now fail2ban.
تأكد أنها تعمل بالأمر sudo fail2ban-client status sshd.
الخطوة 8: اضبط المنطقة الزمنية ومزامنة الوقت واسم الخادم
الأمر timedatectl يعرض المنطقة الزمنية الحالية وهل الساعة متزامنة. لتظهر السجلات والمهام المجدولة بتوقيت مصر استخدم sudo timedatectl set-timezone Africa/Cairo، ويفضّل كثير من مديري الخوادم إبقاءها على UTC، ولا مشكلة في ذلك ما دمت ثابتًا على اختيار واحد. واستخدام اسم المنطقة بدل فرق توقيت ثابت يجعل النظام يتبع تغييرات التوقيت الصيفي تلقائيًا. إذا لم تكن الساعة متزامنة فثبّت chrony، وهي متاحة على التوزيعات الأربع. دقة الوقت مهمة للسجلات ومهام cron والشهادات وطلبات الواجهات البرمجية الموقعة. وأخيرًا أعطِ الخادم اسمًا واضحًا بالأمر sudo hostnamectl set-hostname vps1.example.com.
الخطوة 9: نسخ احتياطي يُحفظ خارج الخادم
سياسة الاستخدام في EngHosting تجعل العميل مسؤولًا عن أخذ نسخ احتياطية منتظمة لبياناته، خاصة إذا لم يكن مشتركًا في إحدى باقات النسخ الاحتياطي، لذلك جهّز هذه الخطوة من اليوم الأول لا بعد أول مشكلة.
- ماذا تنسخ: ملفات التطبيق، وتفريغ قواعد البيانات بأداة mysqldump أو pg_dump، وإعدادات النظام في مجلد etc، وقائمة بما ثبّته.
- أين: على تخزين منفصل عن الـ VPS. وصفحة الخدمات الإضافية تعرض باقات سنوية لتخزين النسخ الاحتياطية.
- كيف: مهمة مجدولة عبر cron أو مؤقت systemd تشغّل أداة مثل rsync أو restic أو BorgBackup، مع تشفير أي نسخة تغادر الخادم.
- الإثبات: استعادة تجريبية إلى مكان اختباري كل بضعة أشهر.
عدد مرات النسخ ومدة الاحتفاظ بالنسخ مشروحان في دليل جدولة النسخ الاحتياطي التلقائي.
الخطوة 10: أضف مراقبة أساسية
تعلّم أربعة أوامر سريعة: uptime للحمل، وfree -h للذاكرة، وdf -h للمساحة، وjournalctl -p err -b للأخطاء منذ آخر تشغيل. ثم أضف تنبيهين يعملان وأنت نائم: فحص توفر خارجي يختبر موقعك أو خدمتك من خارج الخادم، وتنبيه عندما تتجاوز مساحة القرص المستخدمة نحو 80%. امتلاء القرص يوقف قواعد البيانات والسجلات بصمت، وهو من أسهل أسباب التوقف تجنبًا على أي VPS.
بعد الخطوات العشر
الآن ثبّت بيئة العمل: خادم الويب، ولغة البرمجة، وقاعدة البيانات. وأضف شهادة SSL لأنها غير مذكورة ضمن مواصفات باقات VPS: شهادة مجانية عبر Certbot، أو شهادة DV أو OV أو EV من صفحة شهادات SSL. وعلى الباقة الأولى بذاكرة 2 GB، يمنحك ملف swap صغير هامش أمان عند الارتفاع المفاجئ في استهلاك الذاكرة. واحتفظ بملف نصي قصير تسجل فيه كل تغيير تجريه؛ سيوفر عليك ساعات لاحقًا.
ما زلت تختار الباقة أو التوزيعة؟ اقرأ كيف تحدد حجم باقة Linux VPS حسب عملك. وإذا كان برنامجك لا يعمل إلا على Windows، فراجع متى تحتاج Windows VPS وكيف تتصل به عبر RDP.
روابط مفيدة: الاستضافة المشتركة، VPS لينكس، تسجيل النطاقات، تواصل معنا.
عايز ترشيح مناسب لموقعك؟
كلم EngHosting وحدد نوع الموقع والميزانية، وفريقنا يساعدك تختار استضافة مصرية أو عربية مناسبة بدون تعقيد.
تواصل واتساب