The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Проверяем HTTP-трафик в squid на лету (squid virus clamav filter)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: squid, virus, clamav, filter,  (найти похожие документы)
From: Андрей Маркелов <http://www.markelov.net>; Date: Mon, 16 Dec 2007 14:31:37 +0000 (UTC) Subject: Проверяем HTTP-трафик в squid на лету Оригинал: http://www.markelov.net/articles.php?lng=ru&pg=186 Впервые опубликованно в журнале "Системный администратор" No.07/2005 Сегодня антивирусная защита - непременный атрибут грамотно спланированной IT-стратегии организации. Для не обремененного лишними деньгами бюджета IT-отдела закупка и установка на всех пользовательских компьютерах антивирусных программ может стать вполне весомой статьей расходов. Можно ли как-то избежать лишних затрат? Представим, что у пользователей отсутствуют или отключены НГМД (про CD-ROM и USB я даже не упоминаю - на мой взгляд, это непозволительная роскошь для клиентских рабочих мест). Почта уже проверяется каким-нибудь открытым антивирусом типа Clamav. В таком случае единственным возможным источником вирусов может являться "дикий Интернет". И если доступ пользователям открыт только через протокол HTTP, то только его нам и остается сканировать на предмет вирусов. Делать это удобнее и дешевле на сервере при помощи открытого ПО, чем мы и займемся. Для проверки наличия вирусов традиционно предлагаю использовать наиболее распространенный из свободных антивирусов - Clam AntiVirus (http://www.clamav.net). Я не буду подробно рассказывать о его преимуществах и особенностях, о которых уже написано в статьях [1, 2, 3]. Сегодня мы разберем практические вопросы установки и интеграции антивируса с прокси-сервером. В качестве прокси мы возьмем HTTP AntiVirus proxy (HAVP) [4]. Помимо HAVP также рассматривались и другие варианты. Но они либо на платной основе в случае коммерческого применения как dansguardian.org (plug-in к нему), либо показались менее стабильными, по отзывам в форумах. Наверняка это не единственное, и, возможно, не самое лучшее решение, но тем не менее оно существует и вполне справляется с поставленными задачами. С возможными альтернативными вариантами вы можете ознакомиться по ссылке [5]. HTTP AntiVirus proxy - это прокси-сервер с фильтром - антивирусом. Сканируется весь трафик, и проверка на вирусы является единственной задачей данного прокси-сервера. Поэтому вполне разумным было бы использовать HAVP в связке с кэширующим прокси, умеющим фильтровать трафик, например Squid. Ключевыми особенностями HAVP являются возможность непрерывной проверки трафика без тайм-аутов и блокировок, а также корректная работа с динамическими и защищенными паролем страницами. Предполагается, что у вас уже имеется настроенный прокси-сервер, например Squid. На момент написания статьи последней версией HAVP была 0.62. Установка производилась на Red Hat Linux Enterprise 4, но без проблем все должно работать и на других UNIX-системах. Устанавливаем HAVP Для начала создадим отдельную ФС для временных файлов HAVP. Отдельную - потому что ее необходимо монтировать с поддержкой так называемых "ручных блокировок" для файлов (mandatory locks). Это делается при помощи опции mand, команды mount. Я предпочел для ускорения работы и снижения нагрузки на дисковый массив создать такую файловую систему в ОЗУ: # mkdir /var/tmp/havp # chown nobody /var/tmp/havp # chgrp nobody /var/tmp/havp # mount -t tmpfs -o size=100M,mand tmpfs /var/tmp/havp Соответствующая строчка, которую необходимо добавить в /etc/fstab для автоматического создания файловой системы во время загрузки, выглядит следующим образом: # fs mt_point type options dump pass tmpfs /var/tmp/havp tmpfs auto,size=100M,mand 0 0 Проверяем, как смонтировалась наша файловая система. Мы должны получить что-нибудь похожее на: # df -h /var/tmp/havp tmpfs 100M 0 100M 0% /var/tmp/havp Кроме того, создадим директорию для лог-файлов прокси-сервера и выставим владельца: # mkdir /var/log/havp # chown nobody /var/log/havp # chgrp nobody /var/log/havp Теперь развернем предварительно скачанный со странички [4] исходные коды прокси-сервера. # tar zxvf havp-0.62.tar.gz Далее, заходим в директорию havp-0.62 и начинаем править файл havp/default.h. Изменить требуется следующее: #define GROUP "nobody" // В дополнение к пользователю, из-под которого будет запускаться // служба, меняем на nobody и группу #define PARENTPROXY "localhost" #define PARENTPORT 3128 // Указываем хост и порт, на котором установлен кэширующий // прокси-сервер, например Squid. Если "родительского" // прокси у вас нет, то комментируем #define SCANTEMPFILE "/var/tmp/havp-XXXXXX" #define ACCESSLOG "/var/log/havp/access.txt" #define ERRORLOG "/var/log/havp/error.txt" // Указываем шаблон временных файлов и имена файлов журналов. При этом // все три указанные директории и два // файла журналов должны быть созданы вручную и иметь соответствующие // разрешения для пользователя, // из-под которого запускается HAVP. Естественно, вы можете изменить // пути и названия файлов по своему усмотрению Остальное можно оставить без изменений. Теперь выполним стандартные для компиляции и установки программы шаги: # ./configure # make # make install Сервис запускается командой /usr/local/bin/havp. Следующим шагом необходимо установить антивирус Clamav. Как это делать, описано ниже. Устанавливаем Clamav Про установку антивируса Clamav читайте в [1, 2, 3]. Здесь же я приведу минимально необходимые для установки сведения. Добавляем группу и пользователя, из-под которого будет запускаться демон: # groupadd clamav # useradd -g clamav -s /bin/false clamav Скачиваем с сайта проекта [6] последнюю версию исходников, разархивируем и правим в clamav-config.h переменную SCANBUFF. Ее значение должно быть меньше, чем указанное в переменной MAXRECV файла havp/default.h. После чего выполняем привычные: # ./configure # make # make install Добавляем в crontab строчку, запускающую команду по обновлению антивирусных баз: 1 * * * * /usr/local/bin/freshclam -quiet Правим файл /usr/local/etc/clamav.conf. Добавляем: LocalSocket /var/run/clamd.sock и удаляем строчку: Example Наконец, запускаем демон командой: # /usr/local/sbin/clamd Теперь пробуем проверить наше свежеустановленное решение. После того как в настройках браузера укажете порт, назначенный HAVP, и IP-адрес прокси, по ссылке [7] можно попробовать скачать тестовую сигнатуру вируса. Не забудьте запретить пользователям подключаться напрямую к Squid. Если все получилось, то я могу вас поздравить с очередным успешным шагом в создании защищенной локальной сети. Литература, ссылки: 1. Маркелов А. Броня моллюска. Обзор и установка антивируса ClamAV. - Журнал "Компьютерра" No.21, 2004 г. - 34-35 с. Статья доступна в Интернете по адресу: http://www.markelov.net/articles.php?lng=ru&pg=44. 2. Яремчук С. Свободный антивирус. - Журнал "Системный администратор", No.8, 2004 г. - 24-25 с. 3. Супрунов С. Еще раз о ClamAV: особенности установки в FreeBSD. - Журнал "Системный администратор", No.3, 2004 г. - 32-37 с. 4. HAVP - http://www.server-side.de. 5. Методы проверки HTTP-трафика при помощи Clamav - http://www.clamav.net/3rdparty.html#webftp. 6. http://www.clamav.net. 7. Тестовая сигнатура вируса - http://www.eicar.org/anti_virus_test_file.htm

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру