Squid, c-icap проверка всего трафика на вирусы

Насколько я понял, самый надежный метод проверять антивирусом весь входящий по Http протоколу трафик, это Squid в связке с icap демоном, например c-icap.

У связки squid +SquidGuard+viralator+ClamAV есть один недостаток, проверяются только файлы, а сама страница и скрипты, которые на ней содержатся не проверяются.

Так вот, в портах генту нет ни слова о icap демоне или о Сквиде с поддержкой протокола icap. На сайте http://sourceforge.net/projects/c-icap/ последняя версия Сквида - squid-icap-2.5.STABLE12-20051102.tgz
На форуме gentoo.org готовый ebuild выкладывали 11 января 2007, и с тех пор тишина.

Подскажите это что, мертвая технология, стоит ее использовать или есть более надежные методы проверки трафика ?

ICAP в Сквиде

ICAP в Сквиде начиная с версии 2.6, включается отдельным флагом.
_______________________
From Siberia with Love!

А почему его

А почему его нету в USE флагах и каким образом его можно собрать с этим флагом ?

Хм, прямо в

Хм, прямо в сомнение вогнал. Мнээ, разве не этот флаг?

euse -i icap-client
[-    ] icap-client (net-proxy/squid):
Adds ICAP client support

_______________________
From Siberia with Love!

Не вижу в

Не вижу в сквиде такого флага

euse -i icap-client
global use flags (searching: icap-client)
************************************************************
no matching entries found

local use flags (searching: icap-client)
************************************************************
[-    ] icap-client (net-proxy/squid):
Adds ICAP client support
vim /etc/portage/package.use
net-proxy/squid nis customlog sasl underscores samba icap-client
~ # equery uses squid
[ Searching for packages matching squid... ]
[ Colour Code : set unset ]
[ Legend : Left column  (U) - USE flags from make.conf              ]
[        : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for net-proxy/squid-2.6.17 ]
 U I
 - - elibc_uclibc     : <unknown>
 - - ipf-transparent  : Adds transparent proxy support for systems using IP-Filter (only for *bsd)
 + + kernel_linux     : <unknown>
 - - ldap             : Adds LDAP support (Lightweight Directory Access Protocol)
 - - logrotate        : Use logrotate for rotating logs
 + + nis              : Support for NIS/YP services
 - - pam              : Adds support PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
 - - pf-transparent   : Adds transparent proxy support for systems using PF (only for *bsd)
 - - qos              : Adds tcp_outgoing_priority for setting the Qdisc priority
 + + samba            : Adds support for SAMBA (Windows File and Printer sharing)
 + + sasl             : Adds support for the Simple Authentication and Security Layer
 - - selinux          : !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
 - - snmp             : Adds support for the Simple Network Management Protocol if available
 + + ssl              : Adds support for Secure Socket Layer connections
 - - zero-penalty-hit : Adds Zero Penalty Hit patch (http://zph.bratcheda.org/)

Нет, это не

Нет, это не флаг

emerge -pv squid дает на выходе

[ebuild N ] net-proxy/squid-2.6.17 USE="pam samba ssl (-ipf-transparent) -ldap -logrotate -nis (-pf-transparent) -qos -sasl (-selinux) -snmp -zero-penalty-hit" 1,685 kB

А вот ACCEPT_KEYWORDS=~x86 emerge -pv squid дает

[ebuild N ] net-proxy/squid-3.0.1 USE="pam samba ssl -icap-client (-ipf-transparent) -ldap -logrotate -nis (-pf-transparent) -radius -sasl (-selinux) -snmp" 2,351 kB

Так что сей флаг появляется в более поздних версиях.

С наилучшими пожеланиями,
Юрий Русинов.

Ага, точно,

Ага, точно, версией ошибся.
_______________________
From Siberia with Love!

Отлично, но

Отлично, но каким образом установить icap демон ?
Поиск
emerge -s icap
равно как и
emerge -S icap
Ничего не вернул

Использую эту

Использую эту связку около 3-х месяцев. Ставил c-icap из cvs самописным ebuild-ом. На squid 3 еще не переходил, ветку icap-2_6 squid ставил из cvs тоже поправленным ebuild-ом. Вроде все работает, хотя есть странности - иногда, раз в 2-3 дня, squid как-бы засыпает, даже окно логина не появляется (авторизация NCSA), в логах ничего подозрительного. Если отключить icap - вроде все работает. Пришлось ночью по крону рестарт делать. Правда все это ходит через parent proxy globax, может в этом дело.

c-icap-180407.ebuild

squid-3.0.1 ~x86 поставил из портежей, в него все включено и все работает. Проблем нет.
Сделал свой ebuild и патч для установки c-icap из cvs, по логике все должно собиратся замечательно,
но... когда происходит src_install() - вываливается со странной ошибкой:
/usr/bin/install -c c-icap.conf /etc/c-icap.conf.default
ACCESS DENIED open_wr: /etc/c-icap.conf.default
/usr/bin/install: невозможно создать обычный файл `/etc/c-icap.conf.default': Отказано в доступе
make[2]: *** [install-data-local] Ошибка 1

если внимательно посмотреть на патч, там видно что убрано создание $LOGDIR и некоторых других,
так как на этом этапе вываливалось с ошибкой mkdir ACCESS DENIED
Ebuild посмотреть можно http://vi.net.ua/net-misc.tar.gz
В чем трабла может быть?

в том что sandbox

в том что sandbox защищает систему от глюков прог на этапе сборки недавая трогать "/". всё должно делаться внутри временных папок, а потом во время src_install переноситься в реальный "/"

Это кривой

Это кривой родной инсталлятор c-icap пытается писать файлы напрямую в /etc, /var/log и т.д., а portage делать ему это не дает. Все манипуляции с файлами должны производиться во временном каталоге /var/tmp/portage/<имя программы>/image. Для этого portage подменяет путь установки при помощи переменной окружения, и только затем самостоятельно копирует готовые файлы из /var/tmp/portage/<имя программы>/image в реальные каталоги назначения. Именно для этого в патче убрано создание $LOGDIR и некоторых других. Только затем нужные файлы необходимо устанавливать при помощи специальных команд ebuild-а.
Вот, примерно, как это делал для c-icap я:

src_install() {
cd "${S}"
make DESTDIR="${D}" install || die "install failed"
newinitd "${FILESDIR}/c-icap" c-icap
dodir /etc/c-icap
insinto /etc/c-icap
doins c-icap.magic
newins "${FILESDIR}/c-icap.conf" c-icap.conf
newins c-icap.conf.in c-icap.conf.default
dodir /var/log/c-icap
fowners nobody:nobody /var/log/c-icap
fperms 755 /var/log/c-icap
dodir /var/run/c-icap
fowners nobody:nobody /var/run/c-icap
fperms 755 /var/run/c-icap
dodoc AUTHORS ChangeLog COPYING NEWS README
}

Спс, теперь все

Спс, теперь все понятно... Сейчас перепишу патчи и ебилд, прости господи, :) да положу по той же ссылке выше.

Ebuild поменял по

Ebuild поменял по линку выше на рабочий, а кто как борется с ошибкой типа
LibClamAV Error: cl_cvdhead: Can't open file /var/lib/clamav/daily.cvd
когда freshclam сам удаляет этот файл? Временный выход сделал - в freshclam.conf параметр
OnUpdateExecute /usr/bin/wget --no-cache -c -a /var/log/clamav/freshclam.log -O /var/lib/clamav/daily.cvd http://db.ua.clamav.net/daily.cvd && /bin/chown clamav:clamav /var/lib/clamav/daily.cvd
Но вот и не прошло суток, а файл все равно прибился... Пока не понятно почему так...
Есть идеи?

Отвечу сам

Отвечу сам себе, кому-то пригодится... :)
В Revision 1.39 файла srv_clamav.c разработчики пофиксили этот баг, теперь все работает превосходно.
Достаточно просто ребилд сделать из портежа...
http://c-icap.cvs.sourceforge.net/c-icap/c-icap/services/clamav/srv_clamav.c?revision=1.39&view=markup

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".