كيفية إعداد وضبط SSH على Ubuntu Server

كيفية إعداد وضبط SSH على Ubuntu Server

في عالم إدارة الخوادم (DevOps)، يعتبر SSH (اختصارًا لـ Secure Shell) واحدًا من أهم البروتوكولات المستخدمة للتحكم بالخوادم عن بُعد بطريقة آمنة وموثوقة. فمن خلاله، يمكن للمطورين ومديري الأنظمة الوصول إلى الخوادم وتنفيذ الأوامر، أو نقل الملفات، أو إدارة الخدمات من أي مكان في العالم دون الحاجة إلى التواجد الفعلي أمام الجهاز.

وبما أن خوادم Ubuntu تعد من أكثر أنظمة التشغيل استخدامًا في بيئات الاستضافة والخدمات السحابية، فإن إعداد وضبط SSH بشكل صحيح يمثل خطوة ضرورية وأساسية عند تشغيل أي خادم جديد.
ليس ذلك فحسب، بل إن تأمين إعدادات SSH يُعتبر من أهم عوامل حماية الخوادم من محاولات الاختراق والهجمات المستهدفة.

في هذا المقال، سنتعرف معًا خطوة بخطوة على كيفية تثبيت خدمة SSH على Ubuntu Server، وضبط إعداداتها الأساسية، وتحسين مستوى الأمان الخاص بها لضمان بيئة عمل أكثر استقرارًا وأمانًا.

تثبيت خدمة SSH على Ubuntu Server

عند تثبيت نسخة Ubuntu Server لأول مرة، قد لا تكون خدمة SSH مثبتة بشكل افتراضي. لذلك، الخطوة الأولى لإدارة الخادم عن بُعد هي تثبيت خدمة OpenSSH Server، وهي الحزمة التي توفّر خادم SSH على نظام Ubuntu.

تحديث الحزم قبل التثبيت

من الأفضل دائمًا التأكد من أن النظام محدث قبل تثبيت أي حزمة جديدة. لتنفيذ ذلك، يمكن استخدام الأمر التالي:

sudo apt update && sudo apt upgrade -y

تثبيت OpenSSH Server

بعد تحديث النظام، يمكن تثبيت خادم SSH باستخدام الأمر:

sudo apt install openssh-server

سيقوم النظام بتنزيل وتثبيت الحزمة المطلوبة، مع بدء تشغيل الخدمة بشكل تلقائي بعد اكتمال التثبيت.

التحقق من حالة خدمة SSH

بعد تثبيت الخدمة، يفضل التأكد من أنها تعمل بشكل صحيح. يمكن تنفيذ الأمر التالي للتحقق من حالة الخدمة:

sudo systemctl status ssh

إذا ظهرت رسالة تفيد بأن الخدمة "active (running)" فهذا يعني أن SSH يعمل بنجاح على الخادم.

التأكد من أن SSH يبدأ تلقائيًا مع النظام

حتى يبدأ تشغيل خدمة SSH بشكل تلقائي مع كل إعادة تشغيل للنظام، يمكن تنفيذ الأمر:

sudo systemctl enable ssh

بهذه الخطوات يكون خادم Ubuntu الخاص بك قد أصبح جاهزًا للاتصال عن بُعد باستخدام SSH، ويمكن الآن الانتقال إلى ضبط إعدادات الجدار الناري للسماح بالاتصال عبر SSH.

 

إعداد جدار الحماية للسماح باتصال SSH

بعد تثبيت وتشغيل خدمة SSH، من الضروري التأكد من أن الجدار الناري الخاص بالنظام يسمح بمرور الاتصالات القادمة عبر المنفذ الخاص بـ SSH، والذي يكون عادة المنفذ رقم 22 بشكل افتراضي.

نظام Ubuntu يأتي مزودًا بأداة جدار ناري تُعرف باسم UFW (اختصارًا لـ Uncomplicated Firewall)، وهي أداة بسيطة وفعالة لإدارة قواعد الجدار الناري.

التحقق من حالة جدار الحماية

في البداية يمكن معرفة ما إذا كان UFW مفعّلًا أم لا عن طريق الأمر التالي:

sudo ufw status

إذا ظهرت رسالة تقول Status: inactive فهذا يعني أن الجدار الناري غير مفعل حاليًا، ويمكن تفعيله لاحقًا بعد ضبط القواعد المطلوبة.

السماح بالاتصال عبر منفذ SSH

للسماح بالاتصالات الواردة عبر المنفذ 22 الخاص بـ SSH، يمكن تنفيذ الأمر:

sudo ufw allow ssh

هذا الأمر يضيف قاعدة تسمح بالاتصال عبر المنفذ 22.
بديلًا عن استخدام اسم الخدمة، يمكن تحديد رقم المنفذ مباشرة:

sudo ufw allow 22

إذا كنت تخطط لاحقًا لتغيير رقم المنفذ في إعدادات SSH، ستحتاج إلى السماح بالمنفذ الجديد بنفس الطريقة قبل تفعيل الجدار الناري.

تفعيل جدار الحماية

بعد ضبط القاعدة الخاصة بـ SSH، يمكن تفعيل الجدار الناري باستخدام الأمر:

sudo ufw enable

عند تنفيذ هذا الأمر للمرة الأولى، سيطلب منك النظام تأكيد العملية.
من الضروري التأكد أن قاعدة السماح بـ SSH مضافة قبل التفعيل حتى لا يتم قطع الاتصال بالخادم.

التأكد من القواعد الحالية

بعد تفعيل الجدار الناري، يمكن مراجعة القواعد المفعلة باستخدام:

sudo ufw status numbered

سيعرض النظام قائمة بالقواعد المطبقة مع أرقامها، ويمكن لاحقًا حذف أو تعديل أي قاعدة بسهولة.

ملحوظة مهمة

إذا كنت تتصل بالخادم عن بُعد بالفعل باستخدام SSH، فمن المهم جدًا التأكد من إضافة قاعدة السماح قبل تفعيل UFW، حتى لا يتم قطع الاتصال وتعطيل الوصول إلى الخادم.

الاتصال بالخادم عبر SSH

بعد الانتهاء من تثبيت خدمة SSH وضبط إعدادات الجدار الناري للسماح بالاتصال، يمكنك الآن الاتصال بالخادم عن بُعد من أي جهاز آخر متصل بالشبكة أو عبر الإنترنت باستخدام أداة SSH.

المتطلبات

لإجراء الاتصال ستحتاج إلى:

  • عنوان IP الخاص بالخادم.

  • اسم المستخدم الذي ستسجّل الدخول به.

  • التأكد من أن خدمة SSH تعمل بشكل صحيح على الخادم.

الاتصال باستخدام الأمر SSH

يمكن تنفيذ الاتصال من أي نظام تشغيل يدعم SSH (مثل أنظمة Linux و macOS مباشرة عبر الطرفية، أو من Windows باستخدام تطبيق مثل PuTTY أو عبر Windows Terminal في الإصدارات الحديثة).

الصيغة الأساسية للأمر:

ssh username@server_ip

مع استبدال:

  • username باسم المستخدم الذي تريد تسجيل الدخول به.

  • server_ip بعنوان IP الخاص بالخادم.

مثال عملي

إذا كان اسم المستخدم هو mohammed وعنوان الخادم هو 192.168.1.100:

ssh [email protected]

عند تنفيذ هذا الأمر لأول مرة، سيعرض النظام رسالة تأكيد لإضافة البصمة الرقمية الخاصة بالخادم إلى قائمة الأجهزة الموثوقة على الجهاز العميل.
عند تأكيد ذلك، سيُطلب منك إدخال كلمة مرور المستخدم.

إنهاء الاتصال

بعد الانتهاء من العمل على الخادم، يمكن إنهاء الاتصال من خلال كتابة الأمر:

exit

ثم الضغط على Enter.

بهذه الطريقة أصبح بإمكانك التحكم في خادم Ubuntu الخاص بك عن بُعد وتنفيذ الأوامر عليه بسهولة وأمان باستخدام SSH.

تغيير إعدادات SSH لزيادة الأمان

بعد تثبيت خدمة SSH وتشغيلها بنجاح، من المهم ضبط بعض الإعدادات الإضافية لتعزيز مستوى الأمان على الخادم. فالإعدادات الافتراضية قد تترك الخادم عرضة لمحاولات الاختراق، خاصة في حال ترك منفذ SSH الافتراضي مفتوحًا أو السماح بتسجيل الدخول كمستخدم root.

فتح ملف إعدادات SSH

جميع إعدادات SSH موجودة في الملف:

/etc/ssh/sshd_config

يمكن فتح الملف باستخدام محرر نصوص مثل nano:

sudo nano /etc/ssh/sshd_config

بعد فتح الملف، يمكن تعديل الخيارات التالية:

تغيير المنفذ الافتراضي

بشكل افتراضي، يستخدم SSH المنفذ رقم 22. لتقليل احتمالات التعرض لهجمات التخمين الآلي، من الأفضل تغييره إلى رقم آخر (مثل 2222 أو 8888).

ابحث عن السطر:

#Port 22

وأزل علامة # وعدل الرقم مثلًا:

Port 2222

احرص على السماح بالمنفذ الجديد في إعدادات الجدار الناري قبل تنفيذ هذه الخطوة.

منع تسجيل الدخول كمستخدم root

لحماية الخادم من محاولات الدخول المباشرة بحساب root، يفضل تعطيل تسجيل الدخول لهذا المستخدم.

ابحث عن السطر:

PermitRootLogin yes

وعدّله إلى:

PermitRootLogin no

تحديد المستخدمين المسموح لهم باستخدام SSH

يمكن تحديد قائمة المستخدمين المصرّح لهم بتسجيل الدخول عبر SSH فقط.

في نهاية الملف، أضف:

AllowUsers mohammed user2

مع استبدال mohammed وuser2 بأسماء المستخدمين المسموح لهم.

حفظ التعديلات وإعادة تشغيل الخدمة

بعد الانتهاء من تعديل الإعدادات، احفظ الملف (في محرر nano اضغط Ctrl + O ثم Enter للحفظ و Ctrl + X للخروج).

ثم أعد تشغيل خدمة SSH لتطبيق التغييرات:

sudo systemctl restart ssh

ملاحظة

في حال تغيير رقم المنفذ، يجب الاتصال بالخادم من الآن فصاعدًا مع تحديد المنفذ الجديد. مثلًا:

ssh -p 2222 [email protected]

بهذا الشكل تكون قد حسّنت مستوى الأمان في خدمة SSH على الخادم وأضفت حماية إضافية ضد الهجمات الشائعة.

إعداد المصادقة باستخدام المفاتيح بدلًا من كلمات المرور

أهمية استخدام المصادقة بالمفاتيح

الاعتماد على كلمات المرور لتأمين الاتصال بالخادم عبر SSH يعتبر أقل أمانًا، خاصة في حال اختيار كلمات مرور ضعيفة أو متكررة.
أما المصادقة باستخدام المفاتيح (Public/Private Key Authentication) فهي طريقة أكثر أمانًا، حيث تعتمد على زوج من المفاتيح:

  • مفتاح خاص (Private Key) يبقى محفوظًا على جهاز المستخدم.

  • مفتاح عام (Public Key) يتم نسخه على الخادم.

ميزة هذه الطريقة أن الاتصال لا يمكن إتمامه إلا إذا كان جهاز المستخدم يحتوي على المفتاح الخاص المطابق للمفتاح العام الموجود في الخادم، مما يصعّب جدًا محاولات الاختراق حتى لو تم تخمين اسم المستخدم.

إنشاء مفتاح SSH على جهاز العميل

على جهاز العميل (حاسوبك الشخصي)، افتح الطرفية ونفّذ الأمر التالي لإنشاء زوج مفاتيح:

ssh-keygen

سيطلب منك تحديد مكان حفظ المفتاح. يمكنك الضغط على Enter لاختيار المسار الافتراضي:

/home/username/.ssh/id_rsa

ثم يمكنك وضع عبارة سرية (Passphrase) إضافية للمفتاح لزيادة الحماية، أو الضغط Enter لتركها فارغة.

نسخ المفتاح العام إلى الخادم

بعد إنشاء المفتاح، يمكن إرسال المفتاح العام إلى الخادم باستخدام الأمر:

ssh-copy-id username@server_ip

مع استبدال username و server_ip بالقيم المناسبة.

إذا كنت تستخدم منفذًا مخصصًا لـ SSH غير 22، أضف الخيار -p:

ssh-copy-id -p 2222 username@server_ip

عند تنفيذ هذا الأمر، سيُطلب منك إدخال كلمة مرور المستخدم لمرة واحدة فقط، ليقوم بعدها النظام بنسخ المفتاح العام إلى الملف التالي على الخادم:

/home/username/.ssh/authorized_keys

التحقق من الاتصال بدون كلمة مرور

بعد نسخ المفتاح، يمكن تجربة الاتصال بالخادم:

ssh username@server_ip

إذا تم الاتصال مباشرة دون طلب كلمة مرور فهذا يعني أن المصادقة بالمفاتيح تعمل بنجاح.

تعطيل تسجيل الدخول بكلمة مرور (اختياري لزيادة الأمان)

بعد التأكد من نجاح المصادقة بالمفاتيح، يمكن إلغاء إمكانية تسجيل الدخول باستخدام كلمة المرور كخطوة إضافية لزيادة الحماية.

افتح ملف إعدادات SSH:

sudo nano /etc/ssh/sshd_config

ثم عدل السطر:

PasswordAuthentication yes

إلى:

PasswordAuthentication no

بعدها احفظ الملف وأعد تشغيل الخدمة:

sudo systemctl restart ssh

تنبيه مهم

قبل تنفيذ هذه الخطوة:

  • تأكد من أن المصادقة بالمفاتيح تعمل بنجاح.

  • لا تقم بتعطيل كلمات المرور إلا بعد اختبار المفتاح على اتصال فعلي، حتى لا تفقد الوصول إلى الخادم.

بهذا تكون قد أعددت نظامًا آمنًا يعتمد على المفاتيح بدل كلمات المرور، مما يقلل بشكل كبير من مخاطر الاختراق.

بعد إتمام إعداد المصادقة بالمفاتيح بنجاح وتعطيل تسجيل الدخول بكلمات المرور، يصبح خادمك أكثر أمانًا ضد محاولات الاختراق المباشر. ورغم ذلك، لا يزال بالإمكان اتخاذ بعض الإجراءات الإضافية التي من شأنها تعزيز الحماية وتأمين الخادم بشكل أفضل. في هذا الجزء، نستعرض مجموعة من النصائح المهمة التي يُنصح بتطبيقها مع أي خادم يستخدم SSH.

نصائح إضافية لتعزيز أمان SSH

تغيير المنفذ الافتراضي

ترك خدمة SSH تعمل على المنفذ 22 الافتراضي يجعلها هدفًا سهلًا لأدوات التخمين الآلي التي تفحص الشبكات بحثًا عن هذا المنفذ.
يفضل اختيار رقم منفذ مختلف (مثل 2222 أو 8822) مع السماح له في إعدادات الجدار الناري قبل تطبيق التغيير.

استخدام أداة Fail2Ban

Fail2Ban هي أداة تقوم بمراقبة ملفات السجلات (Logs) الخاصة بالنظام، وعند اكتشاف محاولات تسجيل دخول متكررة وفاشلة، تقوم بحظر عنوان IP المهاجم لفترة محددة.
يمكن تثبيتها بسهولة عبر:

sudo apt install fail2ban

ثم ضبط إعداداتها لتأمين SSH بشكل أفضل.

تحديد عدد المحاولات الفاشلة قبل الحظر

يمكن في إعدادات SSH تحديد عدد المحاولات المسموح بها قبل قطع الاتصال، وذلك بتعديل ملف:

/etc/ssh/sshd_config

وإضافة:

MaxAuthTries 3

هذا يمنع محاولات التخمين المتكررة.

استخدام عبارات سرية قوية للمفاتيح

في حال إنشاء مفتاح SSH، يُفضَّل وضع Passphrase معقدة أثناء توليد المفتاح لحماية المفتاح الخاص من الاستخدام في حال سرقته.

تعطيل المصادقة بكلمات المرور نهائيًا

بعد التأكد من عمل المصادقة بالمفاتيح لكل المستخدمين المعتمدين على الخادم، يمكن تعطيل المصادقة بكلمات المرور كما وضحنا في القسم السابق.
هذه الخطوة تحمي الخادم تمامًا من أي محاولة لاختراقه باستخدام كلمات مرور.

تحديث الخادم دوريًا

الحرص على تحديث نظام التشغيل وخدمات SSH بشكل مستمر يغلق الثغرات الأمنية التي قد تظهر بمرور الوقت.

sudo apt update && sudo apt upgrade

ختاما، من خلال تنفيذ هذه الخطوات والنصائح، يمكنك إعداد خدمة SSH آمنة ومستقرة على خادم Ubuntu الخاص بك.
فالأمان في بيئة الخوادم لا يعتمد على خطوة واحدة، بل على مجموعة من الإجراءات الوقائية المتكاملة التي تعمل معًا لحماية بياناتك ومواردك من أي محاولات غير مصرح بها.
ابدأ بتطبيق هذه الخطوات، واحرص على مراجعة إعدادات الخادم بشكل دوري لضمان استمرار الحماية بأعلى مستوى ممكن.

حول المحتوى:

في هذا المقال، سنتعرف معًا خطوة بخطوة على كيفية تثبيت خدمة SSH على Ubuntu Server، وضبط إعداداتها الأساسية، وتحسين مستوى الأمان الخاص بها لضمان بيئة عمل أكثر استقرارًا وأمانًا.