The OpenNET Project / Index page

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

Проверка Squid трафика на вирусы используя DrWeb (squid virus drweb filter)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: 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 был настроен для работы как &#171;прозрачный прокси&#187;, поэтому ядро компилировалось с опцией 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 и некоторые разъяснения специалистов компании производителя на форуме. Горыч.

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

Обсуждение [ RSS ]
  • 1.1, Vershinin Egor (?), 19:11, 11/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Несколько дополнений:

    1) Собирать статистику о вирусах можно так:
    cd /var/drweb/log
    grep "infected" drweb-icap.log

    Если у нас установлена последняя версия модуля DrWeb-Icap, в полученных данных будет все, что нужно (вирус, дата, ресурс, ip-адрес проказника)

    2) Ничего не сказано про скрипты запуска и порядок, в котором они должны стартовать:
    Переходим в каталог /usr/local/etc/rc.d
    Переименовываем скрипты:
    mv drwebd.sh 00.drwebd.sh
    mv drweb-icap 01.drweb-icap.sh
    touch 02.squid.sh
    Следуя документации, скрипты должны запускаться именно в этом порядке.

    А так ничего, неплохая статейка :)

     
     
  • 2.8, Горыч (?), 10:54, 12/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за замечание. В моей версии Drweb он создавал скрипты запуска 00.drwebd.sh и 00.drweb-icap.sh. Т.е. получается:

    mv 00.drweb-icap 01.drweb-icap.sh
    touch 02.squid.sh

     

  • 1.2, Vershinin Egor (?), 19:16, 11/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И еще кое-что:
    Если вирус попал в кэш ранее (до установки DrWeb, либо вирус DrWeb не опознал (базы старые, новый вирь и т.п.), то в следующий раз клиенту вирус будет выдан из кэша Squid-а, и DrWeb никак не отреагирует.

    Это малюсенький недостаток ;)

     
  • 1.3, guest (??), 19:35, 11/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    squid + dansguardian + clamav
     
  • 1.4, alex (??), 20:14, 11/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    было бы не плохо если бы автор указал какой сканер он использовал:
    Dr. Web® для Unix и DOS
    или
    Dr. Web для файловых серверов Unix
    (полное наименование продуктов с сайта производителя)
     
     
  • 2.6, Tzong (??), 09:56, 12/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Автор использовал антивирусный пакет Dr.Web, который доступен на сайте:
    http://download.drweb.com/unix

    Там Вы найдёте все необходимые компненты.

     

  • 1.5, dawnshade (?), 20:52, 11/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все хорошо, только автор не указал что у сквида 2,5 с икапом дичайшая утечка дескрипторов.
    Да и играть в ластах в футбол (устанавливать с сырцов) не надо - икаповский патч давно, еще с STABLE13 интегрирован во фревые порты.
     
     
  • 2.7, Tzong (??), 10:03, 12/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Все хорошо, только автор не указал что у сквида 2,5 с икапом
    >дичайшая утечка дескрипторов.
    >Да и играть в ластах в футбол (устанавливать с сырцов) не надо
    >- икаповский патч давно, еще с STABLE13 интегрирован во фревые порты.

    Dr.Web не рекомендует использовать Squid с поддержкой ICAP, взятый с официального сайта. К сожалению, разработчики Squid не приняли все патчи, которые им направляли программисты Dr.Web. Поэтому слаженная работа drweb-icapd гарантируется только с патченным самим Dr.Web'ом Squid'ом.

     

  • 1.9, mix (??), 13:13, 18/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как оказалось и с доктор вебовским сквидом ничего не гарантируется.

    Сквид падает в дамп 10-15 раз в день
    в лог идет сообщение:

    2006/05/17 11:31:03| assertion failed: comm.c:648: "F->type != FD_FILE"

    Техподдержка DrWeb уже месяц! чешет репу и ничего не может ответить.

    squid 2.5.STABLE12 (с их сайта)
    icap daemon, version 4.33 (Mar 27 2006)

     

    игнорирование участников | лог модерирования

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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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