~2 دقیقه مطالعه • بروزرسانی ۷ بهمن ۱۴۰۴
1. ClamAV چیست؟
ClamAV یک آنتیویروس Open‑Source مخصوص محیطهای سروری است که برای اسکن ایمیلها و فایلهای پیوست طراحی شده است. ویژگیهای اصلی آن:
- اسکن attachment ایمیلها
- تشخیص ویروس، تروجان، بدافزار و فیشینگ
- سبک و قابل اتوماسیون
- مناسب برای Mail Serverها
ClamAV تصمیمگیر نیست؛ فقط اسکن میکند.
2. جایگاه ClamAV در معماری iRedMail
Internet ↓ Postfix ↓ Amavis ↓ ClamAV ← (Virus Scan) ↓ SpamAssassin ← (Spam Score) ↓ Mailbox (Dovecot)
ClamAV فقط با Amavis ارتباط مستقیم دارد.
3. اجزای اصلی ClamAV
3.1 clamd
- Daemon اصلی اسکن
- پاسخگوی درخواستهای Amavis
3.2 freshclam
- آپدیت signatureها
- حیاتی برای امنیت
4. نحوه اتصال ClamAV به iRedMail
در iRedMail، Amavis از طریق Unix Socket به clamd وصل میشود.
مسیر رایج Socket:
/run/clamav/clamd.ctl
نمونه تنظیم در Amavis:
['ClamAV-clamd',
'\&ask_daemon',
["CONTSCAN {}\n", "/run/clamav/clamd.ctl"],
qr/\bOK$/m,
qr/\bFOUND$/m,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
5. مسیرهای مهم ClamAV
| مسیر | توضیح |
|---|---|
| /etc/clamav/ | تنظیمات اصلی |
| clamd.conf | تنظیمات daemon |
| freshclam.conf | تنظیمات آپدیت |
| /var/lib/clamav/ | Signature Database |
| /run/clamav/ | Socket |
6. تنظیمات مهم clamd.conf
6.1 فعالسازی Socket
LocalSocket /run/clamav/clamd.ctl LocalSocketMode 666
6.2 Performance
MaxThreads 12 StreamMaxLength 50M
این مقادیر باید متناسب با RAM سرور تنظیم شوند.
7. آپدیت Signature (freshclam)
بررسی وضعیت:
systemctl status clamav-freshclam
آپدیت دستی:
freshclam
اگر Signature آپدیت نشود، ClamAV عملاً بیفایده است.
8. تست ClamAV
تست استاندارد EICAR:
این متن را در یک فایل قرار بده:
X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
ارسال از طریق ایمیل → باید Block شود و در لاگ "FOUND" ثبت شود.
9. لاگها و Debug
مسیر لاگها:
/var/log/maillog
جستجو:
grep -i clamav /var/log/maillog
10. رفتار ClamAV در iRedMail
| وضعیت | نتیجه |
|---|---|
| ویروس پیدا شود | Reject / Quarantine |
| clamd down | Fail‑open (پیشفرض) |
| Signature قدیمی | ریسک امنیتی بالا |
Fail‑open بهتر است فعال بماند تا ایمیلهای سالم قطع نشوند.
11. خطاهای رایج
CPU بالا
- MaxThreads زیاد
- فایلهای بزرگ
No such file socket
- clamd اجرا نیست
- Permission اشتباه
freshclam کار نمیکند
- DNS مشکل دارد
- Mirror بلاک است
12. Hardening و Best Practice
- استفاده از Socket بهجای TCP
- تنظیم Resource Limit
- مانیتور freshclam
- Backup از config
نتیجهگیری
ClamAV خط دفاعی حیاتی در iRedMail است. این سرویس همیشه پشت Amavis کار میکند و بدون آپدیت مداوم Signatureها، عملاً بیاثر میشود. با تنظیم درست، ClamAV میتواند امنیت و کارایی سیستم ایمیل را تضمین کند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی