ProHoster > بلوق > إدارة > ورقة الغش الخاصة بـ SELinux لمسؤولي النظام: 42 إجابة على الأسئلة المهمة
ورقة الغش الخاصة بـ SELinux لمسؤولي النظام: 42 إجابة على الأسئلة المهمة
تم إعداد ترجمة المقال خصيصًا لطلاب الدورة "مسؤول Linux".
هنا سوف تحصل على إجابات لأسئلة مهمة حول الحياة والكون وكل شيء في Linux مع تحسين الأمان.
"الحقيقة المهمة وهي أن الأشياء ليست دائمًا كما تبدو هي معرفة عامة..."
-دوجلاس آدمز، دليل المسافر إلى المجرة
أمان. زيادة الموثوقية. مراسلة. سياسة. أربعة فرسان من نهاية العالم مسؤول النظام. بالإضافة إلى مهامنا اليومية - المراقبة والنسخ الاحتياطي والتنفيذ والتكوين والتحديث وما إلى ذلك - فإننا مسؤولون أيضًا عن أمان أنظمتنا. حتى تلك الأنظمة التي يوصي فيها موفر الطرف الثالث بتعطيل الأمان المحسن. يبدو الأمر وكأنه عمل إيثان هانت من "المهمة: مستحيلة".
في مواجهة هذه المعضلة، يقرر بعض مسؤولي النظام اتخاذها الحبة الزرقاءلأنهم يعتقدون أنهم لن يعرفوا أبدًا إجابة السؤال الكبير المتعلق بالحياة والكون وكل ذلك. وكما نعلم جميعًا، فإن الإجابة هي 42.
انطلاقًا من روح دليل المسافر إلى المجرة، إليك 42 إجابة على الأسئلة المهمة حول التحكم والاستخدام. SELinux على أنظمتك.
1. SELinux هو نظام للتحكم في الوصول القسري، مما يعني أن كل عملية لها علامة. يحتوي كل ملف ودليل وكائن نظام أيضًا على تسميات. تتحكم قواعد السياسة في الوصول بين العمليات والكائنات ذات العلامات. تقوم النواة بفرض هذه القواعد.
2. وأهم مفهومين هما: التعبير - — العلامات (الملفات والعمليات والمنافذ وما إلى ذلك) و نوع الإنفاذ (الذي يعزل العمليات عن بعضها البعض بناءً على الأنواع).
3. تنسيق التسمية الصحيح user:role:type:level (اختياري).
4. الغرض من توفير الأمان متعدد المستويات (أمان متعدد المستويات - MLS) هو إدارة العمليات (المجالات) بناءً على مستوى أمان البيانات التي سيستخدمونها. على سبيل المثال، لا يمكن للعملية السرية قراءة البيانات السرية للغاية.
5. ضمان أمان متعدد الفئات (أمان متعدد الفئات - MCS) يحمي العمليات المتشابهة من بعضها البعض (على سبيل المثال، الأجهزة الافتراضية، ومحركات OpenShift، وصناديق الحماية SELinux، والحاويات، وما إلى ذلك).
6. خيارات Kernel لتغيير أوضاع SELinux عند التمهيد:
autorelabel=1 → يتسبب في تشغيل النظام لإعادة التسمية
selinux=0 → النواة لا تقوم بتحميل البنية التحتية لـ SELinux
enforcing=0 → التحميل في الوضع المسموح به
7. إذا كنت بحاجة إلى إعادة تسمية النظام بأكمله:
# touch /.autorelabel
#reboot
إذا كانت علامة النظام تحتوي على عدد كبير من الأخطاء، فقد تحتاج إلى التشغيل في الوضع المسموح حتى تنجح عملية التسجيل.
12 كيف يعمل سيلينوكس؟ فيما يلي مثال لوضع علامة على خادم الويب Apache:
التمثيل الثنائي: /usr/sbin/httpd→httpd_exec_t
دليل التكوين: /etc/httpd→httpd_config_t
دليل ملف السجل: /var/log/httpd → httpd_log_t
دليل المحتوى: /var/www/html → httpd_sys_content_t
إطلاق البرنامج النصي: /usr/lib/systemd/system/httpd.service → httpd_unit_file_d
عملية: /usr/sbin/httpd -DFOREGROUND → httpd_t
الموانئ: 80/tcp, 443/tcp → httpd_t, http_port_t
العملية قيد التشغيل في السياق httpd_t، يمكنه التفاعل مع كائن مسمى httpd_something_t.
13 تقبل العديد من الأوامر الوسيطة -Z لعرض وإنشاء وتغيير السياق:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
يتم إنشاء السياقات عندما يتم إنشاء الملفات بناءً على سياق الدليل الأصلي الخاص بها (مع بعض الاستثناءات). يمكن لـ RPMs إنشاء سياقات أثناء التثبيت.
14 هناك أربعة أسباب رئيسية لأخطاء SELinux، والتي تم وصفها بمزيد من التفصيل في النقاط 15-21 أدناه:
قضايا الملصقات
بسبب شيء يحتاج SELinux إلى معرفته
خطأ في سياسة/تطبيق SELinux
قد تتعرض معلوماتك للخطر
15مشكلة وضع العلامات: إذا كانت ملفاتك موجودة /srv/myweb تم وضع علامة بشكل غير صحيح، قد يتم رفض الوصول. فيما يلي بعض الطرق لإصلاح هذا:
إذا كنت تعرف التسمية: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
إذا كنت تعرف ملفًا به علامات مكافئة: # semanage fcontext -a -e /srv/myweb /var/www
استعادة السياق (في كلتا الحالتين): # restorecon -vR /srv/myweb
16مشكلة التسمية: إذا قمت بنقل الملف بدلاً من نسخه، فسيحتفظ الملف بسياقه الأصلي. لإصلاح هذه المشكلة:
قم بتغيير أمر السياق بالتسمية: # chcon -t httpd_system_content_t /var/www/html/index.html
قم بتغيير أمر السياق باستخدام تسمية الارتباط: # chcon --reference /var/www/html/ /var/www/html/index.html
استعادة السياق (في كلتا الحالتين): # restorecon -vR /var/www/html/
17 إذا SELinux تحتاج إلى معرفتهأن HTTPD يستمع على المنفذ 8585، أخبر SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18SELinux تحتاج إلى معرفته القيم المنطقية التي تسمح بتغيير أجزاء من سياسة SELinux في وقت التشغيل دون معرفة استبدال سياسة SELinux. على سبيل المثال، إذا كنت تريد من httpd إرسال بريد إلكتروني، فأدخل: # setsebool -P httpd_can_sendmail 1
19SELinux تحتاج إلى معرفته القيم المنطقية لتمكين/تعطيل إعدادات SELinux:
لرؤية كافة القيم المنطقية: # getsebool -a
لمشاهدة وصف كل منها: # semanage boolean -l
لتعيين قيمة منطقية: # setsebool [_boolean_] [1|0]
للتثبيت الدائم، أضف -P. على سبيل المثال: # setsebool httpd_enable_ftp_server 1 -P
20 قد تحتوي سياسات/تطبيقات SELinux على أخطاء، بما في ذلك:
مسارات التعليمات البرمجية غير عادية
التكوينات
إعادة توجيه stdout
تسرب واصف الملف
الذاكرة القابلة للتنفيذ
مكتبات سيئة البناء
التذاكر المفتوحة (لا تقدم تقريرًا إلى Bugzilla؛ Bugzilla ليس لديها اتفاقية مستوى الخدمة).
21قد تتعرض معلوماتك للخطرإذا كان لديك مجالات مقيدة تحاول:
25 في حالة حدوث خطأ SELinux، استخدم السجل setroubleshoot تقديم العديد من الحلول الممكنة.
على سبيل المثال ، من journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26 التسجيل: يقوم SELinux بتسجيل المعلومات في العديد من الأماكن: