Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||
www.lissyara.su
—> главная
|
|
Чтож. Пока будем ставить антивирь, поищем icap и поконфигурим :) Антивирь - ClamAV:
|
Выбираем следующие опции:
|
CURL - можно не выбирать, я его выбрал с прицелом на своё будущее, а моё может отличаться от Вашего :) КОРОЧЕ, в данном случае он не нужен. Надо заметить, что ClamAV тащит за собой приличное чило всяких архиваторов (вернее будет сказать - разархиваторов.) - arc, lha, unarj, unrar, unzip, zoo... Также надо обновить БД антивируса:
|
clamd нам не нужен - icap работает сам по себе, без clamd, потому его не запускаем. Вообще, неплохо бы обновление засунуть в рутовый кронтаб, раза три-четыре в сутки.
icap берём отсюда. Распаковываем в `мусорную` папку и конфигурим со следующими параметрами:
|
После чего собираем, проверяем, что насобиралось и устанавливаем:
|
После инсталляции копируем исходные конфиги, на вcякий случай:
|
И рихтуем кофиг с-icap до следующего состояния:
/usr/local/etc/c-icap.conf
|
После чего создаём нужные директории и даём на них права пользователю, от которого будет работать icap:
|
Также добавляем такие строки в /etc/syslog.conf по необходимости (логов довольно много получается):
|
После чего можно запускать icap (эти ключи для отладки, обычный запуск без них), после чего проверяем - запустился ли он.
|
Если почему-то не запустился, то неплохо поставить уровень отладки 10, для максимума подробностей, тогда всё встанет на свои места.
После этого ставим squid из портов:
|
В окошке выбираем следующие опции (если пересобираете - то перед этим надо запустить `make config` - иначе окошка не будет и он соберётся с прежними опциями):
|
После установки, рихтуем конфиг сквида:
/usr/local/etc/squid/squid.conf
|
Для автоматического запуска icap пишем следующий скриптик:
/usr/local/etc/rc.d/icap.sh
|
Вот и всё. Должно работать. Если не взлетело - пробуем всё в отладочном режиме. Для проверки пройдут ли вирусы - можно сходить сюда, и попробовать скачать файлики, что предложены - в них тестовый вирус. Если всё пучком - вылезет страничка про то, что найден вирус :)
Также надо заметить, что решение это весьма красивое - позволяет строить проверку как на прозрачном, так и на непрозрачном прокси - но при этом достаточно ресурсоёмкое - на тестовой машине (AMD K6-II 450 MHz, 256RAM) уходило 50-60% ресурсов хотя линия у меня дома 160кб и юзер я один. На работе на 2GHz P-IV об 1 гектаре ОЗУ на 8 мегабитной линии, при 30 пользователях тормозов не видно (хотя, все 30 одновременно в инет не лезут)...
На `бис` рашил развлечься - русифицировать то сообщение что вылазиет, про вирус - которое врезано намертво в код. Для этого рихтуем строки в файле (в исходниках):
services/clamav/srv_clamav_vir.c
|
на такие, например:
|
И в файле services/clamav/srv_clamav.c
|
на такие:
|
После чего пересобираем, и переставляем icap.
Баги, что нашёл (или мои кривые руки): вирусы вида *.com и *.txt не находил до перезагрузки машины... Почему - не знаю. Зато архивы находил... После ребута - всё встало на свои места. Всё находит.
Также баг - неверно определяется ось (в FreeBSD4.11, в 6-ке всё нормально), в итоге приходится править несколько файлов руками, т.к. фрёвый gcc работает несколько иначе, чем в линухах - вылетает ошибка
/usr/libexec/elf/ld: cannot find -lpthread |
И приходится шуршать по всем файлам (предварительно сделав `make clean`) и заменять
-lpthread на -pthread. Файлов немного - штуки 4, и в двух не в одном месте а паре - итого 6 раз.
Из той же оперы (и тоже в 4.11!):
/usr/libexec/elf/ld: cannot find -lgdbm |
Лечится точно также как и в предыдущем случае, только мест побольше. Также оно должно стоять (может у Вас просто не установлена):
|
Надо также заметить, что если на машине включен режим эмуляции линуха - третьей ошибки не будет.
P.S. c-icap появился в портах.
|
На данный момент (2006-03-28) порт собран неправильно, там на весь каталог /var/log даётся команда по смене пользователя, да ещё и рекурсивно :). Поэтому перед установкой правим файл /usr/ports/www/c-icap/files/pkg-install.in на предмет закомментить такую строку:
|
Надо просто поставить перед ней решётку, она третья снизу. При установке ставим крестик про ClamAV (он по дефолту уже стоит), и всё. Запускается с теми же настройками, что и в статье. На данный момент уже вышла следующая версия сквида с поддержкой icap - 2.5.STABLE13, с ней эта связка работает более стабильно.
размещено: 2006-01-22,
последнее обновление: 2008-07-09,
автор: lissyara
deviel aka pasha, 2006-02-09 в 19:55:11
#========================================================
вместо скрипта /usr/local/etc/rc.d/icap.sh использую следующий:
#!/bin/sh
/usr/local/bin/c-icap -f /usr/local/etc/c-icap.conf -D
#========================================================
настройки ACL в /usr/local/etc/c-icap.conf у меня пошли такие:
# --— My ACL Rules --— #
acl localhost_options src 127.0.0.1/255.255.255.255 type options
acl localhost_respmod src 127.0.0.0/255.255.225.255 type respmod
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
icap_access allow localhost_options
icap_access allow localhost_respmod
icap_access allow localhost
icap_access deny all
Abigor, 2006-03-28 в 11:30:01
Задам вопрос здесь, настроил, при попытки скачать файло со спробной страницы выдает
>>ОШИБКА
>>Доступ к кэшу запрещён
это так и должно быть?
и еще, отличие от всего этого, я c_icap ставил из портов
lissyara, 2006-03-28 в 11:52:12
:) Там чел, что порт составлял, догадался влепить команду
chown -R cicap:cicap /var/log
Руки надо отрывать за такое. Сам щас сидел, права восстанавливал...
Ищи, где и что не так. У меня завёлся, с теми же настройками что и в статье, после того как все права перевыставил...
ALex_hha, 2006-04-26 в 18:49:25
Уже есть в портах, так что ставим от туда :)
NuN, 2006-05-18 в 13:39:53
Всё стало только , хех наоборот ловит com и txt а zip нет :( И работает только ./c-icap -D -N -d 10 если просто запустить ./c-icap - слетает :(
-|LSV|-, 2006-05-28 в 7:27:15
А как такое лечить?
Error creating mutexError creating mutexCan't init shared memory.Fatal error, exiting!
Baneff, 2006-06-14 в 17:30:18
> Баги, что нашёл (или мои кривые руки): вирусы вида *.com
> и *.txt не находил до перезагрузки машины... Почему - не
> знаю. Зато архивы находил... После ребута - всё встало на
> свои места. Всё находит.
> Всё стало только , хех наоборот ловит com и txt а
> zip нет :(
У меня аналогично. Проблема в кеше бровзера. Я пытался эти тестовые файлы смотреть до включения c-icap, поэтому те файлы, которые якобы не ловились, бровзер брал из своего кеша, а не тянул через сквида. Чтение файлов с принудительным обновлением моментально привела к тому, что ловиться стало все, что должно.
UnlimiteD, 2006-09-19 в 22:49:30
Отличная статья. Спасибо!
Zevs, 2007-03-01 в 18:42:45
Огромное спасибо за статью!
Долго мучился почему c_icap-030606rc1 не хочет грузить модуль srv_clamav, а вылетает с ошибкой string "service" not found. Заработало только с версией clamav-0.88. Поскольку нужна только библиотека, на хосте остался новый clamav-0.90.
Andrew, 2007-03-12 в 11:04:56
На сайте c-icap http://sourceforge.net/projects/c-icap выложили исправление для ошибки string "service" not found:
New patch for libclamav-1.0.40 and newer 2007-03-04
С ним все работает (c_icap-030606rc1 и clamav-0.90)
Alex, 2007-03-13 в 19:39:02
Пропатчил все работает c_icap-030606rc1 и clamav-0.90 (из портов), только когда натыкается на вирус выдает HTTP Error 403 - Forbidden, и на srv_clamav.VirSaveDir и srv_clamav.VirHTTPServer ни какой реакции.
iTango, 2007-04-19 в 16:49:54
Ставил всё согласно статьи, но при попытке запустить:
c-icap -d 1 -D
на уровне:
...
Setting parameter :ClamAvMaxFileSizeInArchive=104857600
Going to search variable ClamAvMaxRecLevel in table srv_clamav
Setting parameter :ClamAvMaxRecLevel=5
выпадает ошибка:
can not init loggers. Exiting...
и полный стоп!
как это можно побороть???
lexy, 2007-04-20 в 17:44:10
ставил все из портов, при поытке запустить вываливает следующее
Starting c_icap.
Initialization of echo module......
Initialization of url_check module......
Segmentation fault (core dumped)
vasilich, 2007-04-23 в 12:13:21
Если freebsd6.X, то в скрипт configure надо добавить
freebsd6.*)
CFLAGS="-D_THREAD_SAFE $CFLAGS"
THREADS_LDADD="-XCClinker -lthr"
THREADS_LDFLAGS=""
;;
тк clamav на freebsd6.X в портах собирается с lthr.
spmn, 2007-05-11 в 15:49:38
В какой файл добавлять надо? в patch-configure?
Если в него добавляю, то при команде make случается:
===> Applying FreeBSD patches for c-icap-030606_3,1
1 out of 1 hunks failed--saving rejects to configure.rej
File to patch:
И просит какой-то файл. ??? Что ему надо?
vasilich, 2007-05-15 в 15:56:05
>>В какой файл добавлять надо? в patch-configure?
Добавить в файл /usr/ports/www/c-icap/work/c_icap-030606rc1/configure после выполнения команды make path, потом вернуться в /usr/ports/www/c-icap (cd /usr/ports/www/c-icap) и make install
spmn, 2007-05-16 в 18:41:35
Не помогло :(
Бум ждать новой версии ... скорее бы
Demon, 2007-05-18 в 15:34:56
>>выпадает ошибка:
>>can not init loggers. Exiting...
>>и полный стоп!
если делал по статье то сервер стартует с правами узверя squid а папка /var/c-icap имеет права на cicap:cicap делай выводы )
>>Не помогло :(
>>Бум ждать новой версии ... скорее бы
была таже проблема обошел так)
ее /usr/ports/www/c-icap/files/path-configure
/////////////////////////////////////////////////////////
- freebsd5.*)
+ freebsd6.*)
## If I understand how all those threading models works correctly
## in FreeBSD I will make an option in configure script
## --with-freebsd-threads={c_r,pthreads,linuxthreads,thr}
@@ -19454,9 +19454,9 @@
# THREADS_LDADD="-llthread -lgcc_r"
# THREADS_LDFLAGS="-L/usr/local/lib"
-## FreeBSD Standard threads
+## FreeBSD 6.x
- CFLAGS="-pthread -D_THREAD_SAFE $CFLAGS"
+ CFLAGS="-D_THREAD_SAFE $CFLAGS"
- THREADS_LDADD="-XCClinker -lc_r"
+ THREADS_LDADD="-XCClinker -lthr"
THREADS_LDFLAGS=""
/////////////////////////////////////////////////////
и все)))) заработало
spmn, 2007-05-19 в 4:45:28
Demon
Все равно:
Setting parameter :ServicesDir=/usr/local/lib/c_icap/
Loading service :echo_module path srv_echo.so
Found handler C_handler for service with extension:.so
Initialization of echo module......
Loading service :antivirus_module path srv_clamav.so
Found handler C_handler for service with extension:.so
Going to initialize srvclamav
Ошибка сегментации(core dumped)
:(
hopeful, 2007-06-21 в 14:54:03
В дополнение хочу поделиться опытом запуска Squid+c-icap+ClamAV в рабочую эксплуатацию на маршрутизаторе офиса из 50 компьютеров.
”
Итак имеем:
Железо – Intel PIII-1000/512Ram.
ОС - FreeBSD 5.5 Release.
Установка и настройка ClamAV.
Можно установить из портов. Версия на момент написания комментариев – 0.90.3. Когда делаем make – может выдать ошибку и ругнуться:
«On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE by itself so please help it a bit by setting X11BASE=${LOCALBASE} in make.conf.
On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE»
Чтобы это устранить добавляем в /etc/make.conf строку: X11BASE=${LOCALBASE} и повторяем сборку.
##
#> cd /usr/ports/security/clamav
#> make
#> make install clean
##
В /etc/rc.conf прописываем строчки:
clamav_clamd_enable=NO
”   # демон clamd для работы c-icap не нужен
”
clamav_freshclam_enable=YES
” # запуск демона обновления антивирусных баз
“
Хотя если вам не нужен висящий в системе процесс, в предыдущем пункте можно поставить NO
”, и запускать обновление баз из крона, добавив в /etc/crontab строчку:
”
##
0   0,6,12,18   *   *   *   /usr/local/bin/freshclam
##
И, разумеется, необходимо настроить конфиг, отвечающий за обновление баз ClamAV -   /usr/local/etc/feshclam.conf, например так:
##
DatabaseDirectory /var/db/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose no
LogSyslog yes
LogFacility LOG_MAIL
DatabaseOwner clamav
AllowSupplementaryGroups no
DatabaseMirror database.clamav.net
MaxAttempts 3
ScriptedUpdates yes
Checks 6
##
Установка и настройки c-icap с поддержкой ClamAV
Самое интересное.
На момент написания комментариев в системе портов 5 ветки FreeBSD есть порт c-icap который установит в систему i_cap-030606rc1. Скажу сразу, это не самый лучший вариант. Добиться устойчивой работы этого создания мне не удалось. В случайные моменты c-icap отказывался работать, начиная отчаянно «мусорить» в лог сообщениями: «general SIGPIPE signal received» (проблема в инете известная). В общем чуть не утроил мне локальный DoS. В итоге был безжалостно удален.
С сайта проекта с-icap http://c-icap.sourceforge.net/ , а точнее отсюда: http://sourceforge.net/project/showfiles.php?group_id=123427 , был скачан самый свежий на момент написания комментариев c_icap-180407.tar.gz а так же Squid, немного пересобранный авторами проекта, squid-icap-2.5.STABLE12-20051102. Именно их и будем устанавливать.
Начнем с c_icap.
##
#> cd /distfiles/сicap
#> tar –xzf c_icap-180407.tar.gz
#> cd c_icap-180407
#> ./configure --enable-static --with-clamav=/usr/local --prefix=/usr/local/c_icap
#> make
#> make check
#> make install
##
  На последнем этапе, когда делаем make install, будет вылет по ошибке. Чтобы не править make-файл – просто запустите make install еще раз, все должно закончиться хорошо. Настраиваем: /usr/local/c_icap/etc/c-icap.conf. Например так:
##
PidFile /var/run/c-icap.pid
CommandsSocket /var/run/c_icap/c-icap.ctl
Timeout 100
#
#KeepAlive выключаем. Никакого влияния на быстродействие я не заметил, а количество
#коммуникационных ошибок резко уменьшилось.
KeepAlive Off
#
#При выключенном KeepAlive следующие 2 опции не принципиальны
MaxKeepAliveRequests 200
KeepAliveTimeout 600
#
#Умолчальный вариант конфига для следующих 5 параметров писался наверное для пары #клиентов, поэтому при работе на настройках по умолчанию вам гарантирована высокая #загруженность системы, тормоза, неполная загрузка страниц. В общем, добавляем не #скупясь
StartServers 3
MaxServers 30
MinSpareThreads 10
MaxSpareThreads 300
ThreadsPerChild 30
MaxRequestsPerChild 0
#
Port 1344
#
#От имени этого пользователя будет работать с-icap
User cicap
Group cicap
TmpDir /var/tmp/c_icap
MaxMemObject 131072
#
#Писать логи удобнее в файлы, не используя syslog
ServerLog /var/log/c_icap/server.log
AccessLog /var/log/c_icap/access.log
Logger file_logger
#
ModulesDir /usr/local/lib/c_icap/
Module logger sys_logger.so
Module perl_handler perl_handler.so
#
#При отказе от syslog следующие две опции не принципиальны
sys_logger.Prefix "c-icap:"
sys_logger.Facility local1
#
#Стандартный acl, подходит, если squid работает на том же компьютере, что и c-icap
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_access deny externalnet
#
ServicesDir /usr/local/c_icap/lib/c_icap
Service echo_module srv_echo.so
Service squard_module srv_sguard.so
Service antivirus_module srv_clamav.so
ServiceAlias avscan srv_clam?allow204=on&sizelimit=off&mode=simple
#
# Типы проверяемых файлов, описаны в /usr/local/c_icap/etc/c-icap.magic
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 /var/tmp/c_icap
srv_clamav.ClamAvMaxFilesInArchive 50
srv_clamav.ClamAvMaxFileSizeInArchive 5M
srv_clamav.ClamAvMaxRecLevel 5
#
#Скажу сразу: прелести режима «варилатора» я не понял. Подробного описания не нашел,
#режим экспериментальный, предназначен для взаимодействия с web-клиентом, если #функционал нам не нужен – смело выключаем.
#srv_clamav.VirSaveDir …
#srv_clamav.VirHTTPServer …
#srv_clamav.VirUpdateTime …
#srv_clamav.VirScanFileTypes …
##
Подробное описание всех параметров ищите на сайте проекта.
Добавляем в систему пользователя cicap с группой cicap.
Создаем нужные каталоги и файлы и делаем владельцем каталогов и логов cicap:cicap.
##
#> cd /var/log
#> mkdir c_icap
#> touch c_icap/access.log c_icap/server.log
#> chown –R cicap:cicap ./c_icap
#> mkdir /var/tmp/c_icap /var/run/c_icap
#> chown cicap:cicap /var/tmp/c_icap /var/run/c_icap
##
Далее можно запускать и тестировать.
##
#> /usr/local/c_icap/bin/c-icap
#> sockstat -4 | grep 1344
##
Для ротации журнальных файлов в /etc/newsyslog.conf можно добавить строчки:
##
/var/log/c_icap/access.log   cicap:cicap 640   7 * @T00 J /var/run/c-icap.pid
/var/log/c_icap/server.log   cicap:cicap 640 7 * @T00 JN
##
По умолчанию посылаем –HUP с-icap.pid, что заставит c-icap перечитать конфигурацию и писать в новые файлы логов.
Установка и настройка прокси-сервера Squid.
Устанавливаем версию Squid от c-icap: squid-icap-2.5.STABLE12-20051102.
##
#> cd /distfiles/squid
#> tar –xzf squid-icap-2.5.STABLE12-20051102.tar.gz
#> cd squid-icap-2.5.STABLE12-20051102
##
Конфигурить можно по-разному, главное включить поддержку c-icap. Например так:
##
#>./configure --prefix=/usr/local/squid \   # путь по умолчанию
  --enable-ipf-transparent \   # поддержка прозрачного прокси
  --enable-delay-pools \     # управление ограничением трафика
  --enable-useragent-log \   # журнализовать заголовок Useragent
  --enable-kill-parent-hack \   # помогает сделать shutdown чисто
  --enable-arp-acl \   # возможность использования mac – адреса в ACL
  --enable-icmp \       # измерять путь до каждого HTTP-сервера
  --enable-icap-support \   # поддержка c_icap
  --enable-err-language=English
” \ # язык сообщений об ошибках
  --enable-default-err-language=English # язык сообщений об ошибках по умолчанию
#> make all
#> make install
##
Проверяем строки в squid.conf, относящиеся к поддержке c_icap:
##
icap_enable on
# выключаем предпросмотр
# ничего, кроме ошибок я от него не получил
icap_preview_enable off
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 service_avi service_avi_req
icap_access class_antivirus allow all
##
Если вы настраиваете Squid в первый раз, рекомендую сначала выключить поддержку c_icap (icap_enable off), отстроить работу прокси, и только потом подключать c_icap.
Вот и все.
Решение работает достаточно устойчиво, что является еще одним подтверждением разумности данного подхода.
mikola, 2007-07-03 в 12:08:50
Clamav не захотел собираться, пришлось руками в маке файлах в местах указания CFLAGS дописать опции -lbind -L/usr/lib
наверняка есть более правильный способ, но я за 3 дня смог победить его тока так, фряха к стати 5.4.
mikola, 2007-07-03 в 12:27:31
c-icap уже есть в портах /usr/ports/www/c-icap
SergSS, 2007-10-10 в 19:47:39
Включаю в сквиде icap и сё... висит.(
FreeBSD 6.2-RELEASE #0: Fri Jan 12 11:05:30 UTC 2007
Squid Cache: Version 3.0.PRE7+PatchSets-20070919
icap ставил и из портов и с оффа.
Вот такой у мну вывод sockstat почему-то...
#>sockstat | grep icap
squid c-icap 99182 5 tcp4 *:1344 *:*
squid c-icap 99181 5 tcp4 *:1344 *:*
squid c-icap 99180 5 tcp4 *:1344 *:*
squid c-icap 99179 5 tcp4 *:1344 *:*
Почему нет строчек с датаграммами: ???
squid c-icap 33144 4 dgram -> /var/run/logpriv
Логи сквида:
2007/10/10 21:16:08.153| The request GET http://www.lissyara.su/?id=1128 is ALLOWED, because it matched 'auth_users'
2007/10/10 21:16:08.153| client_side_request.cc(1012) Doing calloutContext->icapAccessCheck()
2007/10/10 21:16:08.153| ICAPAccessCheck::check
2007/10/10 21:16:08.153| ICAPAccessCheck::check: class 'class_req' has candidate service 'service_req'
2007/10/10 21:16:08.153| ACLChecklist::preCheck: 0x8cb50a0 checking 'icap_access class_req allow all'
2007/10/10 21:16:08.153| ACLList::matches: checking all
2007/10/10 21:16:08.153| ACL::checklistMatches: checking 'all'
2007/10/10 21:16:08.154| aclMatchIp: '192.168.77.26' found
2007/10/10 21:16:08.154| ACL::ChecklistMatches: result for 'all' is 1
2007/10/10 21:16:08.154| aclmatchAclList: 0x8cb50a0 returning true (AND list satisfied)
2007/10/10 21:16:08.154| ACLChecklist::markFinished: 0x8cb50a0 checklist processing finished
2007/10/10 21:16:08.154| ACLChecklist::check: 0x8cb50a0 match found, calling back with 1
2007/10/10 21:16:08.154| ACLChecklist::checkCallback: 0x8cb50a0 answer=1
2007/10/10 21:16:08.165| ICAPAccessCheck::do_callback
2007/10/10 21:16:08.165| ICAPAccessCheck::do_callback matchedClass = class_req
2007/10/10 21:16:08.165| ICAP/ICAPConfig.cc(257) do_callback: with service icap://127.0.0.1:1344/request
2007/10/10 21:16:08.165| client_side_request.cc(504) 0x8cb1070 icapAclCheckDone called
2007/10/10 21:16:08.165| client_side_request.cc(1086) 0x8c606c8 ClientHttpRequest::startIcap() called
2007/10/10 21:16:08.176| entering AsyncJob::noteStart(0x8cdd098)
2007/10/10 21:16:08.176| ICAPModXact constructed, this=0x8ce11c0 [icapx4]
2007/10/10 21:16:08.176| exiting AsyncJob::noteStart(0x8cdd098)
2007/10/10 21:16:08.187| entering AsyncJob::noteStart(0x8ce11c0)
2007/10/10 21:16:08.187| exiting AsyncJob::noteStart(0x8ce11c0)
2007/10/10 21:16:08.290| storeMaintainSwapSpace: f=1, max_scan=500, max_remove=80
2007/10/10 21:16:08.290| UFSSwapDir::maintain: /usr/local/squid/cache removed 0/80 f=1 max_scan=500
2007/10/10 21:16:09.302| storeMaintainSwapSpace: f=1, max_scan=500, max_remove=80
2007/10/10 21:16:09.302| UFSSwapDir::maintain: /usr/local/squid/cache removed 0/80 f=1 max_scan=500
2007/10/10 21:16:10.314| storeMaintainSwapSpace: f=1, max_scan=500, max_remove=80
2007/10/10 21:16:10.314| UFSSwapDir::maintain: /usr/local/squid/cache removed 0/80 f=1 max_scan=500
Лог icap server:
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Child 97274 getting requests now ...
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:07 2007, general, Waiting for a request....
Wed Oct 10 21:04:08 2007, general, Server stats:
Childs:3
Free servers:9
Used servers:0
Requests served:0
Wed Oct 10 21:04:09 2007, general, Server stats:
Childs:3
Free servers:9
Used servers:0
Requests served:0
...................
Wed Oct 10 21:04:46 2007, general, Server stats:
Childs:3
Free servers:8
Used servers:1
Requests served:0
Wed Oct 10 21:04:47 2007, general, Server stats:
Childs:3
Free servers:8
Used servers:1
Requests served:0
...................
Wed Oct 10 21:04:51 2007, general, Error parsing headers :(0)
Wed Oct 10 21:04:51 2007, general, Process request timeout or interupted....
Wed Oct 10 21:04:51 2007, general, Waiting for a request....
Wed Oct 10 21:04:52 2007, general, Server stats:
Childs:3
Free servers:9
Used servers:0
Requests served:0
Wed Oct 10 21:04:53 2007, general, Server stats:
Childs:3
Free servers:9
Used servers:0
Requests served:0
Совсем мозг сломал уже)
_az_, 2007-12-26 в 17:01:37
У меня аналогичная ситуация:
Вот такой у мну вывод sockstat почему-то...
#>sockstat | grep icap
squid c-icap 99182 5 tcp4 *:1344 *:*
squid c-icap 99181 5 tcp4 *:1344 *:*
squid c-icap 99180 5 tcp4 *:1344 *:*
squid c-icap 99179 5 tcp4 *:1344 *:*
И в логах:
general, Error parsing headers :(0)
Может ктото розобрался?
andrew, 2007-12-26 в 17:06:01
какая версия icap?
Sam, 2008-01-28 в 14:06:14
С последними версиями C-ICAP 180407 и squid-3 c отключением
preview РАБОТАЕТ. Машина 2Xeon 4MB, RAM4 GB RAM, дискиSATA.
FreeeBSD-7.0PRERELEASE.
vasilich, 2008-01-29 в 15:30:42
To Sam: А если в консоли набрать Ctrl+C, c-icap 180407
не выгружается из памяти, на оф. сайте этот случай описан.
mrlexy, 2008-01-29 в 17:20:28
пробовал обуздать icap, так и не победил, то здесь вывалется - то там отвалится, поставил связку squid+havp+clamd, четенько все работает даже при учете того, что havp в соседней клетке (jail) сидит.
Sam, 2008-01-29 в 17:54:37
to vasilich:
а с какой целью Ctrl+C?
я c_icap скриптом запускаю от версии из портов
squid+havp+clamd -пробовал - тоже ничего
но мне логи нужны от squida - с havp получается, что все
под одним IP ходят. Хотя я может чего-то недосмотрел
mrlexy, 2008-01-30 в 10:27:25
Sam> с havp получается, что все
под одним IP ходят. Хотя я может чего-то недосмотрел
по другому цепочку построй - сначала squid, потом havp
squid.conf
# были проблемы с авторизацией по сессиям/печенькам
# на некоторых сайтах, здесь их можно зарулить без каскада
hierarchy_stoplist host_to_path_thru
# здесь указываем хост/порт havp
cache_peer HAVP.HOST parent 8080 0 no-query
# использовать сначала havp
prefer_direct off
в данной конфигурациии не валится даже если сдох havp, просто все идет только через squid
единственно, немного тоскливо искать заразника, примерно так:
# tail /var/log/havp/access.log
29/01/2008 15:35:33 192.168.x.x GET 200 http://meddesk.ru/ 284+56791 VIRUS Clamd: Exploit.IFrame.Gen-1
# cat /var/squid/logs/access.log | grep 'http://meddesk.ru/'
1201610133.246 823 192.168.y.y TCP_MISS/200 3431 GET http://meddesk.ru/ - FIRST_UP_PARENT/mail.office.atl text/html
где 192.168.y.y - IP? с которого была попытка доступа к зараженной странице
vasilich, 2008-01-30 в 12:01:32
To Sam: Вопрос в том, что просматривать любой лог,
например, tail -f /var/lol/maillog, а потом дать в
консоли Ctrl+C, c-icap успешно перехватывает этот сигнал и прекращает работу. Из-за этого перешли на
squid+havp+libclamav+squid. Работает успешно.
mrlexy, 2008-01-30 в 12:09:51
2 vasilich:
сначала тоже пробовал на libclamav, но он грузит систему больше чем clamd, как следствие куча форкнутых havp'ов в процессах.
vasilich, 2008-01-30 в 12:49:09
To mrlexy: Спасибо за подсказку, а то shared memory растет дико и ругань в kernel.log и messages:
Jan 25 10:00:03 mail kernel: collecting pv entries — suggest increasing PMAP_SHPGPERPROC
Лечил PMAP_SHPGPERPROC=230 в конфигурации ядра.
Sam, 2008-01-30 в 14:50:16
to vasilich:
удаленно или прямо на серваке?
vasilich, 2008-01-30 в 15:30:45
To Sam: я работал удаленно через ssh-сессию, вот ссылка, где я описал эту ситуацию [url=http://sourceforge.net/tracker/index.php?func=detail&atid=696477&aid=1702703&group_id=123427]
smilealex, 2008-01-30 в 15:38:37
ГРАЖДАНЕ! А вы не обратили внимание как вас несёт нехило???
lissyara, 2008-01-30 в 15:56:48
та ладно...
Любимая тема всех времён и народов - ИКАП =)
Изредка он у кого-то заработает - обсуждения на месяцы потом =)))
===========
А вот гражданам обсуждающим - форум для чего придуман?
И обсуждение ваше по почте читает полторы сотни человек подписанных на комменты сайта. Не думаю что оно всем интересно...
Andrew, 2008-04-10 в 9:41:42
Тут на форуме товарищ alive правильно указал:
>Re: c-icap
> alive 2008-03-22 18:24:57
>
>c-icap качать надо с оффсайта и ставить вручную..
>./configure --enable-static --with-clamav=/usr/local — prefix=/usr/local && make && make install
>с порта только rc скрипт выдрать не помешает.
>я так подозреваю что в порте ошибка мейнтейнером допущена
скачал c_icap-180407.tar.gz, собрал ручками, и он нормально заработал с clamav-0.92.1.tar.gz из портов.
Так что красный текст в шапке можно поправить на что-то вроде: "работает, но после танцев с бубном" :)
А так реально глючноватый этот c-icap. Я его где-то год назад поставил, так он у меня после этого www.price.ru отказался открываться. Всё остальное открывается, а price.ru - нет. Пришлось исключить его из антивирусной проверки. Новый с-icap похоже чуть получше - сайт открывает, но ошибка в squid-е всё равно проскакивает (не только про этот сайт):
2008/04/10 12:27:00| comm_call_handlers(): WARNING defer handler for fd=29 (desc=http://www.price.ru/bin/price/prodlist?curr=2&base=1&pnam=flash) does not call commDeferFD() - backing off manually
hopeful, 2008-04-10 в 13:53:55
Было дело, здесь делился опытом по настройке i-cap (пост выше). Но разочаровался. Нестабильная вещь или просто мне не повезло ;-). Поставил SQUID+HAVP и забыл о проблеме вирусов по HTTP.
m1h, 2008-05-23 в 10:53:53
Внесу свои 5 копеек...
Сперва ставил c-icap из порта (freeBSD7), пересобрал Сквид с потдержкой icap... ничо не заработало!
2 дня парился, хотя особой нужды в clamav на страже офисного HTTP трафика не вижу, т.к. стоит Нортоновский Сервер... просто хотелось попробовать!
2м шагом было скачать с сайта проекта c-icap исходники и самого c-icap и Сквида 2.5-icap, всё встало, но не заработало... выдавало в лог
Error creating mutexError creating mutexCan't init shared memory.Fatal error, exiting!
в Итоге... скачал я последний на тот момент сквид (05222008) и всё вроде заработало, писало тока warning на то что к icap_class не можно прикручивать сразу 2 сервиса... чтож сделал 2 класса.
Ну и... всё заработало, тестовый вирус ловит... ошибку 403 в IE поправил правкой сорсов + русифицировал выводимое предупреждение.
З.Ы. но от всего этого хозяйства пришлось отказаться до лучших времён, т.к. на машине где всё это крутится (Cel2600\256) c-icap откушивает 90-95% процессорного времени при количестве пользователей 15 чел.
MAPTbIH, 2008-07-09 в 17:17:18
два дня настраивал, сделал пашет, пока без вылетов.
взял последние исходники icap с офсайта, clamav 0.93.3 из портов, и squid3.0 stable7 так же из портов.
брал потому что HAVP не очень привлекает т.к. squid с ним общается как с parent proxy. в остальном пока рад.
zersh, 2008-07-11 в 16:15:54
делал подобную связку на нескольких серверах, все работает ловится и без проблем!
MAPTbIH, 2008-07-11 в 17:10:12
Для тех у кого узкий канал в мир, к примеру 256kbps
рекомендую поиграться с параметрами icap'a
у себя выставил:
srv_clamav.StartSendPercentDataAfter 256K
так же советовал бы поиграться с остальными параметрами, сказывается при закачке файлов.
Nichls, 2008-07-19 в 13:06:11
Проделал в точь как описал hopeful. Никаких проблем при сборке не возникло.
OC:
[root@piton ~/src/squid-icap-2.5.STABLE12/src]# uname -a
FreeBSD piton 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7 #0: Sat Jan 5 09:39:15 MSK 2008 root@piton:/usr/obj/usr/src/sys/P
ITON-KERNEL i386
[root@piton ~/src/squid-icap-2.5.STABLE12/src]#
c-icap: 060708   July 6, 2008
squid: squid-icap   2.5.STABLE12-20051102   November 3, 2005
Домашние теперь защищены.
Попробую на днях поднять на 800 пользователях на работе и посмотреть, как все это заработает под большой нагрузкой.
Storoge, 2008-12-16 в 17:17:32
Я тоже поставил взятый с сайта c-icap 060708, а squid у меня squid-3.0.10. Единственный нюанс:если делать по статье, то при запуске squid пишет WARNING: Multiple ICAP services per icap_class are not yet supported. See Squid....
Я сделал так:
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 service_avi_req
icap_class class_antivirus2 service_avi
icap_access class_antivirus allow all
icap_access class_antivirus2 allow all
И все нормально заработало.
zersh, 2010-05-31 в 16:21:41
для связки
Squid-3.1.0.17 + c-icap-060708_1,1 (7.3-RELEASE)
в squid.conf нужно прописать следующее:
icap_enable on
icap_preview_enable on
icap_preview_size 128
icap_send_client_ip on
icap_send_client_username on
icap_service service_req reqmod_precache bypass=1 icap://localhost:1344/srv_clamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://localhost:1344/srv_clamav
adaptation_access service_resp allow all
AlexRay, 2012-04-06 в 14:26:09
Заработало без особых проблем. Ставил из портов.
Squid-3.1.0.19 + c-icap-060708-2,1 (9.0 RELEASE)
с-icap.conf:
PidFile /var/run/c-icap.pid
CommandsSocket /var/run/c-icap/c-icap.ctl
Timeout 300
KeepAlive On
MaxKeepAliveRequests 300
KeepAliveTimeout 600
StartServers 3
MaxServers 10
MinSpareThreads 10
MaxSpareThreads 30
ThreadsPerChild 10
MaxRequestsPerChild 0
Port 1344
User squid
Group squid
TmpDir /var/tmp
MaxMemObject 131072
ServerLog /var/log/c_icap/server.log
AccessLog /var/log/c_icap/access.log
DebugLevel 3
ModulesDir /usr/local/lib/c_icap
Module logger sys_logger.so
sys_logger.Prefix "C-ICAP:"
sys_logger.Facility local1
Logger sys_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_access deny externalnet
ServicesDir /usr/local/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 /var/tmp
srv_clamav.ClamAvMaxFilesInArchive 0
srv_clamav.ClamAvMaxFileSizeInArchive 100M
srv_clamav.ClamAvMaxRecLevel 5
squid.conf:
icap_enable on
icap_preview_size 128
icap_send_client_ip on
icap_send_client_username on
icap_service service_req reqmod_precache bypass=1 icap://localhost:1344/srv_clamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://localhost:1344/srv_clamav
adaptation_access service_resp allow all
Demis, 2012-09-01 в 18:13:03
Применяю c-icap примерно с января 2009 года.
По этой статье (в то время+что-то еще почитать пришлось).
Собрано несколько площадок с повязкой vpn через ракун2.
Нагрузка sendmail,squid,racoon2,dummy,voice-ip и т.д. (около 150 портов на каждом сервере) в офисах 15-20 человек.
Нареканий особых и проблем нет.
Первоначальная машина P-II 233 Asus P2B 320Мб RAM.
Потом, через год добавил память до 512Мб и процессор поменял на 266.
Все регулярно обновлялось (версия системы, мир, порты...)
Весной 2012 года пришлось заменить железо. Как-никак комп был изначально куплен в феврале 1998 года и пошли микротрещины на материнке.
На новом железе вылезла фишка:
Чтобы систему не переустанавливать все делалось переносом.
Винт (80Гб но в режиме 32Гб, иначе биос виснет на старом компе) подключался к новому серваку через платку переходник IDE->SATA.
Потом банально все перенесено на новый винт.
Все работало.
Потом перекомпилирован мир на SMP.
Все работало.
Потом перекомпилирован мир на x64 (adm64).
Все работало.
Потом перекомпилированы все порты.
И вот после последнего действия c-icap сказал КРЯ в виде ошибки протокола icap (подробности опускаю).
Не найдя решения (а надо сказать на сайте автора я нашел такую ошибку как возникла у меня, но найденные рекомендации ни к чему не привели, а трабл у него висит открытым уже несколько лет) был просто поднят c-icap на другой машине и привязан через сокет.
Полет полгода нормальный.
Следущая фишка возникла после июня 2012, когда вышла новая версия c-icap-0.2.1_1,2.
В этой версии введена модульность и проверка на вирусы через clamv ушла в модуль. Причем при переустановке об этом ни слова, ни гу-гу.
Результат - не забудьте после обновления доустановить /usr/ports/www/c-icap-modules .
Обратите внимание что при установке порта c-icap надпись "Build with srv_clamav service" теперь отсутствует, но это никак не мешает.
В новой версии пользователь меняется с cicap на c_icap .
И меняются названия библиотек с srv_clamav на virus_scan .
Старый конфиг нужно переименовать, перекинуть из /usr/local/etc в /usr/local/etc/c-icap .
А в новый перенести свои параметры. Так проще будет.
В новом /usr/local/etc/c-icap.conf добавить инклуд (как сделать написано в /usr/local/etc/virus_scan.conf).
Поменять в /etc/rc.conf соответственно ссылку на новое место конфига.
Логи тоже теперь передвинулись в каталог /var/log/c-icap .
Да и еще фишка, не знаю у кого как, но в новом конфиге от (теперь уже) модуля /usr/local/etc/c-icap/virus_scan.conf есть параметры virus_scan.UseClamd off и virus_scan.ClamdSocket
Пришлось закомментировать их иначе c-icap не запускался.
Комментариев теперь в конфиге намного больше.
В общем причесали c-icap.
В общем и целом мне очень нравится.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [48 шт.]