ClamAV

Clam AntiVirus — це антивірусний набір програм для UNIX розроблюваний під ліцензією GPL, його основним призначенням є сканування електронної пошти на шлюзах. Він складається з деякого числа утеліт включаючи гнучкий і маштабований багатопоточний сервіс, сканер командного рядка - і засіб автоматичного поновлення антивірусних баз. Ядро пакета є антивірусним мехнізмом створеним за технологією розділених бібліотек.

Ось спиcок основних можливостей :

  • сканер командного рядка
  • швидкий багатопоточний сервіс із підтримкою сканування через milter-інтерфейс для програми sendmail
  • передовий засіб поновлення бази із підтримкою скрипт-поновлення та цифрових підписів
  • бібліотека вирус-сканера для мови С
  • база вірусів оновлюється кілька разів на день (дивіться загальну кількість записів на домашній сторінці)
  • вбудована підтримка різних форматів архівів, включаючи Zip, RAR, Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS та інші
  • вбудована підтримка майже всіх форматів поштових файлів
  • вбудована підтримка файлів що запускаються ELF і PE запакованих UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack і опрацьованих SUE, Y0da Cryptor та інші
  • вбудована підтримка популярних форматів документів включаючи MS Office і MacOffice, HTML, RTF і PDF
  • графічна оболонка під KDE - klamav

Використання ClamAV в поштових системах на основі postfix з фільтрацією вірусів та спаму. (Postfix+Dovecot+ClamAV+SpamAssassin)

Прилаштування антивіруса Clam AntiVirus до sendmail.

Вступ

В цій статті я наведу приклад встановлення антивіруса Clam AntiVirus та його налаштування для перевірки пошти, яку обробляє sendmail.

Де працює?

Clam AntiVirus може працювати під наступними ОС:

  • GNU/Linux - all versions and platforms
  • Solaris - all versions and platforms
  • FreeBSD - all versions and platforms
  • OpenBSD 3.0/1/2 (Intel/SPARC)
  • AIX 4.1/4.2/4.3/5.1 (RISC 6000)
  • HPUX 11.0
  • SCO UNIX
  • IRIX 6.5.20f
  • Mac OS X
  • BeOS
  • Cobalt MIPS boxes (RAQ1, RAQ2, QUBE2)
  • Windows/Cygwin

Що потрібно для роботи?

Для повноцінної роботи пакету потрібні наступні пакети:

  • пакети zlib і zlib-devel
  • компілятор gcc (підтримуються як 2.9x, так і 3.x)

Також дуже рекомендується мати:

  • бібліотеки bzip2 і bzip2-devel
  • GNU MP 3

Наявність пакету GMP є дуже важлива тому, що дає можливість перевіряти цифрові підписи вірусних баз. Ви моете завантажити GNU MP з http://www.swox.com/gmp

А також бібліотека libmilter, яка мусить бути включена під час компіляції sendmail (подивіться чи є /usr/lib/libmilter.a).

Інсталяція

Персвідчившись у наявності всього необхідного, приступаємо до інсталяції.

Створюємо для ClamAV користувача і групу:

# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav

Далі компілюємо і інсталюємо наступним чином:

$ ./configure --enable-milter
$ make
$ su -c "make install"

Опція --enable-milter потрібна для підключення ClamAV до sendmail'а. Також можна додати до configure опцію --sysconfdir=/etc, якщо хочете щоб всі конфіги були в одному місці.

Поставилось? По-ідеї, ніяких проблем не мало виникнути. Беремося до конфігурації, бо з налаштуваннями "по замовчуванню" clamd не запуститься. Якщо ви при ./configure не вказували ніяких опцій то конфігураційний файл буде /usr/local/etc/clamav.conf, якщо ж ви використовували опції --prefix або --sysconfdir то самі мали б знати куди його запхнули :)

Детально описувати опції конфіга не буду, оскільки вони чудово прокоментовані в ньому самому. Хіба наведу приклад свого конфіга (тут).

Оскільки ClamAV використовує для взаємодії сокети, треба створити місце де він їх триматиме:

# mkdir /var/run/clamav
# chgrp clamav /var/run/clamav
# chown clamav /var/run/clamav

Також треба переконатися в наявності в clamav.conf таких опцій:

LocalSocket /var/run/clamav/clamd.sock
ScanMail
StreamSaveToDisk

Додаємо в конфігурацію sendmail'a (config.mc) такі рядки:

INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')

Після чого його перекомпільовуємо:

# m4 ../m4/cf.m4 config.mc > /etc/mail/sendmail.cf

Або додаємо до sendmail.cf, такі рядки:

O InputMailFilters=clamav
Xclamav, S=local:/var/run/clmilter.sock, F=T, T=S:4m;R:4m

От тепер все готово до запуску :)

# clamd &
# /usr/local/sbin/clamav-milter —lo /var/run/clamav/clmilter.sock
[ перезапускаємо sendmail ]

За умови що ви все зробили правильно, ваша пошта має перевірятися на наявність вірусів. Якщо це дійсно так, рекомендуємо занести блок команд, який запускає ClamAV, в стартовий скрипт sendmail'а.

Варто також потурбуватися про автоматичне оновлення вірусних баз. Додамо у crontab такий запис:

47 5 * * *      /usr/local/bin/freshclam --quiet

Вірусні бази будуть оновлюватись кожний день в 05:47, якщо замінити "5" на "*", то оновлення відбуватиметься кожної години.

А якщо в /etc/clamav/freshclam.conf Встановити дзеркалом

DatabaseMirror db.UA.clamav.net

То оновлення буде відбуватись в межах UA-IX (Андрій Головинський tikus at ukrpost.net).

От і вся процедура інсталяції та настойки ClamAV для роботи з sendmail. Якщо маєте якісь питання чи зауваження, пишіть на gav[at]lca.lviv.ua .

Посилання

Copyright

© Artem Hodlevskyy aka errno - gav[at]lca.lviv.ua
LCA