في الوقت الحاضر ، يستغرق رفع خادم على استضافة بضع دقائق وبضع نقرات بالماوس. لكن بعد الإطلاق مباشرة ، يجد نفسه في بيئة معادية ، لأنه منفتح على الإنترنت بالكامل مثل فتاة بريئة في ديسكو الروك. سوف تجد الماسحات الضوئية ذلك بسرعة وتكتشف الآلاف من الروبوتات المكتوبة تلقائيًا والتي تجوب الشبكة بحثًا عن نقاط الضعف والتكوينات الخاطئة. هناك بعض الأشياء التي يجب عليك فعلها مباشرة بعد الإطلاق لضمان الحماية الأساسية.
الخطوة الأولى هي إنشاء مستخدم غير جذر لنفسك. النقطة هي أن المستخدم root امتيازات مطلقة في النظام ، وإذا سمحت له بالإدارة عن بعد ، فستقوم بنصف العمل للمخترق ، مع ترك اسم مستخدم صالح له.
لذلك ، تحتاج إلى إنشاء مستخدم آخر ، وتعطيل الإدارة عن بعد عبر SSH للجذر.
يتم بدء مستخدم جديد بواسطة الأمر useradd:
useradd [options] <username>
ثم يتم إضافة كلمة مرور لها بالأمر passwd:
passwd <username>
أخيرًا ، يجب إضافة هذا المستخدم إلى مجموعة لها الحق في تنفيذ أوامر مرتفعة sudo. اعتمادًا على توزيع Linux ، قد تكون هذه مجموعات مختلفة. على سبيل المثال ، في CentOS و Red Hat ، تتم إضافة المستخدم إلى المجموعة wheel:
usermod -aG wheel <username>
في Ubuntu يتم إضافته إلى المجموعة sudo:
usermod -aG sudo <username>
مفاتيح بدلاً من كلمات مرور SSH
تُعد القوة الغاشمة أو تسريبات كلمة المرور من العوامل القياسية للهجوم ، لذا من الأفضل تعطيل مصادقة كلمة المرور في SSH (Secure Shell) واستخدام مصادقة المفاتيح بدلاً من ذلك.
هناك العديد من البرامج لتطبيق بروتوكول SSH ، مثل LSH и دروببير، ولكن الأكثر شيوعًا هو OpenSSH. تثبيت عميل OpenSSH على أوبونتو:
sudo apt install openssh-client
تثبيت الخادم:
sudo apt install openssh-server
بدء برنامج SSH daemon (sshd) على خادم Ubuntu:
sudo systemctl start sshd
ابدأ البرنامج الخفي تلقائيًا في كل تمهيد:
sudo systemctl enable sshd
وتجدر الإشارة إلى أن جزء الخادم من OpenSSH يتضمن جزء العميل. هذا هو ، من خلال openssh-server يمكنك الاتصال بخوادم أخرى. علاوة على ذلك ، من جهاز العميل الخاص بك ، يمكنك بدء نفق SSH من خادم بعيد إلى مضيف تابع لجهة خارجية ، ثم يعتبر مضيف الجهة الخارجية الخادم البعيد مصدر الطلبات. ميزة مفيدة للغاية لإخفاء نظامك. انظر المادة للحصول على التفاصيل "نصائح عملية وأمثلة وأنفاق SSH".
على جهاز العميل ، ليس من المنطقي عادةً تثبيت خادم كامل لمنع إمكانية الاتصال عن بُعد بجهاز كمبيوتر (لأسباب أمنية).
لذلك ، بالنسبة للمستخدم الجديد ، تحتاج أولاً إلى إنشاء مفاتيح SSH على الكمبيوتر الذي ستصل من خلاله إلى الخادم:
ssh-keygen -t rsa
يتم تخزين المفتاح العام في ملف .pub وتبدو كسلسلة من الأحرف العشوائية تبدأ بـ ssh-rsa.
من جانب العميل ، تحتاج إلى تحديد موقع المفتاح السري للمصادقة:
ssh-add DIR_PATH/keylocation
يمكنك الآن تسجيل الدخول إلى الخادم باسم المستخدم باستخدام هذا المفتاح:
ssh [username]@hostname
بعد التفويض ، يمكنك استخدام الأمر scp لنسخ الملفات والأداة المساعدة سشفس لتحميل نظام الملفات أو الدلائل عن بعد.
يُنصح بعمل عدة نسخ احتياطية من المفتاح الخاص ، لأنه إذا قمت بتعطيل مصادقة كلمة المرور وفقدتها ، فلن يكون لديك أي طريقة لتسجيل الدخول إلى الخادم الخاص بك على الإطلاق.
كما ذكرنا أعلاه ، في SSH تحتاج إلى تعطيل المصادقة للجذر (هذا هو السبب في أننا بدأنا مستخدمًا جديدًا).
على CentOS / Red Hat نجد الخط PermitRootLogin yes في ملف التكوين /etc/ssh/sshd_config وقم بتغييره:
PermitRootLogin no
على أوبونتو أضف السطر PermitRootLogin no إلى ملف التكوين 10-my-sshd-settings.conf:
بعد التحقق من قيام المستخدم الجديد بالمصادقة باستخدام مفتاحه ، يمكنك تعطيل مصادقة كلمة المرور للتخلص من مخاطر تسرب كلمة المرور أو القوة الغاشمة. الآن ، من أجل الوصول إلى الخادم ، سيحتاج المهاجم إلى الحصول على مفتاح خاص.
على CentOS / Red Hat نجد الخط PasswordAuthentication yes في ملف التكوين /etc/ssh/sshd_config وقم بتغييرها على هذا النحو:
PasswordAuthentication no
على أوبونتو أضف السطر PasswordAuthentication no إلى ملف 10-my-sshd-settings.conf:
للحصول على إرشادات حول تمكين المصادقة الثنائية عبر SSH ، راجع هنا.
جدار الحماية
يضمن جدار الحماية أن حركة المرور فقط على المنافذ التي تسمح بها مباشرة ستنتقل إلى الخادم. هذا يحمي من استغلال المنافذ التي يتم تمكينها عن طريق الخطأ مع الخدمات الأخرى ، مما يقلل بشكل كبير من سطح الهجوم.
قبل تثبيت جدار حماية ، تحتاج إلى التأكد من أن SSH مدرج في قائمة الاستبعاد ولن يتم حظره. خلاف ذلك ، بعد بدء جدار الحماية ، لن نتمكن من الاتصال بالخادم.
يأتي توزيع Ubuntu مزودًا بجدار حماية غير معقد (ufw) ، ومع CentOS / Red Hat - firewalld.
خدمة Fail2Ban يحلل السجلات على الخادم ويحسب عدد محاولات الوصول من كل عنوان IP. تحدد الإعدادات القواعد الخاصة بعدد محاولات الوصول المسموح بها لفترة زمنية معينة - وبعد ذلك يتم حظر عنوان IP هذا لفترة زمنية محددة. على سبيل المثال ، لنسمح بخمس محاولات فاشلة لمصادقة SSH في غضون ساعتين ، ثم نحظر عنوان IP المحدد لمدة 5 ساعة.
بالإضافة إلى SSH ، يمكن لـ Fail2Ban حماية الخدمات الأخرى على خادم الويب nginx أو Apache.
تحديثات الأمان التلقائية
كما تعلم ، توجد ثغرات أمنية جديدة باستمرار في جميع البرامج. بعد نشر المعلومات ، تتم إضافة الثغرات إلى حزم الاستغلال الشائعة ، والتي يستخدمها المتسللون والمراهقون على نطاق واسع عند فحص جميع الخوادم على التوالي. لذلك ، من المهم جدًا تثبيت تحديثات الأمان بمجرد ظهورها.
على خادم Ubuntu ، يتم تمكين تحديثات الأمان التلقائية افتراضيًا ، لذلك لا يلزم اتخاذ أي إجراء آخر.
على CentOS / Red Hat تحتاج إلى تثبيت التطبيق dnf- تلقائي وقم بتشغيل المؤقت:
تم تطوير SSH في عام 1995 ليحل محل telnet (المنفذ 23) و ftp (المنفذ 21) ، لذلك قام مؤلف البرنامج Tatu Iltonen المنفذ المحدد 22 بشكل افتراضي، وتمت الموافقة عليها من قبل IANA.
بطبيعة الحال ، يدرك جميع المهاجمين المنفذ الذي يعمل عليه SSH - ويفحصونه مع بقية المنافذ القياسية لمعرفة إصدار البرنامج ، للتحقق من كلمات مرور الجذر القياسية ، وما إلى ذلك.
يؤدي تغيير المنافذ القياسية - التشويش - عدة مرات إلى تقليل حجم حركة البيانات غير المرغوب فيها ، وحجم السجلات والحمل على الخادم ، كما يقلل أيضًا من سطح الهجوم. على الرغم من أن بعض انتقد طريقة "الحماية من خلال الغموض". (الأمن من خلال الغموض). والسبب هو أن هذه التقنية تتعارض مع الأساسي الحماية المعمارية. لذلك ، على سبيل المثال ، المعهد الوطني الأمريكي للمعايير والتكنولوجيا في "دليل أمان الخادم" يشير المستند إلى الحاجة إلى بنية خادم مفتوح: "يجب ألا يعتمد أمن النظام على سرية تنفيذ مكوناته".
نظريًا ، يعد تغيير المنافذ الافتراضية مخالفًا لممارسة العمارة المفتوحة. ولكن من الناحية العملية ، يتم تقليل حجم حركة البيانات الضارة بالفعل ، لذلك يعد هذا إجراءً بسيطًا وفعالاً.
يمكن تكوين رقم المنفذ عن طريق تغيير التوجيه Port 22 في ملف التكوين / الخ / سه / sshd_config. يشار إليه أيضًا بواسطة المعلمة -p <port> в سشد. عميل وبرامج SSH بالنشر أيضا دعم الخيار -p <port>.
المعلمة -p <port> يمكن استخدامها لتحديد رقم المنفذ عند الاتصال بالأمر ssh في لينكس. في بالنشر и scp يتم استخدام المعلمة -P <port> (العاصمة P). تتجاوز تعليمات سطر الأوامر أي قيمة في ملفات التكوين.
إذا كان هناك العديد من الخوادم ، فيمكن أتمتة جميع هذه الإجراءات تقريبًا لحماية خادم Linux في نص برمجي. ولكن إذا كان هناك خادم واحد فقط ، فمن الأفضل التحكم في العملية يدويًا.
كإعلان
اطلب وابدأ على الفور! إنشاء VDS أي تكوين ومع أي نظام تشغيل في غضون دقيقة. سيسمح لك الحد الأقصى من التكوين بالخروج على أكمل وجه - 128 نواة لوحدة المعالجة المركزية ، وذاكرة وصول عشوائي 512 جيجابايت ، و 4000 جيجابايت من NVMe. ملحمة 🙂