إن AppArmor هو وحدة حماية في لينُكس تقيّد وصول البرامج المختلفة إلى قائمة بالملفات التابعة لها والإمكانيات المذكورة في مسودة posix 1003.le.
إن AppArmor مثبَّت ومفعَّل افتراضيًا، ويستخدم «ملفات ضبط» (profiles) للتطبيقات لتحديد أيّة ملفات وأذونات يتطلبها التطبيق، بعض الحزم تُثبِّت ملفات الضبط الخاصة بها، ويمكن العثور على ملفات ضبط إضافية في حزمة apparmor-profiles.
أدخل الأمر الآتي في الطرفية لتثبيت حزمة apparmor-profiles:
sudo apt-get install apparmor-profiles
لملفات ضبط AppArmor نمطين من التنفيذ:
- البناء أو التعلم (Complaining/Learning): من المسموح تجاوز ملف الضبط وستُسجَّل تلك التجاوزات؛ يفيد هذا النمط في اختبار وتطوير ملفات ضبط جديدة.
- الإجبار أو التقييد (Enforced/Confined): إجبار السياسة في ملفات الضبط، وتسجيل التجاوزات أيضًا.
استخدام AppArmor
تنويه: هذا القسم معلول بعلِّة1، فللأسف لن تعمل الأوامر التي فيه كما يجب.
تحتوي حزمة apparmor-utils على أدوات سطر أوامر تمكِّنك من تغيير نمط تنفيذ AppArmor، أو معرفة حالة ملف ضبط، أو إنشاء ملفات جديدة ...إلخ.
يُستخدَم الأمر apparmor_status لعرض حالة ملفات ضبط AppArmor.
sudo apparmor_status
يضع الأمر aa-complain ملفَ ضبطٍ قيدَ البناء:
sudo aa-complain /path/to/bin
الأمر aa-enforce يضعُ ملفَ ضبطٍ قيدَ التنفيذ:
sudo aa-enforce /path/to/bin
المجلد /etc/apparmor.d هو مكان تواجد ملفات ضبط AppArmor؛ يمكن أن يُستخدَم لتعديل «نمط» جميع ملفات الضبط.
أدخِل ما يلي لوضع كل الملفات في نمط البناء:
sudo aa-complain /etc/apparmor.d/*
لوضع جميع الملفات قيد التنفيذ:
sudo aa-enforce /etc/apparmor.d/*
يُستخدَم الأمر apparmor_parser لتحميل ملف ضبط إلى النواة، ويمكن أن يُستخدَم لإعادة تحميل ملف ضبط مُحمَّل مسبقًا باستخدام الخيار -r؛ لتحميل ملف ضبط:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
ولإعادة تحميل ملف ضبط محمَّل مسبقًا:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
يمكن استخدام service apparmor لإعادة تحميل كل ملفات الضبط:
sudo service apparmor reload
يمكن استخدام المجلد /etc/apparmor.d/disable مع الخيار apparmor_parser -R لتعطيل ملف ضبط:
sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/profile.name
لإعادة تفعيل ملف ضبط معطَّل، احذف الوصلة الرمزية إلى الملف في /etc/apparmor.d/disable ثم أعد تحميل ملف الضبط باستخدام الخيار -a:
sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
يمكن تعطيل AppArmor، وسيزال تحميل وحدة النواة بإدخال ما يلي:
sudo service apparmor stop sudo update-rc.d -f apparmor remove
لإعادة تفعيل AppArmor، أدخِل:
sudo service apparmor start sudo update-rc.d apparmor defaults
ملاحظة: استبدل profile.name باسم ملف الضبط الذي تريد تعديله، أيضًا استبدل /path/to/bin بمسار الملف التنفيذي الحقيقي؛ على سبيل المثال، للأمر ping استخدم /bin/ping.
ملفات الضبط
ملفات الضبط (profiles) هي ملفات نصية بسيطة موجودة في /etc/apparmor.d/؛ هذه الملفات مسماةٌ وفقًا للمسار الكامل للملف التنفيذي الذي تضبطه لكن مع إبدال «/» بنقطة «.»؛ على سبيل المثال، /etc/apparmor.d/bin.ping هو ملف ضبط AppArmor للأمر /bin/ping.
هنالك نوعان رئيسيان من القواعد المستخدمة في ملفات الضبط:
- قيود المسار (Path entries): التي تحدد الملفات التي يمكن للتطبيق الوصول إليها في نظام الملفات.
- قيود الإمكانيات (Capability entries): تحدد الامتيازات التي يُسمَح لعملية مقيدة بإجرائها.
ألقِ نظرةً على /etc/apparmor.d/bin.ping كمثال:
#include <tunables/global> /bin/ping flags=(complain) { #include <abstractions/base> #include <abstractions/consoles> #include <abstractions/nameservice> capability net_raw, capability setuid, network inet raw, /bin/ping mixr, /etc/modules.conf r, }
- #include <tunables/global>: تضمين تعبيرات من ملفات أخرى، وهذا يسمح للعبارات المشتركة بين عدّة تطبيقات بالتواجد في ملف مشترك.
- (/bin/ping flags=(complain: المسار إلى التطبيق صاحب ملف الضبط، وضبط النمط إلى complain.
- capability net_raw,: السماح للتطبيق بالوصول إلى امتياز CAP_NET_RAW Posix.le.
- /bin/ping mixr,: السماح للتطبيق بوصول القراءة والتنفيذ إلى الملف.
ملاحظة: يجب إعادة تحميل ملف الضبط بعد تعديله، راجع القسم «استخدام AppArmor» للتفاصيل.
إنشاء ملف ضبط
1. صمم خطة اختبار: فكر كيف يمكن «تمرين» التطبيق؛ يجب أن تُقسَّم خطة الاختبار إلى حالات اختبار صغيرة، وكل حالة اختبار لها شرح صغير وقائمة بالخطوات التي يجب اتباعها.
بعض حالات الاختبار القياسية هي:
- بدء تشغيل البرنامج.
- إيقاف البرنامج.
- إعادة تحميل البرنامج.
- اختبار جميع الأوامر المدعومة من سكربت init.
2. توليد ملف الضبط الجديد: استخدم aa-genprof لتوليد ملف ضبط جديد؛ من الطرفية:
sudo aa-genprof exectable
على سبيل المثال:
sudo aa-genprof slapd
3. لكي يُضمَّن ملف الضبط الجديد الخاص بك في حزمة apparmor-profiles، فبلِّغ عن علة في Lanuchpad2 عن حزمة AppArmor:
- ضمِّن خطة الاختبار وحالات الاختبار.
- أضف ملف الضبط الجديد إلى العلة.
تحديث ملفات الضبط
عندما لا يعمل برنامج ما كما يجب؛ فافحص الرسائل التي تُرسَل إلى ملفات السجل؛ يمكن أن يُستخدَم البرنامج aa-logprof لفحص ملفات السجل لرسائل التدقيق الخاصة ببرنامج AppArmor؛ راجعها وحدِّث ملفات الضبط.
sudo aa-logprof
مصادر
- راجع «AppArmor Administraion Guide» لإعدادات الضبط المتقدمة.
- للتفاصيل حول استخدام AppArmor مع إصدارات أخرى من أوبنتو، فراجع صفحة ويكي المجتمع حول AppArmor.
- صفحة «OpenSUSE AppArmor» هي تقديم آخر إلى AppArmor.
- مكان رائع للسؤال حول المساعدة في AppArmor، والاندماج مع مجتمع خواديم أوبنتو هو قناة #ubuntu-server على خادوم Freenode (شبكة IRC).
ترجمة -وبتصرف- للمقال Ubuntu Server Guide: AppArmor.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.