LINUX.ORG.RU
решено ФорумAdmin

Антивирус Касперского для Proxy Server


0

2

Linux(Squid+Kaspersky)=Condom

Задача: на сервере под управлением Fedora10 поднять Squid с защитой трафика через Kaspersky.

Проблема в сборке C-Icap... Никак не хочет собраться, хотя когда-то смог у моего начальника (сейчас все издевательства идут на виртуалке, и повторить его извраты многолетней давности у меня не выходит).

Прочитал вот это: http://ajc.su/antivirusy/test-obzor-ustanovki-antivirusa-kasperskogo-dlya-pro... Заглянул в сеть и что-то не встретил необходимость icap для Squid3. Да и в доках Каспёрдыча сказано прямым текстом - нужно собрать официальный Squid3 из сорцы с параметрами конфигура «включить-icap-клиент».

Вопрос: так что, C-Icap не нужен при Squid3? И как тогда ставить/настраивать сие чудо? (по приведёной выше ссылке мне понимания особо не прибавилось, так как я молодой ещё и опыта не хватает для понимания что и на каком этапе было сделано автором тест-обзора).

★★

icap есть сервер, есть клиент (модуль в squid). Нужно и то и другое.

Модуль клиента официально появился в squid3, squid -v скажет собран ли squid с клиентом icap.

c-icap сервер написаный на C, не обязательно именно он нужен, помнится было что-то еще перловое.

Уже для CentOS 5 c-icap есть в rpm, что-то уж больно старая Федора, может все-же можно rpm и для нее найти?

lvi ★★★★ ()
Ответ на: комментарий от lvi

Федора, все же не сервер, уж больно скоротечная, 14-я уже не обновляется, а на 10-ую вообще трудно что найти.

lvi ★★★★ ()
Ответ на: комментарий от lvi

...уж больно скоротечная...

Что есть - того не отнять. Федора10 х64 не только старая, но и перекопана не слабо. На ней лежит собраный статически из исходников icap, но он, судя по конфигурирующему скрипту, настроен на КламАВ, и найти чекинсталл для сборки этого кода в RPM-пакет тоже не получается - действительно проблема в старой версии федорки и в том, что под неё сложно что-либо найти в собраном виде из-за архитектуры.

Спасибо за информацию о том как вытянуть конфигурацию из кальмара: "--enable-icap-client" есть, а сам сквид версии 3. Значит, нужно раздобыть и поставить icap-сервер...

zzdnx ★★ ()
Ответ на: ...уж больно скоротечная... от zzdnx

Последний раз собирал года 3 назад, была версия c_icap-060708, это какая-то разновидность 0.1.6. Помнится, что с каких-то пор перестала собираться, пришлось патчить ей c-icap-conf.h. Сейчас последняя для скачивания c_icap-0.1.7, там c-icap-conf.h совсем другой, может и соберется. Опять-же собирал для Клама, где модуль для Касперского берется, понятия не имею.

lvi ★★★★ ()
Ответ на: комментарий от lvi

В доках касперского про пересборку (C-)Icap`а вообще ни слова нет. Есть заметка о необходимости патчить сквиды разных версий для поддержки протокола этого протокола, в том числе и заметка о пересборке третьего сквида с параметром включения клиента.

Из попыток сборки сервера icap понял что собрать без кламава не выйдет.... Бьюсь над компиляцией.

zzdnx ★★ ()
Ответ на: комментарий от zzdnx

Жаль что тут редактировать нельзя на скорую руку...

протокола этого протокола, - тьфу, нерусь, блин...

zzdnx ★★ ()
Ответ на: комментарий от zzdnx

Начинаю вспоминать, весь сыр-бор с патченьем был из-за Клама, как-то резко они библиотеки поменяли и c-icap перестал собираться. Сейчас смотрю в 0.1.7, модули вытащили из исходников в отдельный архив, но модули те-же, кламовский и url. Как он с Каспером взаимодействует не знаю. А через редирект, или как там сейчас, реврайт, нельзя Каспера к сквиду прикрутить.

lvi ★★★★ ()
Ответ на: комментарий от lvi

Каспера к сквиду прикрутить.

Кальмар настраивается на айкап, который гонит все данные на порт 1344 (кажись, именно этот порт каспер облюбовал), и ждёт на него вердикт антивируса. На первый взгляд всё просто и понятно, а вот реализация тянется медленно.

zzdnx ★★ ()
Ответ на: Каспера к сквиду прикрутить. от zzdnx

1344 - это стандартный ICAP-повский порт, случаем не свой ICAP-сервер у Каспера. Про c-icap они что-нибудь пишут? Может он и не нужен, и я голову морочу. c-icap - это всего лишь одна разновидность ICAP-сервера. Если есть клиент, то и сервер должен быть, другое дело какой и где.

lvi ★★★★ ()
Ответ на: Каспера к сквиду прикрутить. от zzdnx

гонит все данные на порт 1344

Если Каспер слушает порт 1344, то он и есть ICAP-сервер. ICAP-сервер - это фильтр перед сквидом, когда squid настроен на работу с ICAP, то он соединяется с ICAP-сервером по 1344 порту, и все шлет туда и от-туда получает, точно так-же браузер со сквидом. ICAP-сервер не стучится на порт 1344, от его слушает и ждет соединений. Времена меняются, возможно сейчас Касперские и представляют свой сервис в виде ICAP-сервера. Опусти c-icap, подними Касперского, и netstat'ом проверь, слушает ли он icap-порт, типа netstat -l|grep icap/.

lvi ★★★★ ()
Ответ на: комментарий от lvi

Из документации Касперского

При установке приложения автоматически выполняется следующая настройка:
1. Антивирус Касперского настраивается на автоматический запуск при
загрузке операционной системы и ожидание запросов со стороны
Squid-прокси на порт 1344 для всех сетевых интерфейсов сервера.
2. В раздел ICAP OPTIONS конфигурационного файла Squid-прокси,
указанного при инсталляции приложения, вносятся следующие
строки:
...
определяющие, что все запрошенные объекты будут переданы
Антивирусу Касперского на порт 1344 локального интерфейса.

---------------------
README-SQUID
---------------------
To integrate Squid with kav4proxy, the ICAP protocol support must be enabled.
The official version of Squid 3.0 has ICAP support.
The latest snapshots are available in your OS distribution or at http://www.squid-cache.org/Versions/v3/3.0/
To turn on ICAP support, run 'configure' in the Squid sources directory with '--enable-icap-client' option and then build:
# ./configure --enable-icap-client
# make

Сбор сквида завершён без ошибок, --enable-icap-client теперь присутствует. Устанавливаю Касперского - упорно требует ключи лицензии... Пробовал игнорить это, но без ключей антивирус просто отказывается работать, и netstat с grep 1344 не давали никакого результата - или сервер антивирусной системы вообще незапущен, или требуется icap.

zzdnx ★★ ()
Ответ на: комментарий от lvi

Starting ICAP server: * Starting Kaspersky Anti-Virus ICAP server kav4proxy ...done.

Reconfigure Squid - FATAL: Did not find ICAP class 'ic_kav_req' referenced on line 4622

$ netstat -l | grep 1344
tcp 0 0 localhost:1344 *:* LISTEN
zzdnx ★★ ()
Ответ на: комментарий от zzdnx

Did not find ICAP class 'ic_kav_req' referenced on line 4622

Повнимательней с конфигом squid,

icap_class Класс Сервис1 Сервис2

Каждый Сервис должен быть описан с помощью icap_service, далее icap_access для класса «Класс», ну и сам icap должен быть включен

icap_enable on

lvi ★★★★ ()
Ответ на: комментарий от lvi

Обсуждение временно приостанавливается...

Пока Касперский не выдаст мне ключи (хотябы пробные, триальные) делать всё равно нечего... Конфиг сквида (секция icap):

icap_enable on
icap_send_client_ip on
icap_service is_kav_resp respmod_precache 0 icap://127.0.0.1:1344/av/respmod
icap_service is_kav_req reqmod_precache 0 icap://127.0.0.1:1344/av/reqmod
icap_class ic_kav_resp is_kav_resp
icap_class ic_kav_req is_kav_req
icap_access ic_kav_req allow all !acl_kav_GET
icap_access ic_kav_resp allow all 
Так советуют это оформить в сети:
icap_enable on
icap_send_client_ip on
icap_service is_kav_resp respmod_precache 0 icap://localhost:1344/av/respmod
#icap_service is_kav_req reqmod_precache 0 icap://localhost:1344/av/reqmod
#icap_class ic_kav is_kav_req is_kav_resp
icap_class ic_kav is_kav_resp
icap_access ic_kav allow all

zzdnx ★★ ()

Новая информация.

Долго и упорно воевал со сквидом - или не собирается, или не работает... В итоге дошла до меня идея - ковырнуть параметры сборки репозиторного кальмарчика. Итог - "--enable-icap-client" ВКЛЮЧЁН! То есть сборка из исходного кода была изначально неоправдана.

Поставил из Webmin кальмара и KAV из терминала. Последний скушал тестовую лицензию, слил сигнатуры и на этом всё. Теперь вопрос - как настроить взаимодействие кальмара с касперским?

Взял изменения конфигов по офиуиальной PDF-документации антивируса. Итог: SQUID просто не останавливается или не запускается, при этом ни на что не ругаясь. KAV не запускается и жалуется на недописанные в конфиге, но очень важные и крайне нужные параметры, о которых в документации ни слова.

Вернул конфиги в прежний вид - обе программы снова живут, но своей собственной, независимой жизнью.

Попробовал вписать касперскому требующиеся в его консольных жалобах параметры так как они, в основном, касались правил проверки в зависимости от размера файла - всем параметрам дал значение «пропустить», но таким макаром наткнулся на несколько параметров, в которых непонятно что писать... Гугл отправил на глючную страницу сайта касперского, где я узнал о последних изменениях строения конфига. Страничка поведала что в очередной раз что-то выпилили, что-то вкрутили в КАВ и за что ПРИМЕРНО новые фичи отвечают, но как ими пользоваться - ни слова. В манах самого пакета ничего не сказано.

Брожение по ресурсам интернета ничего нового не дало.

zzdnx ★★ ()
Ответ на: Новая информация. от zzdnx

Странность кальмара

Долго и упорно воевал со сквидом - или не собирается, или не работает... В итоге дошла до меня идея - ковырнуть параметры сборки репозиторного кальмарчика. Итог - "--enable-icap-client" ВКЛЮЧЁН! То есть сборка из исходного кода была изначально неоправдана.

Поставил всё (SQUID 3.0 репозиторный c ICAP-клиентом), донастраиваю по докам Лаборатории Касперского конфиг сквида:

# ACCESS CONTROLS
acl acl_kav_GET method GET

# ICAP OPTIONS
icap_enable on
icap_send_client_ip on
icap_service is_kav_resp respmod_precache 0 icap://127.0.0.1:1344/av/respmod
icap_service is_kav_req reqmod_precache 0 icap://127.0.0.1:1344/av/reqmod
icap_class ic_kav_resp is_kav_resp
icap_class ic_kav_req is_kav_req
icap_access ic_kav_req allow all !acl_kav_GET
# icap_access ic_kav_req allow all
icap_access ic_kav_resp allow all 

Теперь KAV. Поставил, лицензировал, обновил сигнатуры. Дописываю по материалам тест-обзора KAV: http://ajc.su/antivirusy/test-obzor-ustanovki-antivirusa-kasperskogo-dlya-pro...

[icapserver.filter]
ExcludeURL=^www\.example\.com\/.*
[icapserver.engine.options]
ScanPacked=yes
ScanArchives=yes
ScanMailBases=no
ScanMailPlain=no
UseHeuristic=yes
Cure=yes
UseAVbasesSet=standard
MaxScanTime=300
[icapserver.actions]
InfectedAction=deny
SuspiciousAction=deny
WarningAction=deny
ErrorAction=skip
ProtectedAction=skip
CorruptedAction=skip
CuredAction=skip
LicenseErrorAction=skip
BasesErrorAction=deny
[icapserver.statistics]
CounterStatisticsFile=
AVStatisticsFile=/var/log/kaspersky/statistic
AVStatisticsAddress=
Не найдено (unknown parameters): UseAVbasesSet и UseHeuristic. После убийства этих строк в конфиге старт антивируса успешен.

Попытка открыть страницу интернета через прокси ничего не даёт - вечное ожидание ответа. В логах сквида ни слова об ошибках, касперский тоже молчит. Вайршарком пользоваться до путя не умею, но как я понял запросы от меня уходят, а ответов нет. Отключал антивирь (по ходу он вообще не при делах) - не помогло. Пробовал интернет в обход прокси - всё работвет. Ну и как их сдружить?

zzdnx ★★ ()
Ответ на: Странность кальмара от zzdnx

Re: Странность кальмара

на этой неделе сам строил кальмара на FreeBSD и кламава. про кальмара могу сказать одно: надо прописать ему что-то типа http_port 127.0.0.1 transparent (или intercept в зависимости от версии кальмара) и еще надо прописать в файере форвардинг трафика из внутренней сети на 127.0.0.1,3128 у меня это выглядит так: ipfw add 70 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80

anonymous ()
Ответ на: Re: Странность кальмара от anonymous

Мне не нужен сейчас прозрачный прокси. Дело в I-CAP. Если его отключить - прокси работает... Отключал REQ - проси мёртвая, отключал RESP (из-за которого вся затея и началась) - прокси не работает... Вынес в отдельный топик обсуждение этой проблемы SQUID3.

zzdnx ★★ ()
Ответ на: комментарий от zzdnx

http://www.linux.org.ru/forum/admin/7634710

Как показал анализ - с кэшем всё в порядке. Он работает, но при включении канала icap в сторону антивируса - перестаёт, и это свидетельствует о проблемах с антивирусом, а не squid`ом. Ковыряем Касперского...

zzdnx ★★ ()
Ответ на: http://www.linux.org.ru/forum/admin/7634710 от zzdnx

Конфиг KAV

Вот так выглядит этот конфиг:

[path]
BasesPath=/var/opt/kaspersky/kav4proxy/bases
LicensePath=/var/opt/kaspersky/kav4proxy/licenses
TempPath=/tmp
KLPluginsPath=/opt/kaspersky/kav4proxy/lib/ppl

[options]
User=kluser
Group=klusers

[locale]
DateFormat=%d-%m-%Y
TimeFormat=%H:%M:%S
[icapserver.network]
ListenAddress=localhost:1344
Timeout=0

[icapserver.process]
MaxChildren=3
IdleChildren=1
MaxReqsPerChild=1024
MaxEnginesPerChild=3
[icapserver.protocol]
AnswerMode=partial
MaxSendDelayTime=10
PreviewSize=0
MaxConnections=5000
Allow204=true
HTTPClientIpICAPHeader=X-Client-IP
HTTPUserNameICAPHeader=X-Client-Username
SendAVScanResult=false
ReqModeServiceUrl=av/reqmod
RespModeServiceUrl=av/respmod

[icapserver.path]
PidFile=/var/run/kav4proxy/kavicapserver.pid
CorePath= 

[icapserver.groups]
Priority=0
ClientIP=.*
URL=.*

[icapserver.engine.options]
ScanPacked=yes
ScanArchives=yes
ScanSFXArchives=yes
ScanMailBases=yes
ScanMailPlain=yes
Cure=yes
MaxScanTime=300
UseAnalyzer=yes
HeuristicLevel=recommended
MaxNestingLevel=8

[icapserver.filter]
ExcludeMimeType= 
ExcludeURL=^www\.example\.com\/.*
MaxReqLength=0

[icapserver.actions]
InfectedAction=deny
SuspiciousAction=deny
WarningAction=deny
ErrorAction=skip
ProtectedAction=skip
CorruptedAction=skip
CuredAction=skip
LicenseErrorAction=skip
BasesErrorAction=deny
MaxReqLengthAction=skip
PartialResponseAction=check
PartialRequestAction=check

[icapserver.notify]
NotifyTemplateDir=/opt/kaspersky/kav4proxy/share/notify
NotifyScript= 

[icapserver.statistics]
CounterStatisticsFile= 
AVStatisticsFile=/var/log/kaspersky/statistic
AVStatisticsAddress= 

[icapserver.report]
ReportFileName=/var/log/kaspersky/kav4proxy/kavicapserver.log
Buffered=false
ReportLevel=4
ShowOk=true
Append=true
AVReportFileName=/var/log/kaspersky/kav4proxy/av_server_log
AVReportLevel=4

[updater.path]
BackUpPath=/var/opt/kaspersky/kav4proxy/bases.backup
AVBasesTestPath=/opt/kaspersky/kav4proxy/lib/bin/avbasestest

[updater.options]
KeepSilent=no
UseUpdateServerUrl=no
UseUpdateServerUrlOnly=no
PostUpdateCmd=/etc/init.d/kav4proxy reload_avbase
RegionSettings=Russia
ConnectTimeout=30
ProxyAddress=
UseProxy=no
PassiveFtp=no

[updater.report]
ReportFileName=/var/log/kaspersky/kav4proxy/keepup2date.log
ReportLevel=4
Append=true

zzdnx ★★ ()
Ответ на: Конфиг KAV от zzdnx

Решили отказаться от глупости KAV. Настроили DrWEB. Работает.

zzdnx ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.