ما هو SSH ؟
بروتوكول النقل الآمن (The Secure Shell) هي ميثاق (بروتوكول) اتصالات للنقل الأمن للمعلومات، وخدمات صدفة الحماية عن بعد (remote shell) أو لتنفيذ أوامر وخدمات أخرى بين حاسوبين متصلين بشبكة التي تربطهما عن طريق قناة أمنة من خلال شبكة غير أمنة وهو مبني على نموذج الخادم/العميل.
يستخدم برنامج عملاء SSH عادةً لإنشاء اتصالات مع SSH daemon لقبول الاتصالات عن بُعد. كلاهما موجود عادة في معظم أنظمة التشغيل الحديثة، بما في ذلك macOS و Linux و OpenBSD و FreeBSD…
في هذا الدليل، ستؤمن منفذ SSH وتعطل تسجيل دخول المستخدم امتياز root.
ملفا عدادات موجود في etc/ssh/sshd_config/
.
الخطوة 1: تغيير منفذ SSH
تستخدم غالبية نصوص الهجوم فقط المنفذ 22، وهو منفذ SSH القياسي افتراضيًا. من الواضح أن تغيير منفذ SSH الافتراضي يجب أن يوفر طبقة حماية إضافية كبيرة.
افتح ملف الإعدادات والتغيير Port 22 الى Port 2445.
... # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Include /etc/ssh/sshd_config.d/*.confPort 22Port 2445 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: ...
يجب عليك إبقاء رقم المنفذ في الاعتبار أو كتابته إذا كنت ترغب في استخدام SSH للوصول إلى الخوادم الخاصة بك.
إعادة تشغيل خادم OpenSSH.
في Debian / Ubuntu Linux:
$ sudo service ssh restart
# using systemd:
$ sudo systemctl restart ssh
CentOS / RHEL / Fedora / Redhat Linux:
$ sudo service sshd restart
# using systemd:
$ sudo systemctl restart sshd
الآن للاتصال بخادمنا ssh نضيف -p معلمة مع رقم المنفذ الجديد 2445.
$ ssh root@SERVER_IP -p 2445
بعد ذلك، قمنا بتعطيل تسجيل الدخول بمستخدم root.
الخطوة 2: تعطيل تسجيل الدخول بمستخدم root عبر SSH
إذا لم يكن لديك مستخدم تمكين Sudo بالفعل، فيمكنك اتباع دليلنا على أنشئ مستخدمًا جديدًا مدعومًا بالسودو
علاوة على ذلك، استخدم المستخدم المزود بالسودو الذي أضفته من قبل إلى جهازك بدلاً من الجذر للاتصال بالخادم من خلال SSH إذا كان لديك أي منها.
بتغيير PermitRootLogin وخيار وضعه على no, سوف تمنع دخول root:
... # Authentication: #LoginGraceTime 2mPermitRootLogin yesPermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 #PubkeyAuthentication yes ...
إعادة تشغيل خادم SSH، ويجب أن تكون قادرًا الآن على الاتصال بخادمنا على النحو التالي:
$ ssh bob@SERVER_IP -p 2445
# To switch to root user use:
$ sudo su
[sudo] password for bob:
الخطوة 3: تعطيل تسجيل دخول SSH المستند إلى كلمة المرور
للتخلص من هجوم القوة العمياء (Brute-force) المستمرة، يمكنك اختيار تسجيل دخول SSH القائم على المفتاح فقط.
اتبع دليلنا على كيفية استخدام مفتاح (SSH) إس إس إتش خاص.
ويجب قبل ذلك النظر في الاعتبارات التالية:
- للتأكد على الأقل من أنه يمكنك تسجيل الدخول إلى الخادم الخاص بك، وإنشاء زوج مفاتيح SSH على جهاز الكمبيوتر الشخصي أو العملي الخاص بك وإضافة مفتاح SSH العام هذا إلى الخادم الخاص بك.
- عند تعطيل المصادقة المستندة إلى كلمة المرور، لا يمكن للآلات غير المصرح بها الدخول إلى الخادم الخاص بك.
- لن تتمكن من الوصول إلى الخادم مرة أخرى إذا تم إغلاقك.
أنت الآن على دراية بالمخاطر التي ينطوي عليها إزالة عمليات تسجيل دخول SSH القائمة على كلمة المرور.
دعونا نرى كيف نفعل ذلك.
قم بتعطيل كلمة المرور المصادقة عن طريق التغييرPasswordAuthentication وخيار وضعه على no, سوف تمنع تسجيل الدخول بكلمة المرور:
... # To disable tunneled clear text passwords, change to no here!PasswordAuthentication yesPasswordAuthentication no #PermitEmptyPasswords no ...
خلاصة
لقد قدمنا قائمة بتقنيات تحصين SSH المفيدة. هناك عدد من التقنيات الأخرى لحماية SSH وخادم Linux الخاص بك. من المستحيل تقديم قائمة كاملة بهم في مقال واحد.