AUDITCTL(8)

الاسم
auditctl - أداة للمساعدة في التحكم بنظام تدقيق النواة

موجز
auditctl [خيارات]

الوصف
يُستخدم برنامج auditctl لتهيئة خيارات النواة المتعلقة بالتدقيق، لرؤية حالة التهيئة، ولتحميل قواعد التدقيق التقديرية.

خيارات الضبط

-b سجل_الانتظار
    عيّن العدد الأقصى (الحد) لمخازن التدقيق المعلقة المسموح بها (المبدئي للنواة=64). إذا امتلأت جميع المخازن، تستشير النواة علامة الفشل لاتخاذ الإجراء.

--وقت_انتظار_سجل_الانتظار وقت_الانتظار
    عيّن الوقت الذي تنتظره النواة (المبدئي للنواة 60*HZ) عند الوصول إلى حد سجل الانتظار قبل إدراج المزيد من أحداث التدقيق في قائمة الانتظار لنقلها إلى auditd. يجب أن يكون الرقم أكبر من أو يساوي صفر وأقل من 10 أضعاف القيمة المبدئية.

--إعادة_ضبط_وقت_انتظار_سجل_الانتظار_الفعلي
    إعادة تعيين عداد وقت انتظار التراكم الفعلي الذي يظهره أمر الحالة.

-c  متابعة تحميل القواعد على الرغم من وجود خطأ. يلخص هذا نتائج تحميل القواعد. لن يكون رمز الخروج نجاحًا إذا فشلت أي قاعدة في التحميل.

-D  حذف جميع القواعد والمراقبات. يمكن لهذا أن يقبل خيار مفتاح (-k) أيضًا.

-e [0..2]
    تعيين علامة التفعيل. عند تمرير 0، يمكن استخدام هذا لتعطيل التدقيق مؤقتًا. عند تمرير 1 كوسيطة، فإنه يُفعّل التدقيق. لقفل تكوين التدقيق بحيث لا يمكن تغييره، مرر 2 كوسيطة. يهدف قفل التكوين إلى أن يكون الأمر الأخير في audit.rules لأي شخص يرغب في تنشيط هذه الميزة. تُدقق وتُرفض أي محاولة لتغيير التكوين في هذا الوضع. لا يمكن تغيير التكوين إلا بإعادة تشغيل الجهاز.

-f [0..2]
    تعيين وضع الفشل 0=صامت 1=printk 2=هلع. يتيح لك هذا الخيار تحديد كيفية تعامل النواة مع الأخطاء الحرجة. تشمل أمثلة الظروف التي قد يؤثر فيها هذا الوضع: أخطاء الإرسال إلى خفي تدقيق مساحة المستخدم، تجاوز حد التراكم، نفاد ذاكرة النواة، وتجاوز حد المعدل. القيمة المبدئية هي 1. قد ترغب البيئات الآمنة في تعيين هذا إلى 2.

-h, --help
    Help

-i  عند تقديمه بمفرده، يتجاهل الأخطاء عند قراءة القواعد من ملف. هذا يجعل auditctl يُعيد دائمًا رمز خروج نجاح. إذا مُرر كوسيطة إلى -s، فإنه يُعطي تفسيرًا للأرقام بكلمات قابلة للقراءة البشرية إن أمكن.

--loginuid-immutable
    يخبر هذا الخيار النواة بجعل معرفات تسجيل الدخول (loginuids) غير قابلة للتغيير بمجرد تعيينها. يتطلب تغيير معرفات تسجيل الدخول صلاحية CAP_AUDIT_CONTROL. لذا، ليس شيئًا يمكن للمستخدمين غير المتميزين فعله. يجعل تعيين هذا معرف تسجيل الدخول (loginuid) مقاومًا للتلاعب، ولكنه قد يسبب بعض المشاكل في أنواع معينة من الحاويات.

-q mount-point,subtree
    إذا كان لديك مراقبة دليل موجودة وقمت بربط أو نقل نقطة تحميل شجرة فرعية أخرى داخل الشجرة الفرعية المراقبة، تحتاج إلى إخبار النواة بجعل الشجرة الفرعية التي يجري تحميلها مكافئة للدليل الذي يجري مراقبته. إذا كانت الشجرة الفرعية مُحمّلة بالفعل وقت إصدار أمر مراقبة الدليل، توسَم الشجرة الفرعية آليًا للمراقبة. يرجى ملاحظة الفاصلة التي تفصل بين القيمتين. يؤدي حذفها إلى حدوث أخطاء.

-r rate
    عيّن الحد الأقصى للرسائل/ثانية (0=بلا). إذا كان هذا المعدل غير صفري وتجاوزه، تستشير النواة علامة الفشل لاتخاذ إجراء. القيمة المبدئية هي 0.

--reset-lost
    أعد ضبط عداد السجلات المفقودة الذي يعرضه أمر الحالة.

-R file
    اقرأ أوامر auditctl ونفذها من ملف. تُنفذ الأوامر سطرًا بسطر، بالترتيب الذي تظهر به في الملف. يجب أن يكون الملف مملوكًا للمستخدم الجذر وغير قابل للقراءة من قبل المستخدمين الآخرين، وإلا فإنه يُرفض. تُتخطى الأسطر الفارغة. تُعامل الأسطر التي تبدأ بالحرف '#' على أنها أسطر تعليق. يُنفذ كل سطر كما لو قُدِّم إلى auditctl كوسائط سطر أوامر. نظرًا لأن auditctl هو من يقرأ الملف وليس صدفة (shell) مثل bash، فلا تُهرّب أحرف الصدفة الخاصة. انظر قسم الأمثلة للحصول على مثال.

--signal signal
    أرسل إشارة إلى خفيّ التدقيق. يجب أن تمتلك صلاحيات لفعل ذلك. الإشارات المدعومة هي TERM, HUP, USR1, USR2, CONT والإصدارات سهلة الاستخدام هي stop, reload, rotate, resume, state.

-t  اقتطع الأشجار الفرعية بعد أمر التحميل.

خيارات الحالة

-l  اِعرض جميع القواعد، 1 لكل سطر. يمكن إعطاء خيارين إضافيين لهذا الأمر. يمكنك إعطاء إما خيار مفتاح (-k) لسرد القواعد التي تطابق مفتاحًا أو (-i) لتفسير a0 حتى a3 للمساعدة في تحديد ما إذا كانت قيم وسائط استدعاء النظام صحيحة.

-m text
    أرسل رسالة مساحة المستخدم إلى نظام التدقيق. يمكن فعل هذا فقط إذا كانت لديك صلاحية CAP_AUDIT_WRITE (عادةً ما يمتلكها المستخدم الجذر). سيكون الحدث الناتج من نوع USER.

-s  أبلغ عن حالة النظام الفرعي للتدقيق في النواة. يخبرك بالقيم داخل النواة التي يمكن تعيينها بواسطة الخيارات -e، -f، -r، و -b. قيمة pid هي رقم عملية خفيّ التدقيق. لاحظ أن قيمة pid تساوي 0 تشير إلى أن خفيّ التدقيق لا يعمل. يخبرك حقل "lost" بعدد سجلات الأحداث التي هُجرت بسبب فيضان قائمة انتظار التدقيق في النواة. يخبرك حقل "backlog" بعدد سجلات الأحداث المُدرجة حاليًا في قائمة الانتظار، بانتظار أن يقرأها auditd. يمكن أن يتبع هذا الخيار -i للحصول على تفسير لبعض الحقول.

-v  اطبع إصدار auditctl.

خيارات القواعد

-a [list,action|action,list]
    أضف القاعدة إلى نهاية list بالإجراء action. يرجى ملاحظة الفاصلة التي تفصل بين القيمتين. يؤدي حذفها إلى حدوث أخطاء. يمكن أن تكون الحقول بأي ترتيب. يمكن أن تكون list,action أو action,list. يصف ما يلي أسماء list الصالحة:

    مهمة
        أضف قاعدة إلى قائمة المهام الفردية. تُستخدم قائمة القواعد هذه فقط عند إنشاء مهمة -- عندما تستدعي المهمة الأم fork() أو clone(). عند استخدام هذه القائمة، يجب استخدام الحقول المعروفة وقت إنشاء المهمة فقط، مثل uid و gid وما إلى ذلك.

    exit
        أضف قاعدة إلى قائمة إنهاء استدعاء النظام. تُستخدم هذه القائمة عند الخروج من استدعاء نظام لتحديد ما إذا كان ينبغي إنشاء حدث تدقيق.

    user
        أضف قاعدة إلى قائمة تصفية رسائل المستخدم. تُستخدم هذه القائمة بواسطة النواة لتصفية الأحداث الناشئة في مساحة المستخدم قبل ترحيلها إلى خادم التدقيق. يجب ملاحظة أن الحقول الصالحة الوحيدة هي: uid و auid و gid و pid و subj_user و subj_role و subj_type و subj_sen و subj_clr و msgtype واسم الملف التنفيذي. تُعامل جميع الحقول الأخرى على أنها غير مطابقة. يجب فهم أن أي حدث ينشأ من مساحة المستخدم من عملية تملك CAP_AUDIT_WRITE يُسجل في سجل التدقيق. هذا يعني أن الاستخدام الأكثر احتمالاً لهذا الفلتر هو مع القواعد التي لها إجراء "never" (أبدًا) نظرًا لعدم الحاجة إلى فعل أي شيء للسماح بتسجيل الأحداث.

    exclude
        أضف قاعدة إلى قائمة تصفية استبعاد نوع الحدث. تُستخدم هذه القائمة لتصفية الأحداث التي لا ترغب في رؤيتها. على سبيل المثال، إذا كنت لا ترغب في رؤية أي رسائل avc، فإنك تستخدم هذه القائمة لتسجيل ذلك. يمكن استبعاد الأحداث بواسطة معرف العملية، أو معرف المستخدم، أو معرف المجموعة، أو معرف المستخدم المسجل، أو نوع الرسالة، أو سياق الموضوع، أو اسم الملف التنفيذي. يُتجاهل الإجراء ويستخدم القيمة المبدئية "never" (أبدًا).

    نظام ملفات
        أضف قاعدة تُطبق على نظام ملفات كامل. يجب تحديد نظام الملفات بحقل fstype. عادةً، يُستخدم هذا الفلتر لاستبعاد أي أحداث لنظام ملفات كامل مثل tracefs أو debugfs.

    io_uring
        أضف قاعدة إلى فلتر استدعاءات النظام io_uring. تحدد القواعد ضد هذا الفلتر عملية استدعاء النظام باستخدام مفهوم استدعاء النظام -S المشروح أدناه. يمكنك إضافة حقل مفتاح إلى القاعدة لكي تُجمع مع قواعد أخرى تراقب نفس استدعاء النظام الأساسي.

يصف ما يلي الإجراءات الصالحة للقاعدة:

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

    always
        خصص سياق تدقيق، املأه دائمًا وقت دخول استدعاء النظام، واكتب سجلًا دائمًا وقت خروج استدعاء النظام.

-A list,action
    أضف قاعدة إلى بداية list باستخدام action.

-C [f=f | f!=f]
    أنشئ قاعدة مقارنة بين الحقول: حقل، عملية، حقل. يمكنك تمرير مقارنات متعددة في سطر أمر واحد. يجب أن تبدأ كل مقارنة بـ -C. تُربط كل معادلة بين الحقول مع بعضها البعض وكذلك مع المعادلات التي تبدأ بـ -F لتشغيل سجل تدقيق. يُدعم عاملان اثنان: يساوي، ولا يساوي. الحقول الصالحة هي:

    auid, uid, euid, suid, fsuid, obj_uid; and gid, egid, sgid, fsgid, obj_gid

    لا يمكن خلط مجموعتي uid و gid. لكن يمكن إجراء أي مقارنة داخل المجموعة. تُجمع حقول obj_uid/gid من كائن الحدث مثل ملف أو دليل.

-d list,action
    احذف القاعدة من list باستخدام action. تُحذف القاعدة فقط إذا طابقت تمامًا اسم (أسماء) استدعاء النظام وكل اسم حقل وقيمة.

-F [n=v | n!=v | n<v | n>v | n<=v | n>=v | n&v | n&=v]
    أنشئ حقل قاعدة: الاسم، العملية، القيمة. يمكن تمرير ما يصل إلى 64 حقلاً في سطر أوامر واحد. يجب أن يبدأ كل منها بـ -F. تُربط كل معادلة حقل منطقياً (AND) مع الأخرى (وكذلك المعادلات التي تبدأ بـ -C) لتشغيل سجل تدقيق. هناك 8 عوامل تشغيل مدعومة - يساوي، لا يساوي، أصغر من، أكبر من، أصغر من أو يساوي، وأكبر من أو يساوي، وقناع البت، واختبار البت على الترتيب. اختبار البت يربط القيم منطقياً (AND) ويتحقق من تساويها، بينما قناع البت يربط القيم منطقياً (AND) فقط. يمكن للحقول التي تقبل معرف المستخدم أن تحتوي بدلاً من ذلك على اسم المستخدم؛ يحول البرنامج الاسم إلى معرف المستخدم. وينطبق الشيء نفسه على أسماء المجموعات. الحقول الصالحة هي:

    a0, a1, a2, a3
        على الترتيب، أول 4 وسائط لاستدعاء نظام. لاحظ أن وسائط السلسلة النصية غير مدعومة. هذا لأن النواة تمرر مؤشراً إلى السلسلة النصية. تشغيل بناءً على قيمة عنوان مؤشر من غير المرجح أن ينجح. لذلك، عند استخدامه، يجب عليك استخدامه على القيم الرقمية فقط. يُرجح استخدامه على المنصات التي تضخم عمليات المقابس أو الاتصال بين العمليات (IPC).

    arch
        معمارية المعالج (CPU) لاستدعاء النظام. يمكن العثور على المعمارية بتشغيل 'uname -m'. إذا كنت لا تعرف معمارية جهازك ولكنك ترغب في استخدام جدول استدعاءات النظام 32 بت وجهازك يدعم 32 بت، فيمكنك أيضًا استخدام b32 للمعمارية. وينطبق الشيء نفسه على جدول استدعاءات النظام 64 بت، يمكنك استخدام b64. بهذه الطريقة، يمكنك كتابة قواعد مستقلة نوعاً ما عن المعمارية لأن نوع العائلة يُكتشف آلياً. ومع ذلك، يمكن أن تكون استدعاءات النظام خاصة بالمعمارية وما هو متاح على x86_64 قد لا يكون متاحاً على ppc. يجب أن يسبق توجيه المعمارية الخيار -S لكي يعرف auditctl أي جدول داخلي يستخدم للبحث عن أرقام استدعاءات النظام.

    auid
        المعرف الأصلي الذي سجل به المستخدم الدخول. هو اختصار لـ audit uid. يُشار إليه أحياناً باسم loginuid. يمكن استخدام نص حساب المستخدم أو رقمه.

    devmajor
        الرقم الرئيسي للجهاز

    devminor
        رقم الجهاز الثانوي

    dir المسار الكامل للدليل المراد مراقبته. يضع هذا مراقبة متكررة على الدليل وشجرته الفرعية بأكملها. يمكن استخدامه فقط في قائمة الخروج. راجع "-w".

    egid
        معرف المجموعة الفعال. قد يكون رقميًا أو اسم المجموعة.

    euid
        معرف المستخدم الفعال. قد يكون رقميًا أو اسم حساب المستخدم.

    exe المسار المطلق للتطبيق الذي يسري عليه هذا القانون أثناء التنفيذ. يدعم العاملين = و !=. لاحظ أنه يمكن استخدام هذا مرة واحدة فقط لكل قاعدة.

    exit
        قيمة الخروج من استدعاء النظام. إذا كان رمز الخروج خطأً (errno)، يمكنك استخدام التمثيل النصي أيضًا.

    fsgid
        معرف مجموعة نظام الملفات. قد يكون رقميًا أو اسم المجموعة.

    fstype
        نوع نظام الملفات. يستخدم هذا مع قائمة قواعد نظام الملفات. القيم الوحيدة المدعومة هي debugfs و tracefs.

    fsuid
        معرف مستخدم نظام الملفات. قد يكون رقميًا أو اسم حساب المستخدم.

    filetype
        نوع الملف الهدف. يمكن أن يكون إما ملفًا، أو دليلًا، أو مقبسًا، أو رابطًا، أو حرفيًا، أو كتليًا، أو FIFO.

    gid معرف المجموعة. قد يكون رقميًا أو اسم المجموعة.

    inode
        رقم Inode

    key عين مفتاح تصفية لقاعدة تدقيق. مفتاح التصفية هو سلسلة نصية اختيارية يمكن أن يصل طولها إلى 31 بايت. يمكنه تحديد سجلات التدقيق الناتجة عن قاعدة بشكل فريد. الاستخدام النموذجي هو عندما يكون لديك عدة قواعد تلبي متطلبات أمنية معًا. يمكن البحث عن قيمة المفتاح باستخدام ausearch بحيث يمكنك العثور على نتائجه بغض النظر عن القاعدة التي أطلقت الحدث. يمكن استخدام المفتاح أيضًا عند حذف الكل (-D) وسرد القواعد (-l) لتحديد القواعد ذات المفتاح المحدد. قد يكون لديك أكثر من مفتاح واحد في قاعدة إذا رغبت في البحث عن الأحداث المسجلة بطرق متعددة أو إذا كان لديك مكون إضافي لـ auditd يستخدم مفتاحًا للمساعدة في تحليله.

    نوع_الرسالة
        يُستخدم هذا لمطابقة نوع سجل الحدث. يجب استخدامه فقط في قوائم الاستثناء أو قوائم تصفية المستخدم.

    معرف_المستخدم_للكائن
        معرف المستخدم (UID) الخاص بالكائن

    معرف_المجموعة_للكائن
        معرف المجموعة (GID) الخاص بالكائن

    مستخدم_الكائن
        مستخدم SE Linux الخاص بالموارد

    دور_الكائن
        دور SE Linux الخاص بالموارد

    نوع_الكائن
        نوع مورد SE Linux

    مستوى_الكائن_الأدنى
        مستوى مورد SE Linux الأدنى

    مستوى_الكائن_الأعلى
        مستوى مورد SE Linux الأعلى

    المسار
        أدخل مراقبة لكائن نظام الملفات عند المسار. لا يمكنك إدخال مراقبة إلى الدليل ذي المستوى الأعلى. تحظر النواة هذا. لا تدعم أحرف البدل أيضًا وستولد تحذيراً. تعمل المراقبات بتتبع العقدة الداخلية (inode) داخلياً. يمكن استخدام هذا في قائمة الخروج فقط.

    صلاحية
        مصفاة صلاحيات لعمليات الملفات. وفر نوع الوصول الذي ستستجيب له مراقبة نظام الملفات. r=قراءة، w=كتابة، x=تنفيذ، a=تغيير سمة. ليست هذه الصلاحيات صلاحيات الملفات القياسية، بل هي نوع استدعاء النظام (syscall) الذي يقوم بهذا النوع من العمليات. تحذف استدعاءات النظام للقراءة والكتابة من هذه المجموعة لأنها ستغمر السجلات. ولكن بالنسبة لعمليات القراءة أو الكتابة، تفحص علامات الفتح (open flags) لمعرفة الصلاحية المطلوبة. لا يمكن استخدام حقل الصلاحية (perm) إلا في قائمة الخروج. يمكنك استخدام هذا دون تحديد استدعاء نظام، وستختار النواة استدعاءات النظام التي تلبي صلاحيات الوصول المطلوبة. يتطلب هذا أيضًا توفير معلمة البنية (arch) قبل حقل الصلاحية (perm). وبهذه الطريقة، تستطيع النواة تحديد استدعاءات النظام المطلوبة بشكل أفضل. سيؤدي عدم توفير معلمة البنية (arch) إلى إخضاع جميع استدعاءات النظام للتدقيق. سيخفض هذا أداء النظام.

    شخصية
        رقم شخصية نظام التشغيل

    pid معرف العملية

    ppid
        معرف العملية الأب

    saddr_fam
        رقم عائلة العنوان كما هو موجود في /usr/include/bits/socket.h. على سبيل المثال، يكون IPv4 هو 2 وIPv6 هو 10.

    sessionid
        معرف جلسة تسجيل دخول المستخدم

    subj_user
        مستخدم SE Linux للبرنامج

    subj_role
        دور برنامج SE Linux

    subj_type
        نوع برنامج SE Linux

    subj_sen
        حساسية برنامج SE Linux

    subj_clr
        تصريح برنامج SE Linux

    sgid
        معرف المجموعة المحفوظ. انظر صفحة الدليل getresgid(2).

    success
        إذا كانت قيمة الخروج >= 0، فهذا صحيح/نعم، وإلا فهو خاطئ/لا. عند كتابة قاعدة، استخدم 1 للصحيح/نعم و 0 للخاطئ/لا.

    suid
        معرف المستخدم المحفوظ. انظر صفحة الدليل getresuid(2).

    uid معرف المستخدم. قد يكون رقميًا أو اسم حساب المستخدم.

-k key
    اضبط مفتاح تصفية على قاعدة تدقيق. هذا مهمل عند استخدامه مع المراقبين. حوّل أي مراقبين إلى شكل استدعاء النظام للقواعد. يظل صالحًا للاستخدام عند حذف القواعد أو إدراجها.

-p [r|w|x|a]
    يصف نوع وصول الإذن الذي سيشغله مراقب نظام الملفات. هذا مهمل. حوّل المراقبين إلى شكل استدعاء النظام.

-S [Syscall name or number|all]
    يمكن استخدام أي اسم استدعاء نظام أو رقم. يمكن أيضًا استخدام الكلمة 'all'. إذا قام برنامج باستدعاء النظام المحدد، فابدأ سجل تدقيق. إذا أُعطيت قاعدة حقل ولم يُحدد استدعاء نظام، فستكون مبدئيًا لجميع استدعاءات النظام. يمكنك أيضًا تحديد استدعاءات نظام متعددة في نفس القاعدة باستخدام خيارات -S متعددة في نفس القاعدة. يؤدي ذلك إلى تحسين الأداء حيث تحتاج قواعد أقل إلى التقييم. بدلاً من ذلك، يمكنك تمرير قائمة بأسماء استدعاءات النظام مفصولة بفاصلات. إذا كنت تستخدم نظامًا ثنائي المعمارية، مثل x86_64، فيجب أن تدرك أن auditctl يأخذ النص ببساطة، ويبحث عنه في المعمارية الأصلية (في هذه الحالة b64)، ويرسل تلك القاعدة إلى النواة. إذا لم توجد توجيهات معمارية إضافية، فسوف تنطبق على كل من استدعاءات النظام 32 بت و 64 بت. قد يكون لهذا آثار غير مرغوب فيها لأنه لا يوجد ضمان بأن أي استدعاء نظام له نفس الرقم على واجهات 32 بت و 64 بت. من المرجح أن ترغب في التحكم في هذا وكتابة قاعدتين، واحدة بمعمارية تساوي b32 وواحدة بمعمارية b64 للتأكد من أن النواة تجد الأحداث التي تقصدها. انظر مناقشة حقل المعمارية لمزيد من المعلومات.

-w path
    ضع مراقبة على المسار. إذا كان المسار ملفاً، فهو يكاد يكون مماثلاً لاستخدام الخيار -F path في قاعدة استدعاء نظام. إذا كانت المراقبة على دليل، فهي تكاد تكون مماثلة لاستخدام الخيار -F dir في قاعدة استدعاء نظام. صيغة -w لكتابة المراقبات هي للتوافق مع الإصدارات السابقة وأُهمِلت بسبب ضعف أداء النظام. حوّل المراقبات من هذا الشكل إلى الشكل المعتمد على استدعاءات النظام. الخيارات الوحيدة الصالحة عند استخدام مراقبة هي -p و -k.

-W path
    أزل مراقبة لكائن نظام الملفات عند المسار. يجب أن تتطابق القاعدة تماماً. انظر نقاش -d لمزيد من المعلومات.

نصائح الأداء
تُقيّم قواعد استدعاءات النظام لكل استدعاء نظام لكل برنامج. إذا كان لديك 10 قواعد لاستدعاءات النظام، فسيتأخر كل برنامج على نظامك أثناء استدعاء نظام بينما يُقيّم نظام التدقيق كل قاعدة. كثرة قواعد استدعاءات النظام ستضر بالأداء. حاول دمج أكبر عدد ممكن منها كلما كانت الفلاتر والإجراءات والمفاتيح والحقول متطابقة. على سبيل المثال:

auditctl -a always,exit -F arch=b64 -S openat -F success=0
auditctl -a always,exit -F arch=b64 -S truncate -F success=0

يمكن إعادة كتابتها كقاعدة واحدة:

auditctl -a always,exit -F arch=b64 -S openat -S truncate -F success=0

حاول أيضًا استخدام تدقيق نظام الملفات حيثما أمكن عمليًا. يؤدي هذا إلى تحسين الأداء. على سبيل المثال، إذا كنت ترغب في التقاط جميع عمليات الفتح والقص الفاشلة كما هو موضح أعلاه، ولكنك مهتم فقط بالملفات الموجودة في /etc ولا تهتم بـ /usr أو /sbin، فمن الممكن استخدام هذه القاعدة:

auditctl -a always,exit -F arch=b64 -S openat,truncate -F dir=/etc -F success=0

يحقق هذا أداءً أعلى نظرًا لأن النواة لا تقيّمها في كل استدعاء نظام. تُعالَج بواسطة رمز تدقيق نظام الملفات ولا تُفحص إلا في استدعاءات النظام المتعلقة بنظام الملفات.

أمثلة
لرؤية جميع استدعاءات النظام التي يُجريها برنامج معين:

# حسب معرف العملية:
auditctl -a always,exit -S all -F pid=1005
# حسب مسار الملف التنفيذي
auditctl -a always,exit -S all -F exe=/usr/bin/ls

لرؤية الملفات التي فُتحت بواسطة مستخدم معين:

auditctl -a always,exit -S openat -F auid=510

لرؤية استدعاءات openat غير الناجحة:

auditctl -a always,exit -S openat -F success=0

لمراقبة ملف بحثًا عن التغييرات (طريقتان للتعبير):

auditctl -w /etc/shadow -p wa # Note this slows the system
auditctl -a always,exit -F arch=b64 -F path=/etc/shadow -F perm=wa

لمراقبة دليل بشكل متكرر بحثًا عن التغييرات (طريقتان للتعبير):

auditctl -w /etc/ -p wa # Note this slows the system
auditctl -a always,exit -F arch=b64 -F dir=/etc/ -F perm=wa

لمعرفة ما إذا كان المسؤول يصل إلى ملفات مستخدمين آخرين:

auditctl -a always,exit -F dir=/home/ -F uid=0 -C auid!=obj_uid

هذا مثال لملف قواعد:

# Remove all existing rules
-D
# Never record sudo invocations
-A exclude,always -F exe=/usr/bin/sudo

معطل بشكل مبدئي

في العديد من الأنظمة، يُكوَّن auditd لتثبيت قاعدة -a never,task بشكل مبدئي. تتسبب هذه القاعدة في تخطي كل عملية جديدة لمعالجة قواعد التدقيق. يُفعل ذلك عادة لتجنب حمل أداء صغير يفرضه تدقيق نداءات النظام. إذا أردت استخدام auditd، فأنت بحاجة إلى إزالة تلك القاعدة بحذف 10-no-audit.rules وإضافة 10-base-config.rules إلى دليل قواعد التدقيق.

إذا حددت قواعد تدقيق لا تتطابق عندما ينبغي لها، فتحقق من auditctl -l للتأكد من عدم وجود قاعدة never,task هناك.

الملفات

/etc/audit/audit.rules /etc/audit/audit-stop.rules

انظر أيضًا
audit.rules(7)، ausearch(8)، aureport(8)، auditd(8).

المؤلف
Steve Grubb

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.