|
Ключевые слова: squid, virus, drweb, filter, (найти похожие документы)
From: Горыч <step107@yandex.ru.> Newsgroups: email Date: Mon, 11 May 2006 14:31:37 +0000 (UTC) Subject: Проверка Squid трафика на вирусы используя DrWeb Настройка проверки трафика проходящего через прокси-сервер Squid на вирусы с помощью антивируса Drweb for Unix. Целю данной статьи было поделится опытом, а также тонкостями настройки проверки HTTP-трафика, проходящего через прокси-сервер Squid на вирусы с помощью антивируса Drweb. Каждый администратор сталкивается в своей работе с проблемой антивирусной защиты. Сегодня интернет стал источником повышенной вирусной опасности. Поэтому проверка трафика, получаемого извне на вирусы на ранней стадии, т.е. на сервере, обеспечивающем доступ в Интернет, по-моему, является важной частью безопасности сети. В данном обзоре описаны настройки связки антивируса и прокси-сервера, поэтому настройка сквида и firewall будут упомянуты лишь в той части, которая необходима для функционирования этой конструкции. Замечу также, что антивирус Drweb является коммерческим продуктом, и для его функционирования необходим ключ, который на момент настройки был в моем распоряжении. Но для тестовой сборки на сайте http://www.drweb.com, после регистрации, можно получить демо-ключ с ограниченным сроком действия (30 дней). Также возможна настройка взаимодействия Drweb с другими прокси-серверами: SafeSquid и Shweby (см. документацию к антивирусу). При настройке сервера использовались: 1. FreeBSD 5.4. 2. Пропатченный Squid (с icap), скаченный с сайта производителя и рекомендованный для установки (они позволят полностью использовать функционал drweb-icap). 3. Drweb + Drweb-icap, также полученные с сайта. Squid был настроен для работы как «прозрачный прокси», поэтому ядро компилировалось с опцией IPFIREWALL_FORWARD для поддержки перенаправления пакетов, а также создано правило перенаправляющее пакеты, которые идут из локальной сети по http на порт 3128 прокси-сервера: fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80 in via fxp0 Устанавливаем Squid: # tar zxvf squid-icap-2.5-STABLE12-20060215-drweb-patched.tar.gz # cd squid-icap-2.5-STABLE12-20060215-drweb-patched # ./configure # make # make install Пример конфигурационного файла squid.conf: http_port 127.0.0.1:3128 icp_port 0 cache_mem 64 MB cache_swap_high 95 cache_swap_low 90 cache_dir ufs /usr/local/squid/var/cache 3072 16 256 cache_access_log /usr/local/squid/var/logs/access.log cache_log /usr/local/squid/var/logs/cache.log cache_store_log /usr/local/squid/var/logs/store.log hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY error_directory /usr/local/squid/share/errors/Russian-1251 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 22 # ssh acl Safe_ports port 443 # https acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports acl Users src "/usr/local/squid/etc/UsersList" acl IPList dst "/usr/local/squid/etc/IPList" acl FileList urlpath_regex -i "/usr/local/squid/etc/FileList" acl DomainList dstdomain "/usr/local/squid/etc/DomainList" http_access deny FileList http_access deny IPList http_access deny DomainList http_access allow Users http_access deny all cache_effective_user squid cache_effective_group squid #Настройки необходимые для взаимодействия squid с drweb-icap icap_enable on icap_service service_1 respmod_precache 0 icap://localhost:1344/respmod no-keep-alive icap_class class_1 service_1 icap_access class_1 allow all icap_preview_enable on icap_preview_size 0 Итак, мы имеем в распоряжении шлюз с настроенным прокси-сервером. Устанавливаем Drweb. На момент написания статьи он имел версию 4.33. Также для установки и последующего обновления нам потребуется wget и для взаимодействия со squid - drweb-icapd-4.33.1-freebsd54.tar.gz. #pkg_add drweb-4.33.tbz При установке добавляется задание на обновление антивирусных баз два раза в час, причем минуты устанавливаются произвольно. Распаковываем drweb-icapd-4.33.1-freebsd54.tar.gz и копируем содержимое архива, сохраняя структуру каталогов. Кладем ключ (drweb32.key) в директорию /usr/local/drweb/. Для обновления Drweb нам необходимо настроить wget. Для этого в файле /usr/local/etc/wgetrc прописываем параметры: use_proxy = on http_proxy = http://127.0.0.1:3128/ В документации указан рекомендуемый порядок загрузки взаимодействующих элементов: 1. демон Drweb 2. drweb-icap 3. прокси-сервер. При установке создаются 2 скрипта запуска в /usr/local/etc/rc.d 00.drweb-icap.sh и 00.drweb.sh Соответственно для последовательной загрузки необходимо переименовать 00.drweb.sh в 01.drweb.sh, а скрипт squid.sh в 02.squid.sh. Перезагружаемся и проверяем работу нашей конструкции: #sockstat -4 | grep "drweb*" Результат должен быть таким: drweb drwebd 580 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 579 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 578 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 576 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 575 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 574 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 573 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 572 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 571 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 570 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 569 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 568 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 565 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 564 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 563 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 562 4 tcp4 127.0.0.1:3000 *:* drweb drwebd 561 4 tcp4 127.0.0.1:3000 *:* drweb drweb-icap 557 3 tcp4 127.0.0.1:1344 *:* Обновляем базы Drweb: #/usr/local/drweb/update.pl Результат: Dr.Web (R) update details: Update server: http://update.msk3.drweb.com/unix/433 Update has began at Mon May 8 11:25:10 2006 Update has finished at Mon May 8 11:25:20 2006 Following files had been updated: /var/drweb/bases/dwntoday.vdb /var/drweb/bases/drwrisky.vdb /var/drweb/bases/dwrtoday.vdb /var/drweb/bases/drwnasty.vdb /var/drweb/bases/drwtoday.vdb Если используется ограничение доступа для пользователей локальной сети, мой случай, то в файле, содержащем эти списки необходимо добавить адрес 127.0.0.1 для того чтобы Drweb мог обновляться, используя прокси-сервер. Правим в drweb-icapd.ini параметры Infected, Suspicious и Incurable в значение report и заходим по ссылке: http://www.eicar.org/download/eicar.com. В окне браузера мы должны увидеть предупреждение о зараженном файле. При работе были проблемы с прокси-сервером и icap. Возникала ошибка о падении icap, и через некоторое время прокси начинал тормозить. Проблема решилась добавлением опции no-keep-alive в настройки icap squid. Эта настройка необходима, так как drweb-icapd сейчас не поддерживает постоянные соединения и может вызвать проблемы при работе сервера. К сожалению, возможности получения статистических данных на данный момент тоже ограниченны. На сайте производителя можно скачать drweb-agent, собирающий статистику о количестве вирусов, которую можно посмотреть на сайте статистики. В будущем надеюсь, данный функционал будет доработан, о чем заявлено на форуме компании. Также возможно настроить проверку ftp проходящего через прокси. Подробнее об этом можно почитать в документации к антивирусу. К тому же не ведется проверка https, т.к. в этом тоже нет необходимости. При настройке прокси-сервера использовались материалы, полученные с сайта http://www.opennet.dev, а также документация с сайта http://www.drweb.com и некоторые разъяснения специалистов компании производителя на форуме. Горыч.
|
Обсуждение | [ RSS ] |
|
Добавить комментарий |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |