ماذا تفعل هذه الوحدة #
يقارن مضاد الفيروسات ملفات خادمك مقابل فهرس تواقيع لبرمجيات خبيثة معروفة. فإن تطابق شيء، وسمه بأنه مصاب لكي لا يستمر في التداول — مثلًا مرفق خبيث رُفع إلى مجلد عام، أو ملف ملوَّث وصل عبر FTP.
تضع وحدة clamav محرّك ClamAV في متناول يدك عبر حفنة من الأوامر الواضحة: تحقّق من الحالة، وافحص أي مسار تريده (ملف أو شجرة كاملة)، وقرّر ما تفعله بأي شيء مصاب — أبلِغ عنه فقط، أو احذفه، أو انقله إلى حجر آمن يمكنك الاستعادة منه لاحقًا — وحافظ على قاعدة بيانات التواقيع حديثة عبر freshclam. يعزل الحجر الملف دون حذفه، فلا تفقد شيئًا بالخطأ أبدًا.
يكتشف الفحص بأي قاعدة بيانات تواقيع لديك في تلك اللحظة. فإن لم تُحدِّث منذ أيام، فنفّذ imaxe clamav update أولًا كي لا تفوتك التهديدات الحديثة. قد يستغرق فحص الأشجار الكبيرة وقتًا ويستهلك المعالج: ضيّق المسار إلى ما تريد فحصه فعلًا.
المهام الشائعة #
اختر ما تريد فعله. تأتي كل وصفة بالأمر جاهزًا — ما عليك إلا استبدال المسار بمسارك والضغط على نسخ.
1
تحقّق مما إذا كان ClamAV جاهزًا
يفحص المحرّك والوضع ومدى قِدَم تواقيعك.
اتصل عبر SSH بخادمك واستعلم عن الحالة العامة:
$ sudo imaxe clamav statusيهمّك قاعدة بيانات التواقيع فقط — الإصدار والتاريخ والملفات؟ استخدم db:
$ sudo imaxe clamav db2
افحص مجلدًا
تحقّق من مسار واحتفظ بالتقرير دون المساس بأي شيء.
افحص مجلدًا وكل محتوياته بـ --recursive. افتراضيًّا فإنه يُبلِغ فقط: لا يحذف ولا ينقل شيئًا.
$ sudo imaxe clamav scan /home --recursiveملف واحد فقط؟ مرِّر له المسار المباشر، دون --recursive:
$ sudo imaxe clamav scan /srv/uploads/factura.pdf3
افحص واعزل ما هو مصاب
ينقل تلقائيًّا كل ما يظهر إيجابيًّا إلى الحجر.
افحص مسارًا، ومع --quarantine، انقل كل ملف مصاب إلى الحجر بدلًا من تركه في مكانه:
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantineهل تفضّل حذف ما هو مصاب مباشرةً بدلًا من عزله؟ استخدم --remove (لا رجعة فيه، استخدمه بحكمة):
$ sudo imaxe clamav scan /srv/uploads --recursive --remove4
راجِع الحجر واستعِد منه
اطّلِع على ما هو معزول واسترجِع نتيجة إيجابية خاطئة إن احتجت.
اسرُد ما في الحجر — يأتي كل مدخل بمعرّفه ومصدره وتوقيعه وتاريخه:
$ sudo imaxe clamav quarantine listأكانت نتيجة إيجابية خاطئة؟ استعِده إلى مساره الأصلي باستخدام المعرّف الظاهر في القائمة:
$ sudo imaxe clamav quarantine restore a1b2c3d4حين تتأكّد أن كل ما هو معزول لا قيمة له، أفرِغ الحجر نهائيًّا:
$ sudo imaxe clamav quarantine purge --yes5
حدِّث التواقيع
نزّل أحدث التعريفات لاكتشاف التهديدات الجديدة.
نفّذ freshclam لجلب أحدث قاعدة بيانات للتواقيع:
$ sudo imaxe clamav updateبعدها، تأكّد من أن قاعدة البيانات محدَّثة بإصدارها وتاريخها:
$ sudo imaxe clamav db--removeالحذف يزيل الملف دون رجعة، ولا مضاد فيروسات يخلو من نتائج إيجابية خاطئة. عند الشك، استخدم دائمًا --quarantine: فهو يعزل بالقدر نفسه من الفاعلية ويتيح لك الاستعادة إن أخطأت.
صيغة الاستخدام #
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]تتطلّب الأوامر الفرعية التي تفحص الملفات أو تنقلها أو تحذفها صلاحيات root (استخدم sudo)، لأنها تقرأ مسارات مستخدمين آخرين وتكتب في حجر النظام. أضِف --json إلى أي أمر للحصول على مخرجات مقروءة آليًّا، صالحة لكتابة السكربتات.
الأوامر الفرعية #
| الأمر الفرعي | ماذا يفعل | الرايات المعنية |
|---|---|---|
| status | حالة ClamAV: المحرّك، الوضع (خفيّ/عند الطلب)، freshclam وقاعدة بيانات التواقيع. | --json |
| scan | يفحص مسارًا؛ يمكنه الإبلاغ عمّا هو مصاب أو حذفه أو عزله في الحجر. | --recursive, --remove, --quarantine, --json |
| update | يحدّث قاعدة بيانات التواقيع عبر freshclam. | --json |
| db | معلومات قاعدة بيانات التواقيع: الإصدار والتاريخ والملفات. | --json |
| quarantine | يدير حجر الملفات المصابة (مجموعة أوامر فرعية). | list · restore · purge |
تجمع مجموعة quarantine ثلاثة أوامر فرعية:
| الأمر الفرعي | ماذا يفعل | الرايات المعنية |
|---|---|---|
| quarantine list | يسرُد الملفات في الحجر (المصدر، التوقيع، التاريخ). | --json |
| quarantine restore | يستعيد ملفًا من الحجر إلى مساره الأصلي أو إلى وجهة معطاة. | <id> [<destino>] |
| quarantine purge | يحذف نهائيًّا كل ما في الحجر. | --yes |
الوسائط والرايات #
| الراية / الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
| <ruta> مطلوب | path | — | في scan، الملف أو المجلد المراد فحصه. |
| <id> مطلوب | string | — | في quarantine restore، معرّف العنصر المحجوز (الظاهر في quarantine list). |
| <destino> | path | ruta original | في quarantine restore، المسار الذي يُستعاد إليه الملف. الافتراضي موقعه الأصلي. |
| --recursive | bool | false | في scan، فحص تراجعي للمجلدات. |
| --quarantine | bool | false | في scan، ينقل الملفات المصابة إلى الحجر. |
| --remove | bool | false | في scan، يحذف الملفات المصابة. لا رجعة فيه؛ لا يجتمع مع --quarantine. |
| --yes | bool | false | في quarantine purge، يؤكّد الحذف دون سؤال. |
| --json | bool | false | يُصدر النتيجة بصيغة JSON في stdout. متاح في كل أمر فرعي. |
الملفات والمسارات #
| المسار | المحتوى |
|---|---|
| /etc/imaxe/clamav.yml | إعداد الوحدة: مجلد الحجر والمسارات المستثناة من الفحص. |
| /var/lib/imaxe/clamav/quarantine | مخزن الحجر: هنا تُعزل الملفات المصابة القابلة للاستعادة. |
| /var/lib/clamav/ | قاعدة بيانات التواقيع التي يصونها freshclam (تعريفات البرمجيات الخبيثة). |
| /var/log/imaxe/clamav.log | سجلّ مُهيكَل لكل فحص وحجر وتحديث. |
مثال على clamav.yml:
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
exclude:
- /proc
- /sysscan.exclude قائمة بالمسارات التي يتخطّاها الفحص؛ تأتي فارغة افتراضيًّا.
رموز الخروج والسجلّات #
يعيد كل تنفيذ رمزًا يمكنك فحصه بـ echo $? — مفيد للتسلسل في السكربتات:
تابِع السجلّ مباشرةً أثناء تصحيح الأخطاء:
$ sudo tail -f /var/log/imaxe/clamav.logحل المشكلات #
| العَرَض | السبب المحتمل | الحل |
|---|---|---|
| يظهر INFECTED (الرمز 3) | اكتشف الفحص تهديدًا واحدًا أو أكثر. | راجِع التقرير؛ ونفّذ scan من جديد بـ --quarantine لعزلها. |
| يظهر UPDATE (الرمز 4) | لم يستطع freshclam تنزيل التواقيع (الشبكة أو المرآة معطّلة). | تحقّق من وصول الخادم إلى الإنترنت وأعِد clamav update. |
| يستغرق الفحص وقتًا طويلًا | يغطّي المسار عددًا كبيرًا من الملفات أو مسارات النظام. | ضيّق المسار واستثنِ ما لا لزوم له بـ scan.exclude في clamav.yml. |
| فقدت ملفًا مشروعًا | نتيجة إيجابية خاطئة نُقلت إلى الحجر بـ --quarantine. | حدّد موقعه بـ quarantine list واسترجِعه بـ quarantine restore <id>. |
| تُظهر الحالة تواقيع متقادمة | لم يعمل freshclam منذ فترة. | نفّذ clamav update وتحقّق بـ clamav db. |
هل واجهتك مشكلة مع وحدة ClamAV؟
راسلنا مرفقًا مخرجات «imaxe <module> status --json» وسنرد عليك بسرعة.