Для этой цели подходят
как минимум два проекта. Решение
SquidClamAv
является редиректором, работающим с
антивирусом ClamAV и позволяет проверять
выборочно файлы, основываясь на расширении
или контексте. Несколько более продвинутый
вариант – HAVP (HTTP Anti Virus Proxy, www.server-side.de).
Он умеет проверять трафик на лету при
помощи нескольких антивирусов (ClamAV,
F-Prot, Kaspersky, NOD32, Sophos, AVG, Dr.Web и некоторыми
другими). Так как HAVP это не редиректор,
то он может работать как в связке со
Squid, так и в одиночку, обеспечивая
прозрачный прокси. Оба решения
достаточно просты, гибки в настройках
и работают стабильно. Использовав связку
Squid + HAVP можно реализовать несколько
схем работы: squid+havp, havp+squid,
squid+havp+squid, havp+squid. Плюс сюда
можно легко добавить adzapper и bfilter. Кроме
того, HAVP есть в репозитариях большинства
дистрибутивов, что заметно упрощает
процесс установки, так как не нужно
производить ряд операций вручную. А
поэтому будем знакомиться именно с ним.
Ставим:
$ sudo
apt-get install havp clamav
В процессе
установки будет добавлен системный
пользователь и группа havp. Также будет
установлен пакет clamav-freshclam, который
необходим для автоматического обновления
антивирусных баз. В настройках по
умолчанию HAVP проверят файлы на наличие
вирусов при помощи libclamav. При больших
нагрузках вероятно лучше для этих целей
использовать демона clamd. В этом случае
необходимо дополнительно установить
пакет clamav-daemon и затем изменить настройки
в конфиге HAVP. Если в
процессе установки
будет получена
ошибка вроде:
Starting
havp: Starting HAVP Version: 0.86 LibClamAV
Error: cl_loaddbdir(): Can’t get status of /var/lib/clamav/ One
or more scanners failed to initialize!
Это означает,
что libclamav на момент запуска HAVP не
установлена, просто введите "sudo
apt-get –f install”. Сейчас HAVP и Squid работают
каждый сам по себе. Запустив "netstat”
увидишь, что стал дополнительно
прослушиваться порт 8080 (напомню, что
squid по умолчанию работает на 3128). Для
проверки работоспособности HAVP настраиваем
веб-браузер на работу через HAVP, заходим
на страницу www.eicar.org/anti_virus_test_file.htm
и пробуем скачать тестовый вирус. Если
в ответ получаем сообщение, что файл
заблокирован, идем дальше.
HAVP
обнаружил вирус
Все
комбинации HAVP+Squid рассматривать не буду.
Сначала рассмотрим как подключить HAVP
в качестве Parent proxy для Squid. То есть
клиент подключается к Squid, а Squid через
HAVP уже выходит в Интернет. Это весьма
простой в реализации и к тому же более
рациональный вариант, так как весь
входящий трафик проверяется антивирусом,
а страницы из кэша Squid выдаются без
проверки. Открываем squid.conf и пишем: $
sudo mcedit /etc/squid/squid.conf
cache_peer
127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange
default cache_peer_access 127.0.0.1 allow all # будем
проверять только HTTP acl Scan_HTTP proto
HTTP never_direct allow Scan_HTTP В самом простом
случае достаточно первой строки,
остальные задают дополнительные
параметры. Подключаемся к сайту Eicar и
проверяем, как работает указанная схема.
Добавляем в crontab строчку для
автоматического обновления антивирусных
баз:
0 * * * *
/usr/bin/freshclam -quiet
В итоге мы
получили полнофункциональную систему,
кэширующую трафик, блокирующую вирусы
и рекламу.
|