تأمين ملفات لينكس حتى ضد root باستخدام chattr

نظرة عامة

توفر بيئة لينكس آليات حماية متقدمة تتجاوز صلاحيات المستخدم الخارق (root)، وتأتي أداة chattr في مقدمة هذه الوسائل لتأمين البنية التحتية والملفات الحساسة ضد الحذف أو التعديل العرضي والمتعمد. يستعرض هذا الدليل التطبيقي كيفية قراءة سمات نظام الملفات الموسعة عبر lsattr، وضبط الحماية الصارمة باستخدام سمة عدم التغيير (+i) وسمة الإلحاق الحصري (+a) لضمان سلامة الإعدادات وسجلات النظام.

استعراض خصائص الملفات الموسعة عبر أداة lsattr

نستهل بيئة الاختبار بإنشاء مجلد مخصص للتجارب الميدانية والانتقال الفوري إليه عبر تنفيذ الأمر mkdir -p ~/chattr_demo && cd ~/chattr_demo:

إنشاء مسار العمل والانتقال إليه

نقوم بعد ذلك بإنشاء ملف تكوين تجريبي لاختبار تعديل وقراءة السمات الموسعة بواسطة الأمر touch secure_config.conf:

إنشاء ملف تكوين تجريبي

تُستخدم أداة lsattr لإظهار السمات المتقدمة المرتبطة بنظام ملفات لينكس لكل ملف أو دليل.
توضح السمة الافتراضية e في المخرجات أن الملف يعتمد ميزة النطاقات (extents) لإدارة تخطيط كتل البيانات على القرص بكفاءة عالية.
⚙️ [الخيارات التشغيلية الهامة]

-a : عرض السمات لكافة المحتويات داخل المجلد بما في ذلك الملفات المخفية التي تبدأ بنقطة (.).
-d : فحص خصائص المجلد نفسه عوضاً عن سرد سمات الملفات التي يحتويها.
-R : استعراض السمات لجميع المجلدات الفرعية والملفات المتفرعة عنها بشكل تكراري.
-v : إظهار رقم إصدار الملف (generation number) بجانب خصائصه.

فحص الخصائص المبدئية بواسطة lsattr

قفل الملفات ومنع حذفها بالكامل باستخدام الخيار (+i)

لمنح الملف وضعية الحصانة المطلقة (immutable)، نمرر السمة عبر الأمر sudo chattr +i ~/chattr_demo/secure_config.conf.
بمجرد تفعيل السمة +i، يتم إحباط أي محاولة لتعديل المحتوى، أو حذفه، أو إعادة تسميته، أو ربطه بروابط صلبة، حتى لو صدرت العملية من مدير النظام root شخصياً.

تعيين خاصية عدم التغيير للملف

للتحقق من إسناد خاصية الأمان الموسعة بشكل سليم، ننفذ الأمر lsattr ~/chattr_demo/secure_config.conf.
يؤكد ظهور الحرف i في سطر البيانات أن الملف بات في حالة غير قابلة للتغيير ومحمياً بالكامل.

التأكد من ظهور سمة الحماية i

لاختبار صمود الملف وفاعلية القفل، نقوم بمحاولة إزالة قسرية عبر الأمر rm -f ~/chattr_demo/secure_config.conf.
يرفض النظام مسح الملف تماماً رغم تمرير راية الإجبار (-f)، ويظل المستند ثابتاً في مكانه دون مساس.

محاولة فاشلة لحذف الملف المحمي

إلغاء حظر التعديل واستئناف التحرير القياسي عبر (-i)

عند الرغبة في تحديث الملف المحمي، نرفع الحصانة السابقة بتنفيذ sudo chattr -i ~/chattr_demo/secure_config.conf.
يؤدي استخدام المعامل -i إلى تجريد الملف من قفل الحصانة، معيداً إياه إلى وضعه الاعتيادي القابل للكتابة والمحو.

تعطيل سمة الحصانة عن الملف

نتحقق مجدداً من بنية الخصائص عبر الأمر lsattr ~/chattr_demo/secure_config.conf.
يشير غياب الرمز i من قائمة الحروف المعروضة إلى نجاح إلغاء قيد الأمان.

فحص خلو الملف من علامة الحصانة

للتأكد من استعادة صلاحية الكتابة، نضيف سطراً برمجياً جديداً للملف بواسطة echo 'server_port=8080' >> ~/chattr_demo/secure_config.conf.

إضافة بيانات تهيئة جديدة للملف

نستعرض المحتوى الحالي للملف باستخدام الأمر cat ~/chattr_demo/secure_config.conf للتأكد من حفظ التعديل.
تُظهر شاشة الطرفية قيمة المنفذ المضافة، مما يبرهن على سير عمليات التحرير بسلاسة دون عراقيل.

معاينة محتوى الملف المحدث

وضع الإلحاق فقط لحماية السجلات من التحريف (+a)

نبدأ أولاً بإنشاء ملف لمتابعة أحداث النظام والتدقيق الأمني عن طريق تنفيذ touch ~/chattr_demo/app_audit.log:

توليد ملف لسجلات التدقيق

لمنع تعديل السجلات السابقة أو حذف محتواها مع إبقاء إمكانية كتابة بيانات جديدة في نهاية الملف، نطبق السمة عبر sudo chattr +a ~/chattr_demo/app_audit.log.
يمنع النمط +a عمليات الكتابة فوق السطور القديمة أو اقتطاع الملف، موفراً حماية حاسمة ضد تزييف مسارات التدقيق الأمني.

تطبيق وضع الإلحاق الحصري للسجل

نلقي نظرة على خصائص ملف السجل بتنفيذ lsattr ~/chattr_demo/app_audit.log.
يدل وجود الحرف a ضمن النتائج على أن وضع الإلحاق فقط (append-only) يعمل بفاعلية.

التأكد من تفعيل سمة الإلحاق a

نختبر قدرة التطبيقات على إرسال بيانات جديدة لنهاية الملف بتمرير إدخال تجريبي عبر echo 'Audit Event: System initialized' >> ~/chattr_demo/app_audit.log.
تنجح عمليات الإلحاق المعتمدة على الرمز >> بسلاسة تامة في ظل تواجد السمة +a.

إلحاق سطر تدقيق إضافي

نتفقد محتوى السجل المتراكم من خلال تشغيل الأمر cat ~/chattr_demo/app_audit.log.
يظهر الحدث المسجل بصورة صحيحة في السطر الأخير، مؤكداً تكامل عمليات التسجيل المستمر مع استمرار منع التعديل والتفريغ.

الاطلاع على مدخلات السجل بعد الإلحاق

تطبيق سمات الحماية الشاملة على المجلدات فرعياً (-R)

للتدريب على تأمين الهياكل الدليلية المعقدة دفعة واحدة، ننشئ مجلداً يضم عدة ملفات ضبط تجريبية عبر الأمر mkdir -p ~/chattr_demo/protected_dir && touch ~/chattr_demo/protected_dir/config1.txt ~/chattr_demo/protected_dir/config2.txt:

تجهيز مجلد ومجموعة ملفات فرعية

نقوم بقفل الدليل الرئيسي وكافة عناصره الداخلية تكرارياً بتطبيق الأمر sudo chattr -R +i ~/chattr_demo/protected_dir.
تضمن الراية -R سريان سمة الحصانة (+i) بصورة هرمية تشمل الدليل وكل ما يقع في نطاقه من ملفات ومجلدات فرعية.

تطبيق سمة الحصانة الشاملة تكرارياً

لمعاينة أثر التطبيق التكراري على المحتويات الداخلية، ننفذ الأمر lsattr ~/chattr_demo/protected_dir.
يوضح الخرج حصول كافة الملفات الفرعية على السمة i، مما يعني قفل المجموعة كاملة بنجاح.

مراجعة سمات الملفات الفرعية

ولإعادة المسار إلى وضعه المرن عند الحاجة للصيانة أو الحذف، نزيل القيود جماعياً بتنفيذ sudo chattr -R -i ~/chattr_demo/protected_dir.
تُسقط التركيبة -R -i شارات الحماية عن المسار ومفرزاته بضربة واحدة، مستعيدة القدرة على تنظيم وتعديل الملفات حسب متطلبات الإدارة.

رفع الحماية الشاملة عن كامل الهيكل التكراري

استعرضنا معاً عبر هذه الخطوات العملية قوة أداة chattr في فرض قيود حماية صارمة تعجز صلاحيات root الافتراضية عن تجاوزها.
يُنصح باعتماد هذه الخصائص المتقدمة على ملفات التكوين الحيوية وقواعد السجلات لتفادي الأخطاء البشرية القاتلة والحد من أخطار التسلل البرمجي داخل بيئات الإنتاج.