Поиск по этому блогу

среда, 20 января 2010 г.

Установка HAVP в Ubuntu


Если понадобится реализовать обратную схему, то есть когда в
качестве Parent выступает Squid, наоборот все настройки производятся в
конфигурационном файле HAVP – /etc/havp/havp.config:


$ sudo mcedit /etc/havp/havp.config


# порт и адрес, на котором принимает соединения HAVP

PORT 8080

BIND_ADDRESS 127.0.0.1


# можно дополнительно укзать IP-адрес интерфейса для исходящих пакетов

#SOURCE_ADDRESS 1.2.3.4

# указываем в качестве Parent прокси Squid

PARENTPROXY 127.0.0.1

PARENTPORT 3128


Теперь подключаемся веб-браузером к порту 8080 и при подключении к серверу проходим цепочку HAVP-Squid-веб-сервер.
Еще несколько моментов в конфигурационном файле, на которые хотелось бы
обратить внимание. Например, пользователь и группа от имени которых
работает HAVP указаны в параметре:



USER havp

GROUP havp


Он должен иметь возможности чтения и записи во все рабочие каталоги. Кроме того, часто появляется ошибка “Permissions denied” при работе с антивирусом. Чтобы не было в дальнейшем проблем с доступом, я добавляю пользователя havp в группу clamav (или другую от имени которой работает антивирус).

Количество процессов запускаемых демоном HAVP определяется двумя параметрами:



SERVERNUMBER 8

MAXSERVERS 100


Значения по умолчанию подходят для домашнего использования или небольшой организации, иначе установите SERVERNUMBER в зависимости от количества клиентов.

Еще два не менее ценных параметра:



SCANTEMPFILE /var/spool/havp/havp-XXXXXX

TEMPDIR /var/tmp


Здесь указывается шаблон и размещение временных файлов HAVP и
каталог для временных файлов антивируса. В руководствах доступных в
Интернет и документации HAVP сказано, что SCANTEMPFILE должен
размещаться в разделе, смонтированном с использованием параметра mand.
Майтайнер пакета упростил тебе задачу, и в стартовом скрипте /etc/init.d/havp есть все, что нужно. В чем можно убедиться, введя команду “mount” после загрузки HAVP:


$ mount

/var/lib/havp/havp.loop on /var/spool/havp type ext3 (rw,mand,loop=/dev/loop/0)


Хотя при больших нагрузках на сервер лучше вынести этот каталог в ОЗУ:


$ sudo mount -t tmpfs -o size=100M,mand tmpfs /var/spool/havp


И /etc/fstab:


tmpfs /var/spool/havp tmpfs auto,size=100M,mand 0 0





В
комплекте HAVP есть несколько шаблонов веб-страниц, которые выводятся
юзеру при обнаружении вируса и возникновении других проблем. Подключаем
русские шаблоны:


TEMPLATEPATH /etc/havp/templates/ru


Кстати ни кто не мешает подправить html файлы внутри этого каталога, по своему вкусу.

В HAVP также поддерживаются белый и черный списки. Вся информация с
первого проходит без проверки на вирусы, URL занесенные во второй
список блокируются:


WHITELISTFIRST true

WHITELIST /etc/havp/whitelist

BLACKLIST /etc/havp/blacklist


Внутри этих файлов содержатся шаблоны URL. Например, если занести в whitelist строку:


*/*.gif


То все GIF файлы будут проходить без проверки. Некоторые типы
архивов ClamAV проверять не умеет, чтобы пользователь не получал
сообщение об ошибке, разрешим пропускать такие файлы, заодно отключаем
сканирование изображений, ограничим размер проверяемых объектов и
другая оптимизация:


FAILSCANERROR false

SCANIMAGES false

MAXSCANSIZE 5000000

STREAMUSERAGENT Player Winamp iTunes QuickTime Audio RMA/ MAD/ Foobar2000 XMMS


Это конечно не все параметры, но уж слишком большие возможности у HAVP.

Теперь разберем, как подключается к HAVP антивирус ClamAV. По умолчанию проверка производится при помощи libclamav:



ENABLECLAMLIB true

CLAMDBDIR /var/lib/clamav


Причем нужно проследить, чтобы параметр CLAMDBDIR указывал на тот же каталог, что и параметр DatabaseDirectory в файле /etc/clamav/clamd.conf. Хотя если в журнале HAVP /var/log/havp/access.log видим запись вроде:


— Initializing ClamAV Library Scanner

ClamAV: Using database directory: /var/lib/clamav/

ClamAV: Loaded 244019 signatures (engine 0.92)

ClamAV Library Scanner passed EICAR virus test (Eicar-Test-Signature)

— All scanners initialized

Process ID: 8406


log_havp


Значит все путем и ничего трогать не нужно. Далее в havp.config
идут параметры определяющие поведение ClamAV при сканировании
зашифрованных архивов, максимальный размер проверяемого файла и другие.
Чтобы вместо libclamav использовать демон clamd, комментируем
предыдущие строки, и пишем:


ENABLECLAMD true

CLAMDSOCKET /var/run/clamav/clamd.ctl


Значение второго параметра берем из переменной LocalSocket файла clamd.conf. Этот как раз тот случай, когда включение havp в группу clamav не будет лишним.