ضمان أمن الخادم هو عنصر حاسم في إدارة الخادم، ولكن المشاريع الأصغر أو الشخصية قد تعرض للخطر بعض جوانب الأمان. في مجال توزيعات Linux، لدى العديد منها بالفعل بروتوكولات أمان قوية. من بينها، CentOS 7 و RHEL معروفان على نطاق واسع على أنهما أكثر خيارات الأمان التي يمكن الاعتماد عليها عبر Linux، وذلك بفضل حماية SELinux الأمنية متعددة المستويات.
وعلى الرغم من فوائد التدابير الأمنية المفرطة، فإنها قد تعرقل أحيانا الأنشطة اليومية والمجتمعية. لذلك، قد يصبح تعطيل بعض التدابير ضروريًا. يهدف هذا المنشور إلى إرشادك حول كيفية تعطيل SELinux في CentOS 7/8 و RHEL.
ما هو SELinux ?
SELinux هي ميزة تحكم أمني مثبتة على نظامك، والتي تقيد الوصول إلى وحدات Kernel المحددة. افتراضيًا، يتضمن CentOS 7 و RHEL هذه الميزة لتوفير طبقة إضافية من الأمان للنظام. ومع ذلك، يمكن لتوزيعات Linux الأخرى، مثل Debian، تنفيذها أيضًا.
تعمل SELinux من خلال سياسات محددة، تُعرف باسم «القواعد»، والتي تسمح أو تقيد استخدام تطبيقات معينة لمكونات النظام الحيوية. ويمكن أن يشكل وضع هذه السياسات مهمة صعبة.
لدى SELinux ثلاث حالات متميزة:
- ترفض حالة Enforcing أي وصول غير مصرح به، ويشار إلى تمكين هذه الحالة على أنها تمكين SELinux.
- في حالة Permissive، يقوم SELinux بإنشاء تحذيرات. على عكس حالة “Enforcing” ، يسمح بالوصول غير المصرح به ، ولكن يتم عرض تحذير.
- تعني حالة Disable إيقاف تشغيل ميزة SELinux، والسماح بالوصول إليها دون تحذيرات.
بعد أن تعلمنا كيفية عمل SELinux، يمكننا الآن تحديد ما إذا كان الأمر يستحق التعطيل.
تعطيل SELinux
هناك طريقتان لتعطيل SELinux: مؤقتًا أو دائمًا. لكل طريقة مزاياها الخاصة. إن تعطيله مؤقتًا يمكننا من اختبار النظام دون المساس بأمنه. عند إعادة تشغيل النظام، سيتم إعادة تنشيط SELinux تلقائيًا.
على العكس من ذلك، يمكن أن يؤدي إلغاء تنشيط SELinux بشكل دائم إلى زيادة الإنتاجية، خاصة للمشاريع الشخصية أو المتوسطة الحجم. من الضروري ملاحظة أن معظم توزيعات Linux لديها سياسات أمنية قوية في هذه المرحلة، لذلك قد يكون هذا النهج ممكنًا.
سيوجهك هذا المنشور إلى كيفية إجراء تعطيل مؤقت ودائم لـ SELinux على CentOS 7/8 و RHEL.
تعطيل SELinux مؤقتًا على CentOS 7/8 و RHEL
للبدء، يجب علينا إنشاء اتصال SSH للوصول إلى الخادم. تنفيذ الأمر التالي لتحقيق ذلك:
$ ssh your-user@your-server
بدلاً من ذلك، إذا كنا نستخدم CentOS على جهاز الكمبيوتر الشخصي لدينا، فيمكننا فتح المحطة.
بعد ذلك، يجب علينا التحقق من حالة SELinux، والتي يمكن تحقيقها من خلال تنفيذ الأمر التالي:
$ sestatus
سيُعلمنا الناتج أن SELinux مُمكّن مع حالة Enforcing.
لتعطيل SELinux مؤقتًا، يمكننا تنفيذ الأوامر التالية:
$ su
$ setenforce 0
يجب علينا بعد ذلك التحقق من حالة SELinux مرة أخرى. سيشير المخرج إلى أن SELinux الآن في وضع Permissive، مما يسمح لنا باستخدام النظام بسهولة.
نظرًا لأن هذه الطريقة تعطل SELinux مؤقتًا، سيتم تطبيق التغييرات تلقائيًا أثناء إعادة التشغيل عند إعادة تنشيط SELinux. الفائدة الرئيسية لهذه الطريقة هي أنها لا تتطلب إعادة تشغيل النظام.
تعطيل SELinux بشكل دائم على CentOS 7/8 و RHEL
من أجل تعطيل SELinux بشكل دائم، سنحتاج إلى تعديل ملف التكوين. للبدء، سنحتاج إلى تثبيت محرر النص “nano” من خلال تنفيذ الأمر التالي:
$ yum install nano
بعد ذلك، يجب علينا تعديل ملف تكوين SELinux.
$ nano /etc/sysconfig/selinux
لتعطيل SELinux بشكل دائم، نحتاج إلى تعديل ملف تكوين SELinux. يحتوي الملف على قيم مختلفة يمكن تخصيصها لـ SELinux، تمثل الحالات المختلفة التي يمكن أن يأخذها. من أجل تعطيله تمامًا، سنحدد قيمة “Disable” على النحو التالي:
SELINUX=disabled
بمجرد الانتهاء من ذلك، نحتاج إلى حفظ الملف بالضغط CTRL + O ثم إغلاقه بـ CTRL + X. لضمان سريان التغييرات، نحتاج إلى إعادة تشغيل النظام ثم التحقق من حالة SELinux من خلال تشغيل الأمر التالي:
$ sestatus
من خلال القيام بذلك، سنكون قد نجحنا في تعطيل SELinux في CentOS 7/8 و RHEL.
إعادة تشغيل SELinux على CentOS
من خلال تشغيل SELinux، يمكنك تعزيز أمان نظامك، لا سيما في السيناريوهات التي يتعرض فيها النظام لبيئات معادية محتملة أو حيث يتم تخزين البيانات الحساسة أو معالجتها. يمكن أن يكون مفيدًا أيضًا في الحالات التي تعمل فيها تطبيقات الطرف الثالث غير الموثوق بها على النظام.
$ sudo setenforce 1
يغير هذا الأمر وضع SELinux إلى «enforcing» على الفور، لكن التغيير لن يستمر عبر عمليات إعادة التشغيل.
لجعل التغيير مستمرًا، قم بتحرير ملف تكوين SELinux /etc/selinux/config
باستخدام محرر نصوص مثل nano
أو vim
.
$ sudo nano /etc/selinux/config
حدد الخط الذي يبدأ بـ SELINUX=
وتغيير قيمتها إلى enforcing
.
SELINUX=enforcing
احفظ التغييرات في الملف وخرج من محرر النص.
بعد إعادة تشغيل نظامك لتصبح التغييرات سارية المفعول.
خلاصة
بينما يوفر SELinux أمانًا ممتازًا لـ CentOS 7/8 و RHEL، قد يجده البعض مزعجًا أو غير مريح. قبل اتخاذ قرار بتعطيل أي ميزة أمان، يجب دائمًا النظر في المخاطر المحتملة.
في هذا المنشور، أوضحنا كيفية تعطيل SELinux مؤقتًا أو دائمًا، اعتمادًا على احتياجاتك.