The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

ClamAV 0.80 и RAR3 под FreeBSD (mail virus clamav freebsd rar compress patch)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: mail, virus, clamav, freebsd, rar, compress, patch,  (найти похожие документы)
From: Victor Ustugov <victor на corvax.kiev.ua> Newsgroups: exim-conf maillist Date: Mon, 19 May 2005 14:31:37 +0000 (UTC) Subject: ClamAV 0.80 и RAR3 под FreeBSD Оригинал: http://www.mta.org.ua/pipermail/exim-conf/2004-November/000208.html пишу в оба листа, потому как на generic@ почему-то не подписываются, хотя надо бы такие письма (не относящиеся к какому-то конкретному MTA) отсылать именно в generic@ итак... вчера вечером в одном российском форуме мне показали линк: http://mcmcc.bat.ru/clam_rar3.html тут описано, как прикрутить поддержку rar3 к clamav 0.80, приведены линки на патчи и на говотовые пакеты для RedHat/Fedora. теперь о том, как все это реализовать на FreeBSD: 1. либа libunrar3. в портах ее нет. но в портах есть archivers/unrar, который собирается из тех же исходников, из которых должна собираться libunrar3. одно но: после накладывания патча http://mcmcc.bat.ru/clamav/unrar-3.4.3_fix.patch target unrar отказывается собираться. с диагностикой я не возился, поскольку меня устаивало создание нового порта. берем скрипт patch_unrar.sh из аттача и выполняем его. скрипт содает копию содержимого каталога /usr/ports/archivers/unrar в каталоге /usr/ports/archivers/libunrar3, после чего меняет название порта, добавляет использование вышеуказанного патча и меняет набор файлов, входящих в состав package, потом пересобирает и устанавливаем порт. 2. пересборка clamav 0.80. берем патч patch-libclamav::stdlib.patch из аттача и сохраняем в каталоге /usr/ports/security/clamav/files берем скрипт patch_clamav.sh из аттача и выполняем его. скрипт дополняет набор патчей, дополняет флаги компиляции кламава, накладывает патчи, выполняет запуск необходимых для конфигурирования программ, пересобирает порт. но не устанавливает его. make install как-нибудь сами выполните. что все это дает: до пересборки clamav 0.80 из зараженного сообщения был извлечен прикрепленный файл и сохранен в файле Win32.HLLM.Beagle.18848. после этого файл был запакован архиватором rar 2.90 в архив с именем Win32.HLLM.Beagle.18848.rar2.rar и архиватором rar 3.11 в архив с именемWin32.HLLM.Beagle.18848.rar3.rar вот результаты проверки до пересборки clamav'а: # clamdscan Win32.HLLM.Beagle.18848.rar2.rar Win32.HLLM.Beagle.18848.rar3.rar /tmp/Win32.HLLM.Beagle.18848.rar2.rar: Worm.Bagle.AT FOUND /tmp/Win32.HLLM.Beagle.18848.rar3.rar: RAR module failure ERROR /tmp/Win32.HLLM.Beagle.18848.rar3.rar: OK ----------- SCAN SUMMARY ----------- Infected files: 1 Time: 0.164 sec (0 m 0 s) вот результаты проверки после пересборки clamav'а (clamd.conf остался без изменеий): # clamdscan Win32.HLLM.Beagle.18848.rar2.rar Win32.HLLM.Beagle.18848.rar3.rar /tmp/Win32.HLLM.Beagle.18848.rar2.rar: Worm.Bagle.AT FOUND /tmp/Win32.HLLM.Beagle.18848.rar3.rar: Worm.Bagle.AT FOUND ----------- SCAN SUMMARY ----------- Infected files: 2 Time: 0.212 sec (0 m 0 s) все тесты проводились с использованием следующих портов: # pkg_info -I unrar\* libunrar\* clam\* clamav-0.80 Command line virus scanner written entirely in C libunrar3-3.43,3 Extract, view & test RAR archives unrar-3.43,3 Extract, view & test RAR archives
patch_clamav.sh #!/bin/sh DIST_FILE=clamav-libunrar3.patch DIST_FILE_FULL=/usr/ports/distfiles/${DIST_FILE} PORT_DIR=/usr/ports/security/clamav if [ ! -f ${DIST_FILE_FULL} ]; then wget http://mcmcc.bat.ru/clamav/${DIST_FILE} -O${DIST_FILE_FULL} fi #cp files/patch-libclamav::stdlib.patch ${PORT_DIR}/files/ cd ${PORT_DIR} echo "PATCHFILES=${DIST_FILE}" > ${PORT_DIR}/Makefile.local echo "PATCH_DIST_STRIP=-p1" >> ${PORT_DIR}/Makefile.local echo "CPPFLAGS+= -I\${LOCALBASE}/include/libunrar3" >> ${PORT_DIR}/Makefile.local echo "LDFLAGS+= -lunrar3" >> ${PORT_DIR}/Makefile.local #perl -ni -e "print \$_ unless (/${DIST_FILE}/)" ${PORT_DIR}/distinfo #echo "MD5 (${DIST_FILE}) = `md5 ${DIST_FILE_FULL} | awk '{print $4}'`" >> ${PORT_DIR}/distinfo #echo "SIZE (${DIST_FILE}) = `ls -l ${DIST_FILE_FULL} | awk '{print $5}'`" >> ${PORT_DIR}/distinfo make clean make makesum make patch cd work/clamav-0.80 aclocal autoconf automake cd ../.. make build
patch_unrar.sh
#!/bin/sh DIST_FILE=unrar-3.4.3_fix.patch DIST_FILE_FULL=/usr/ports/distfiles/${DIST_FILE} PORT_DIR=/usr/ports/archivers/libunrar3 SRC_PORT_DIR=/usr/ports/archivers/unrar rm -rf ${PORT_DIR} rsync -avz ${SRC_PORT_DIR}/ ${PORT_DIR}/ if [ ! -f ${DIST_FILE_FULL} ]; then wget http://mcmcc.bat.ru/clamav/${DIST_FILE} -O${DIST_FILE_FULL} fi cd ${PORT_DIR} echo "PATCHFILES=${DIST_FILE}" > ${PORT_DIR}/Makefile.local echo "PATCH_DIST_STRIP=-p1" >> ${PORT_DIR}/Makefile.local #perl -ni -e "print \$_ unless (/${DIST_FILE}/)" ${PORT_DIR}/distinfo #echo "MD5 (${DIST_FILE}) = `md5 ${DIST_FILE_FULL} | awk '{print $4}'`" >> ${PORT_DIR}/distinfo #echo "SIZE (${DIST_FILE}) = `ls -l ${DIST_FILE_FULL} | awk '{print $5}'`" >> ${PORT_DIR}/distinfo perl -pi -e 's/(\@\$\{SED\} -e)/$1 "s\|all:\tunrar\|all:\tlib\|" -e/' ${PORT_DIR}/Makefile perl -pi -e 's/^(PORTNAME=\s*)\S+$/${1}libunrar3/' ${PORT_DIR}/Makefile perl -pi -e 's/^.*INSTALL_PROGRAM.+\/unrar.*$/\t\@\$\{MKDIR\} \$\{PREFIX\}\/include\/libunrar3 \t\$\{INSTALL_DATA\} \$\{WRKSRC\}\/dll.hpp \$\{PREFIX\}\/include\/libunrar3 \t\$\{INSTALL_DATA\} \$\{WRKSRC\}\/libunrar3.so \$\{PREFIX}\/lib /' ${PORT_DIR}/Makefile make makesum make patch make build NOPORTDOCS=yo make deinstall install

diff -urN ../clamav-0.80.orig/libclamav/unrarlib.c ../clamav-0.80/libclamav/unrarlib.c --- ../clamav-0.80.orig/libclamav/unrarlib.c Fri Nov 5 12:51:17 2004 + ../clamav-0.80/libclamav/unrarlib.c Fri Nov 5 12:47:21 2004 @@ -27,6 +27,7 @@ #include <sys/stat.h> #include <fcntl.h> #include <sys/param.h> +#include <stdlib.h> #include <libunrar3/dll.hpp> #include "clamav.h" #include "others.h"

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру