squid+icap [Solved]
День добрый всем!
Достаточно долго бьюсь со связкой clamav+icap+squid. Проблема такая...
Поставил из сырцов 3-й squid, прикрутил к нему icap... И все-то запускается... И работает все спокойно... Но стоит попытаться качнуть тестовый вирус - клиенту выдается ошибка 403 и все... Никаких сообщений о вирусе, ничего. Можно было бы тут успокоиться (ибо вирус-то все таки не закачен), но при попытке качать любой файлик получается такая штука: он заливается на шлюз... И пока он заливается, пользователь ничего не видит. Если пользователь прерывает закачку повторным началом закачки, то получает 403 ошибку, а icap говорит в логах, что не может создать такой временный файл (конечно, он же уже создан, но не докачен). Если дождаться докачки, то можно его забирать... Но это только в том случае, если мы терпеливо ждали (без видимых изменений на экране), когда пройдет закачка.
В общем вопрос - если кто эту связку настроил, подскажите, какова нормальная работа сквида и икапа? Как это выглядит для клиента и что должно светиться в логах
- Для комментирования войдите или зарегистрируйтесь
Тройку не
Тройку не пробовал, ветка 2.6-icap из cvs работает с января этого года. C-icap тоже из cvs. При попытке скачать вирус выводит html страничку с предупреждением и типом вируса. Чтобы пользователи не пугались, перевел ее на русский и немного подрихтовал. В логах это выглядит примерно так:
Немного напрягает Error uncompressing gzip encoded obejct, как побороть не нашел, похоже это кривизна самого icap, использую так.
В c-icap.conf есть параметр srv_clamav.StartSendPercentDataAfter, который отвечает за отображение процентов пересылки данных, он по умолчанию стот 2M. Я поставил 200К, теперь практически сразу видно, как файл качается.
Дистр какой?
А то вроде как не генто-вау ставить из сырцов :)
squid3 давно есть в портежах, не забудь про флаги, связаные с icap,
сам ebuild c-icap-а возми у меня http://vi.net.ua/portage/net-misc/c-icap
он уже с патчами, сообщение о вире на русском и красиво показывает.
А для разруливания ситуации - желательно видеть конфиг сквида (только ICAP секцию)
и конфиг самого c-icap
в логах icap у
в логах icap у меня всплывает VIRUS DETECTED.... TAKING ACTION....Только при этом акшена не заметно ((
Дистр-то Gentoo ) На счет сырцов - простите ) Я только осваиваю gentoo ) Сырцы уже были, поэтому и работал с ними. Я попробую поставить из портежей, но очень бы хотелось победить сложившуюся сейчас ситуацию. Ибо я совсем в тупике....
Приведу фрагменты конфов. squid.conf (тут все прилично...):
icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav
icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav
icap_class class_antivirus_req service_avi_req
icap_class class_antivirus service_avi
icap_access class_antivirus_req allow all
icap_access class_antivirus allow all
И c-icap.conf:
PidFile /var/run/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 600
StartServers 3
MaxServers 10
MinSpareThreads 10
MaxSpareThreads 20
ThreadsPerChild 10
MaxRequestsPerChild 0
Port 1344
User nobody
Group nobody
TmpDir /tmp
MaxMemObject 131072
ServerLog /opt/c_icap/var/log/server.log
AccessLog /opt/c_icap/var/log/access.log
DebugLevel 3
ModulesDir /opt/c_icap/lib/c_icap
Module logger sys_logger.so
Module perl_handler perl_handler.so
sys_logger.Prefix "C-ICAP:"
sys_logger.Facility local1
Logger file_logger
acl localsquid_respmod src 127.0.0.1 type respmod
acl localsquid src 127.0.0.1
acl externalnet src 0.0.0.0/0.0.0.0
icap_access allow localsquid_respmod
icap_access allow localsquid
icap deny externalnet
ServicesDir /opt/c_icap/lib/c_icap
Service echo_module srv_echo.so
Service url_check_module srv_url_check.so
Service antivirus_module srv_clamav.so
srv_clamav.ScanFileTypes TEXT DATA EXECUTABLE ARCHIVE GIF JPEG MSOFFICE
srv_clamav.SendPercentData 5
srv_clamav.StartSendPercentDataAfter 2M
srv_clamav.Allow204Responces off
srv_clamav.MaxObjectSize 5M
srv_clamav.ClamAvTmpDir /tmp
srv_clamav.ClamAvMaxFilesInArchive 0
srv_clamav.ClamAvMaxFileSizeInArchive 100M
srv_clamav.ClamAvMaxRecLevel 1
srv_clamav.VirSaveDir /var/infected
srv_clamav.VirHTTPServer "http://10.0.0.1/cgi-bin/get_file.pl?usename=%f&remove=1&file="
srv_clamav.VirUpdateTime 15
srv_clamav.VirScanFileTypes ARCHIVE EXECUTABLE
Вроде все по шаблону... ((
У меня работает
У меня работает с этими конфигами
мой squid.conf
icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/antivirus_module
icap_service service_avi respmod_precache 1 icap://localhost:1344/antivirus_module
icap_class class_antivirus_req service_avi_req
icap_class class_antivirus service_avi
icap_access class_antivirus allow all
icap_access class_antivirus_req allow all
и c-icap.conf
PidFile /var/run/c-icap/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.sock
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 600
StartServers 5
MaxServers 20
MinSpareThreads 15
MaxSpareThreads 30
ThreadsPerChild 15
MaxRequestsPerChild 0
Port 1344
User nobody
Group nobody
TmpDir /tmp
MaxMemObject 131072
ServerLog /var/log/c-icap/server.log
AccessLog /var/log/c-icap/access.log
DebugLevel 1
ModulesDir /usr/lib/c_icap
Module logger sys_logger.so
sys_logger.Prefix "C-ICAP:"
sys_logger.Facility local1
Logger file_logger
acl externalnet src 0.0.0.0/0.0.0.0
acl localsquid_respmod src 127.0.0.1 type respmod
acl localsquid src 127.0.0.1
icap_access allow localsquid_respmod
icap_access allow localsquid
ServicesDir /usr/lib/c_icap
Service echo_module srv_echo.so
Service url_check_module srv_url_check.so
Service antivirus_module srv_clamav.so
ServiceAlias avscan srv_clamav?allow204=on&sizelimit=off&mode=simple
srv_clamav.ScanFileTypes TEXT DATA EXECUTABLE ARCHIVE GIF JPEG MSOFFICE
srv_clamav.SendPercentData 5
srv_clamav.StartSendPercentDataAfter 2M
srv_clamav.MaxObjectSize 5M
srv_clamav.ClamAvTmpDir /tmp
srv_clamav.ClamAvMaxFilesInArchive 0
srv_clamav.ClamAvMaxFileSizeInArchive 100M
srv_clamav.ClamAvMaxRecLevel 5
В конфиге сквида ты указываеш для икапа сервис srv_clamav - а где он у тебя описан в настройке икапа? нет его там...
Есть только сервис antivirus_module
Вири для тестирования можно взять здесь - http://www.nvkz.kuzbass.net/as - только обрати внимание что там дальше
по ссылкам надо вручную убирать \ которой оканчивается ссылка.
Не, вы будете
Не, вы будете смеяться, но даже дословное повторение приведенных выше конфов не привело к успеху... Все также: на вирус натыкаешься, в браузере запрет доступа, но ничего более. В логах icap пишеться, что обнаружен вирус... Я просто в тупике. Я пробовал сборку на squid 3-м и 2.5-м. Пробовал собирать на редхатовском дистрибе... Возможно косяк в самом с-icap. Попробую собрать из портежей... Может заработает :(
Урррра!
Урррра! Пересобрал все из портежей. А конкретно icap (спасибо за ebuild, кстати :)). И все стало ок! То есть проблема крылась в кривом icap, который я брал (вообще-то) с sourgeforge. Ну да ладно. Всем спасибо за содействие ;)
Хм. Сделал как
Хм. Сделал как написано, и получил один неприятный баг. Вирусы ищет, предупреждения выдает, но если зайти на сайт, который отдает контент в сжатом виде, получаем дулю с маком. links к приеру пишет (сначало задумывается на секунд 5) Error decompressing http://folding.extremeoverclocking.com/ with zlib: incorrect header check Хотя wget такие странички вроде как корректно закачивает. В чем может быть беда?
Читаем http://www.gento
Читаем
http://www.gentoo.ru/node/10655#comment-72512 в конце.
Очевидно надо отключить в броузерах запрос шифрования (для начала, а там уже смотреть где косяк).
Отключил в links
Отключил в links поддержку сжатых страниц и заработало.
Короче косяки
Короче косяки все равно замучили, посему пока пробую связку squid+havp+clamav вроде пашет. Завелось с пол пинка. Посмотрим как оно дальше будет.
Странички
Странички сжимаются только если браузер при установлении соединений подтвердил, что ймеет разжимать. wget не умеет. Я подозреваю что беда в том, что страничка на прокси-сервере разжимается и передается в разжатом виде, а зпголовки при этом не меняются и браузер считает, что страничка сжата.
Не сам прокси а
Не сам прокси а наверно c-icap разжимает... Может его можно научить не трогать страницы сжатые?
Точно
icap естественно их разжимает - иначе как он их проверит на вирусню? Кстати, обновился icap довольно основательно, ebuild что по ссылке выше я тоже обновил, работает нормально - тестирование идет на офисных работниках - не жалуются :)
Обновление Ebuild-а
Обновлен Ebuild c-icap что по ссылке выше.
Изменения - пофиксена работа с clamav версии 0.95 и выше, web-страница сообщения о вирусе нормально отформатирована
и сообщения на понятном языке, можно сразу посмотреть описание вируса.
а можно вопрос: c-icap +
а можно вопрос:
c-icap + clamav + squid работают на какой машине (Вы писали, что тестируете на офисном народе),
ибо у меня дома через прокси (amd5200+, x86, 4GB RAM) картинки приходится принудительно обновлять (клиент -- WinXP, Pentium-M, 1600, 512MB), на машине-прокси результат тот-же -- картинки загружаются через одну
:)
Помоему это не от железа зависит... Надо логи внимательно изучать.
У меня железо на маршрутизаторе Duron1200 512Mb RAM - ~30 клиентов одновременно держит отлично.
Тип кеша в squid - diskd, параметры использования памяти - по умолчанию.
СПАСИБО ЗА EBUILD!!!
СПАСИБО ЗА EBUILD!!!
gentoo centos fedora
СПАСИБО ЗА EBUILD!!! Все
СПАСИБО ЗА EBUILD!!!
Все установилось без проблем.
Буду тестировать вместе со Squid :^)
Все работает, вирусы
Все работает, вирусы ловит.
Это лучше чем ничего на шлюзе.
Вот только по https не ловит.
Я понял что эта функция еще не реализована?
Посоветуйте как правильно обновлять c-icap если используется неофициальный ebuid.
Если укажу в файле ebuild SRC_URI=путь к новому файлу с исх.кодами норм. собирётся? Вышел RC3. Хочу обновить.
Спасибо.
Beelzebub написал(а):Вот
Я в icap ничего не понимаю, самому поставить интересно, зашел почитать, как другие борются. Но я понимаю в HTTPS. Там через прокси идет зашифрованный поток. Без всякой возможности расшифровать его на прокси (расшифровывает клиент, у которого для этого есть ключ; через прокси ключ, конечно, не проходит, иначе о какой безопасности транзакций речь?) Таким образом, вирус через HTTPS поймать на прокси невозможно в принципе...
Когда-то работал в банке, там сделали просто: запретили на прокси все браузеры, кроме Netscape - тогда еще был Netscape, а не Mozilla или после разделения на браузер, почтовый клиент и еще что-то Firefox... У себя так сделать не могу :( , но хотелось бы - проблем с безопасностью сразу гораздо меньше становится. Не садятся пока вирусы на лисичку... тьфу, чтоб не сглазить 8)
Поднимаем тему :)
Уже давно идет разработка нового c-icap, и старый, на который здесь есть ebuild, не собирается с новым clamav.
Старый ebuild удалил из оверлея, написан ebuild для c_icap-0.1.3 и модулей (clamav и url_check) - да, теперь 2 ebuilda.
Если стоит в системе c-icap со старого ebuild-а, то его придется удалить перед установкой нового.
Связано это со сменой наименования ebuilda - приведен к виду как у разработчиков.
Собственно вот тут брать его надо - http://portage.org.ua/portage/net-misc/
P.S.
Просьба оттестировать на x86 архитектуре.