Для проверки входящего http-трафика антивирусом можно использовать squid с дополнительными внешними приложениями, однако такой метод достаточно медленный и более требователен к ресурсам, чем если бы прокси-сервер проверял трафик на вирусы сам. Примером такого прокси-сервера является havp, который есть в репозиториях большинства дистрибутивов, в том числе Gentoo и Ubuntu.
Автор этой заметки имеет дома небольшой сервер, работающий под управлением Ubuntu Linux 7.10, на котором работает связка squid+bfilter, сделанная примерно так, как написано здесь. В связи с появлением в локальной сети машины под управлением Windows возникла необходимость проверять http-трафик на вирусы. Для этого было решено добавить ещё один каскад прокси - havp. Далее описывается процесс добавления каскада havp к имеющейся связке.
Итак. Поскольку по умолчанию bfilter и havp работают на порту 8080, и apt-get при установке пытается запустить сервис havp, то во избежание проблем временно остановим bfilter:
/etc/init.d/bfilter stop
Далее установим havp и freshclam, который понадобится чтобы регулярно обновлять антивирусные базы:
apt-get install havp clamav-freshclam
После установки приступаем к настройке havp. Для этого открываем в редакторе файл /etc/havp/havp.config. Первым делом изменим порт, на котором слушает havp:
# PORT 8080 PORT 3129
Далее настроим прокси так, чтобы он принимал соединения только с локального хоста:
BIND_ADDRESS 127.0.0.1
Поскольку мы говорим на русском языке, информационные сообщения нам тоже удобнее читать на русском языке, потому немного изменим путь к шаблонам информационных страниц:
# TEMPLATEPATH /etc/havp/templates/en TEMPLATEPATH /etc/havp/templates/ru
Далее решим что делать при ошибках сканера. По умолчанию загрузка файла, на котором произошёл сбой сканера, запрещается. Это конечно безопаснее, но мы будем чуть больше доверять миру и разрешим пропускать такие файлы:
# FAILSCANERROR true FAILSCANERROR false
Кроме того есть два интересных файла: /etc/havp/blacklist и /etc/havp/whitelist. В первом перечисляются шаблоны адресов, заведомо запрещённых для загрузки, а во втором - шаблоны адресов, для которых проверка не нужна (Добавлять туда адреса нужно очень осторожно, мало ли что случится с вашим DNS-сервером!).
На этом настройка заканчивается. Перезапускаем havp:
/etc/init.d/havp restart
Теперь остаётся только немного донастроить bfilter. Все новые настройки будут сделаны в секции [forwarding] файла /etc/bfilter/config. В Ubuntu эта секция по умолчанию отсутствует поэтому её надо будет просто добавить. В других дистрибутивах (например Gentoo или Mandriva) - править имеющиеся параметры. В любом случае эта секция должна выглядеть примерно вот так:
[forwarding] use_proxy = yes proxy_type = http proxy_host = 127.0.0.1 proxy_port = 3129
Таким образом все запросы с bfilter будут пересылаться на havp.
Запускаем bfilter:
/etc/init.d/bfilter start
Следует так же отметить что хотя по умолчанию havp и использует в качестве сканера встроенные функции, использующие библиотеку libclamav, однако он может использовать и внешние антивирусные сканеры. Такие как NOD32, Avast, F-Prot и другие.
Ссылки по теме:
Alex 2008-01-09 02:26:03 (#)
1)Чтобы использовался squid, надо расскомментировать строки
PARENTPROXY localhost
PARENTPORT 3128
2)ФС должна быть примонтирована с параметром -o mand (можно добавить в /etc/fstab)
3)По-умолчанию никакой антивирус не выбран. Надо выбрать (поменять одно из значений false на true).
Например, если установлен clamav
ENABLECLAMLIB true
CLAMDBDIR /var/lib/clamav
4)У меня в конфиге bfilter по-молчанию не было раздела [forwarding]. Пришлось дописать :-)