- Squid (2.6.5)
- Apache (1.3.34)
- ClamAv (0.90.1)
- libcurl3-dev (7.15.5)
- libcurl3 (7.15.5)
Apache и ClamAv не требуют дополнительной настройки после установки через apt-get. Описание "Установка Debian-маршрутизатора с возможностями прозрачного proxy-сервера" содержит подборную установку и настройку Squid.
Связующим звеном между Squid и ClamAv является редиректор squidclamav (написан на С, на момент написания этих строк последней версией была версия 3.0). Существует еще один редиректор squidclamav, но он написан на python и мною не тестировался.
Перед тем, как остановить свой выбор на squidclamav, я рассмотрел еще 3 реализации антивирусной проверки на базе Squid + Clamav:
- i-cap - так как хотелось использовать Squid из Debian репозитария, пришлось отбросить данный вариант, так как в дебиановской сборке отсутствует поддержка i-cap, и мне не удалось найти i-cap патча для ручной пересборки.
- squidclam - очень сырой, так и не удалось добиться работоспособности
- viralator - требует наличия squidGuard, но заставить работать мне его так и не удалось. Запрашиваемые файлы передаются на обработку этому скрипту, но он только показывает popup, а сам ничего не выполняет. Да и popup - для каждого скачиваемого файла - очень неудобно.
1. Собрать из исходников данный редиректор
tar zxf squidclamav-x.x.tar.gz
cd squidclamav
./configure --prefix=/usr/local/squidclamav
make
make install
2. Отредактировать конфигурационный файл, взяв за основу идущий в дистрибутиве
cp squidclamav.conf.dist /etc/squidclamav.conf
Пример рабочего конфигурационного файла (проверяет все файлы c mime-type application и с расширениями .dll):
logfile /var/log/squid/squidclamav.log
redirect http://192.168.1.254/cgi-bin/clwarn.cgi
debug 0
force 1
stat 1
clamd_local /var/run/clamav/clamd.ctl
timeout 60
abort ^.*\.php$
abort ^.*\.gz$
abort ^.*\.bz2$
abort ^.*\.pdf$
abort ^.*\.js$
abort ^.*\.html$
abort ^.*\.css$
abort ^.*\.xml$
abort ^.*\.xsl$
abort ^.*\.js$
abort ^.*\.ico$
aborti ^.*\.gif$
aborti ^.*\.png$
aborti ^.*\.jpg$
aborti ^.*\.swf$
content ^.*application\/.*$
regexi ^.*\.dll$
3. Добавить описание редиректора в основной конфигурационный файл Squid'a - /etc/squid/squid.conf
redirect_program /usr/local/squidclamav/bin/squidclamav
redirect_children 15
4. Разместить в cgi-bin директории файл clwarn.cgi, на который будет пересылаться запрос в случае обнаружения вируса
cp clwarn.cgi /usr/lib/cgi-bin/clwarn.cgi
5. Перезапустить Squid, проверить в логах Squid'а запустились ли процессы squidclamav-редиректора. Если всё ок, попробовать скачать файл, содержащий вирус. Тестовые вирусы можно найти здесь.
Ссылки:
9 comments:
при make
main.c:67:23: error: curl/curl.h: No such file or directory
curl стоит, а вот curl.h найти в системе не могу... что делать?
to anonymous:
Всё очень просто - у вас не хватает пакета libcurl3-dev.
Советую еще посмотреть в сторону icap т.к. squidclamav является устаревшим и не развивающимся поектом
to hipsis:
Смотрел в сторону icap, но по какой-то причине он его до сих пор нет в репозитарии debian. А хотелось всего выполнить доступными средствами.
если вам не принципиально использование именно squid 2.6.x, то вот решение для squid3
http://www.morahthong.ru/?q=node/26
to alexander:
Надо будет попробовать :)
Благодарю за ссылку!
А где же можно взять это злополучный файл /var/run/clamav/clamd.ctl ? его в папке нет.
И сам clamd ругаеться в лог, что не может приконнектится к этому файлу. Пробывал ставить на Debian 4.0r2 и Ubuntu server 7.10.
to anonymous:
Файл /var/run/clamav/clamd.ctl создается, если запущен демон clamd. Данный файл является unix-socket'ом сервиса clamav-daemon'а.
Если у Вас нет данного файла, это всего лишь значит, что сервис clamd не запущен. А причину, почему он не запущен, нужно уже искать :)
Anonymous said...
А где же можно взять это злополучный файл /var/run/clamav/clamd.ctl ? его в папке нет.
April 22, 2008 11:40 AM
====
В Debian etch в репозитории баг-версия clamav которая не создаёт сокет-файл.
Мне пришлось удалять и собирать из исходников последнюю версию clamav.
Post a Comment