Squid, c-icap проверка всего трафика на вирусы
Casufi 21 февраля, 2008 - 12:44
Насколько я понял, самый надежный метод проверять антивирусом весь входящий по 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 флагах и каким образом его можно собрать с этим флагом ?
Хм, прямо в
Хм, прямо в сомнение вогнал. Мнээ, разве не этот флаг?
_______________________
From Siberia with Love!
Не вижу в
Не вижу в сквиде такого флага
Нет, это не
Нет, это не флаг
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