Информационные технологииStfw.Ru 🔍

Проверка Squid трафика на вирусы используя DrWeb

squid virus drweb filter Горыч
🕛 20.09.2006, 11:02
Настройка проверки трафика проходящего через прокси-сервер 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.ru, а также документация с сайта http://www.drweb.com
и некоторые разъяснения специалистов компании производителя на форуме.


Горыч.

Unix   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉