recent
أخبار ساخنة

دليل إعداد OpenSSH Security في Linux

الصفحة الرئيسية
OpenSSH Security

دليل إعداد OpenSSH Security في Linux

SSH هو أحد البروتوكولات الأكثر استخدامًا لإدارة النظام على أنظمة Linux الأساسية.

إنه متاح للعديد من أنظمة التشغيل القائمة على Unix و Linux و MacOS.
يعتمد على نموذجclient-server، حيث يقوم جهاز واحد بتشغيل مكون الخادم والآخر يستخدم أداة العميل للوصول إليه.

كيف يعمل SSH؟


يبدأ العميل (ssh) الاتصال عن طريق إرسال طلب إلى الخادم.
يستمع الخادم للطلبات الواردة باستخدام daemon الخادم (sshd).
يستخدم مفتاحه العام لمصادقة نفسه للعميل الذي يحاول الاتصال به:
بهذه الطريقة ، يتأكد العميل من أنه يتصل بخادم SSH الصحيح.
عندما يتم ذلك ، يمكن للعميل الوصول إلى الخادم.
إذا كنت تستخدم عميل Windows ، فسيتعين عليك استخدام أدوات مثل putty للاتصال بالخادم.
يمكن تثبيت كل من العميل والخادم على نفس النظام  وهذا يعني أنه يمكنك استخدام أداة العميل للوصول إلى أجهزة أخرى أو يمكن أن يكون نظامك هو الخادم نفسه الذي يمكن للآخرين الوصول إليه.
في مثل هذه الحالة ، يتم وضع ملف الإعداد في نفس المجلد ولكن باسم مختلف قليلاً.
 موقع المجلد هو '/ etc / ssh' واسم ملف إعداد العميل ssh هو 'ssh_config' وملف إعداد الخادم هو 'sshd_config':


في حالة وجود كلا الملفين على نظامك ، يجب أن تختار بحكمة الملف الذي تريد إعداده.
في معظم الحالات ، نحتاج إلى إعداد الخادم للأمان لأنه يفتح الباب أمام الوصول المحتمل إلى النظام.

نبدأ أولاً بالتحقق من حالة daemon  الـ SSH أو sshd على الخادم الخاص بنا.
بهذه الطريقة يمكننا معرفة ما إذا كان يعمل وتمكينه ليبدأ تلقائيًا.
 سيتحقق الأمر التالي من حالة sshd:

$ systemctl status ssh.service


أو استخدم الأمر التالي:

$ systemctl status sshd.service


في هذا المثال يمكننا أن نرى أن الخدمة نشطة وممكّنة منذ 6 ساعات.
 عندما تقوم بتوسيع عرض الشاشة بالضغط على السهم الأيمن ، ستلاحظ أنه يستمع على المنفذ الافتراضي 22.

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

إعداد SSH 


لنبدأ في تكوين إعداد خادم SSH.
يجب أن نقوم بعمل نسخة احتياطية من الملف بالإعدادات الافتراضية:

sudo cp / etc / ssh / sshd_config ~ / sshd_config.bkp


يمكننا استخدام ملف النسخ الاحتياطي للعودة إلى الوضع الطبيعي.

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


يستمع daemon الـ sshd افتراضيًا إلى المنفذ 22 من الخادم.
يوصى بتغيير هذه القيمة إلى رقم آخر بطريقة تقلل من نطاق الهجمات الآلية باستخدام البرامج النصية.
افتح الملف التالي وابحث عن السطر الذي يحتوي على النص "Port 22".

$ sudo nano /etc/ssh/sshd_config


قم بإلغاء التعليق على السطر "Port 22" وقم بتغيير "22" إلى رقم منفذ آخر ليس قيد الاستخدام على نظامك.
لنغيره إلى "222" وإعادة تشغيل الخدمة.
الآن استخدم الأمر ssh مع الخيار "p" لتحديد المنفذ الجديد:

$ ssh user@system_ip -p 222



2. تعطيل تسجيل الدخول بالمستخدم Root


Root هو المستخدم النهائي على أي نظام Linux مع إمكانية الوصول إلى كل مورد على نظامك.
في حالة عدم طلب وصول صارم إلى الـ Root يجب عليك تعطيل ميزة تسجيل الدخول Root على الخادم الخاص بك.
لهذا افتح نفس الملف أعلاه:

$ sudo nano /etc/ssh/sshd_config

وقم بتعيين "PermitRootLogin" على "لا".
سيضمن ذلك حماية الخادم من الهجمات العشوائية التي تستهدف حساب root .
الخيار الافتراضي هو "prohibit-password" والذي يسمح بتسجيل الدخول بناءً على مصادقة المفتاح العام ولكنه يرفض عمليات تسجيل الدخول القائمة على كلمة المرور.

3. تعيين إصدار البروتوكول


إصدار البروتوكول الأقدم من SSH هو 1 وهو أقل أمانًا مقارنةً بـ SSH2 ولديهم تطبيقات مختلفة للشبكات كما أنهم غير متوافقين مع بعضهم البعض.
للتحقق من إصدار البروتوكول النشط على الخادم الخاص بك افتح ملف sshd_config مرة أخرى وابحث عن السطر "Protocol":

$ cat /etc/ssh/sshd_config | grep 'Protocol'


في حال كانت النتيجة فارغة ، فمن المحتمل أن يكون OpenSSH يستخدم الإصدار 2 كما في مثالنا هنا.

هناك طريقة أخرى وهي استخدام الأداة المساعدة للأمر netcat:

$ nc localhost 22

سترى النتيجة:

SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.4

من النتيجة يمكننا أن نرى أن SSH2 نشط على نظامنا.


للتحقق من إصدار البروتوكولات الذي يعمل على الخادم البعيد ، حاول الاتصال به باستخدام عميل ssh مع الخيار -Q

$ ssh -Q protocol-version user@server_name


تُظهر الصورة إصدار SSH 2 أثناء الوصول إلى خادم Ubuntu ssh من Kali Linux.

4. تعقيد كلمة المرور


دائمًا ما تكون كلمات المرور الضعيفة عرضة للاستغلال  لذا فمن المرجح أن يتم استغلال كلمات المرور الفارغة.
لذلك يجب تعيين خيار PermitEmptyPasswords على "no" في ملف sshd_config.
بنفس الطريقة ، يجب تحديد عدد محاولات تسجيل الدخول باستخدام كلمة مرور خاطئة لتقليل فرص هجوم القوة الغاشمة. يمكن تحقيق ذلك من خلال تعيين خيار "MaxAuthTries" على بعض القيم الأصغر مثل 3.


من الصورة يمكننا أن نرى أنه عندما قمنا بتعيين قيمة "MaxAuthTries" على 3 ، يتم رفض SSH بعد ثلاث كلمات مرور خاطئة.
google-playkhamsatmostaqltradent