في عالم البنية التحتية كرمز والتطوير السحابي، لم يعد الخادم مجرد آلة؛ بل هو أساس سلامة تطبيقك. ومع ذلك، نادرًا ما تكون التثبيتات الافتراضية لنظام لينك آمنة منذ البداية. فهو مصمم للتوافق وسهولة الاستخدام، وليس للدفاع ضد موجات غير متعبة من البوتات الآلية والمهاجمين المهرة. يستكشف هذا المنشور النهج متعدد الطبقات لتأمين بيئة لينك الخاصة بك، متجاوزًا حماية كلمة المرور الأساسية إلى استراتيجية دفاعية متعمقة وقوية.
خط الدفاع الأول: تشديد SSH
غالبًا ما تكون الأداة الآمنة (SSH) هي الباب الأول الذي يحاول المهاجم فتحه. التكوينات الافتراضية مشهورة بعدم أمانها، مما يترك المنفذ 22 مفتوحًا أمام محاولات القوة الغاشمة. لتأمين SSH، يجب علينا تقييد طرق الوصول وتقليل التعرض.
ابدأ بتعطيل تسجيل الدخول كجذر (root) والمصادقة القائمة على كلمة المرور. بدلاً من ذلك، اعتمد على أزواج مفاتيح SSH، والتي يصعب اختراقها بشكل أسي. قم بتحديث ملف /etc/ssh/sshd_config بالتوجيهات التالية:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers deployer admin
بعد إجراء هذه التغييرات، أعد تشغيل خدمة SSH. لاحظ أنه قبل إغلاق جلستك الحالية، تأكد من قدرتك على تسجيل الدخول باستخدام مفتاحك الجديد لتجنب حجب الوصول. بالإضافة إلى ذلك، ضع في اعتبارك تغيير منفذ SSH الافتراضي إلى رقم عالي غير قياسي لتقليل الضوضاء الناتجة عن الماسحات الآلية.
التحكم في الوصول المستند إلى السياق: SELinux وAppArmor
عند استغلال ثغرة في تطبيق مثل Apache أو Nginx، غالبًا ما يحصل المهاجم على امتيازات تلك الخدمة. تمنع أنظمة التحكم في الوصول الإلزامي (MAC) مثل SELinux (المستند إلى Red Hat) وAppArmor (المستند إلى Debian) ذلك عن طريق حصر البرامج في مجموعة محدودة من الموارد.
يعمل SELinux في ثلاثة أوضاع: الإنفاذ (Enforcing)، والسماح (Permissive)، والمعطل (Disabled). لا تقم بتشغيل SELinux في الوضع المعطل إذا كنت تريد أمانًا حقيقيًا. في وضع الإنفاذ، يقوم بحظر الوصول غير المصر به بنشاط. للمطورين القلقين بشأن تصحيح الأخطاء، يمكن لأدوات مثل audit2allow المساعدة في إنشاء وحدات سياسة للإجراءات المشروعة التي تم تصنيفها بشكل خاطئ.
# Check current status
sestatus
# View denied access logs
sudo ausearch -m avc -ts recent
بينما يُعد AppArmor أسهل في التكوين بشكل عام، فإن SELinux يوفر تحكمًا أدق. اختر النظام الذي يتوافق مع توزيعتك وخبرة فريقك، ولكن تأكد من أنه نشط.
الحدود الشبكية: جدران الحماية ومنع التسلل
يعمل جدار الحماية الخاص بك كحارس البوابة. سواء كنت تستخدم iptables أو nftables أو أداة ذات مستوى أعلى مثل ufw (جدار الحماية غير المعقد)، فإن المبدأ يبقى نفسه: السماح فقط بما هو ضروري في القائمة البيضاء. احظر جميع حركة المرور الواردة افتراضيًا واسمح فقط بالمنافذ 22 (SSH)، و80 (HTTP)، و443 (HTTPS).
ومع ذلك، حتى جدار الحماية المكون جيدًا لا يمكنه إيقاف طلب صالح من فاعل ضار يستخدم كلمة مرور ضعيفة. هنا يأتي دور Fail2ban. يقوم Fail2ban بمراقبة ملفات السجل بحثًا عن محاولات تسجيل دخول فاشلة متكررة ويحظر عناوين IP المخالفة مؤقتًا. إنه أداة أساسية للتخفيف من هجمات القوة الغاشمة.
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo fail2ban-client status sshd
الرؤية والامتثال: التدقيق
لا يمكنك تأمين ما لا يمكنك رؤيته. يوفر إطار تدقيق Linux طريقة قوية لمراقبة مكالمات النظام، والوصول إلى الملفات، وأوامر المستخدم. من خلال تكوين قواعد التدقيق، يمكنك اكتشاف الشذوذ، مثل محاولة عملية خادم الويب الكتابة في /etc/passwd.
ركّز جهود التدقيق الخاصة بك على الدلائل الحرجة مثل /etc، و/var/log، و/root. تأكد من إرسال سجلات التدقيق إلى خادم تسجيل مركزي لمنع المهاجمين من العبث بالسجلات المحلية إذا حصلوا على الوصول.
تشديد النظام: الطبقة النهائية
أخيرًا، نفذ ممارسات تشديد النظام العامة. يتضمن ذلك الحفاظ على تحديث نواة النظام والحزم، وإزالة الخدمات غير الضرورية، وإنشاء سياسات كلمات مرور قوية عبر passwd وتكوينات PAM. راجح حسابات المستخدمين بانتظام للتأكد من عدم وجود امتيازات راكدة أو مفرطة.
الخاتمة
أمن الخادم ليس إعدادًا لمرة واحدة؛ إنه عملية مستمرة. من خلال الجمع بين تشديد SSH، وأنظمة MAC مثل SELinux، وقواعد جدار الحماية الصارمة، ومنع التسلل الآلي باستخدام Fail2ban، والتدقيق الشامل، فإنك تخلق بيئة مرنة يمكنها الصمود أمام الهجمات الشائعة والمتطورة على حد سواء. عامل خادم لينك الخاص بك بالاحترام الذي يستحقه، وسيتبع تطبيقك ذلك.