ClamAV

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 01 июн 2005, 10:57

mrrc писал(а):Сразу на двух машинах?
легко. один и тот же админ может какие-нить неадекватные действия проводить на всех подконтрольных хостах
mrrc писал(а): Остальное то ставится нормально и раньше проблем не было.
ну так с clamav'ом их и нет и не должно быть. по крайней мере таких, какие описаны в вопросе
mrrc писал(а):Да полностью накатить все порты можно в любой момент, только кажется мне не поможет это.
так может надо таки попробовать?
mrrc писал(а):Похоже, нужно ставить сегодняшний clamav-devel-20050529 и ждать выхода следующей релизной версии, может там решится непонятная проблема.
дык, можно и версию 2.0 подождать... или 3.0
--
/corvax

mrrc
Power member
Сообщения: 47
Зарегистрирован: 13 сен 2004, 23:41

Сообщение mrrc » 02 июн 2005, 09:49

Действительно, накатил полностью все дерево портов и сборка прошла удачно, во как.
Пожимаю лапку.

Аватара пользователя
Kalashmat
Advanced member
Сообщения: 54
Зарегистрирован: 17 фев 2005, 11:51
Откуда: Moscow
Контактная информация:

Сообщение Kalashmat » 07 июл 2005, 10:12

Люди HELP возникла такая проблема:

Часто в логе стало появляться сообщения типа
Milter: from=<user@mydomain.ru>, reject=451 4.3.2 AV system temporarily overloaded - please try later: 1 Time(s)
И при этом письма естесственно не проходят.

Sendmail 8.13.1 + ClamAV 0.85
Сервак конечно нагружен неподетски только за сутки:
Bytes Transferred: 49115110080
Messages Sent:     13032
Total recipients:  16927
Вот статистика по вирусам:
Viruses detected:
  Exploit.HTML.IFrame: 14 Time(s)
  HTML.Phishing.Auction-28: 4 Time(s)
  HTML.Phishing.Bank-1: 27 Time(s)
  HTML.Phishing.Pay-14: 2 Time(s)
  HTML.Phishing.Pay-16: 2 Time(s)
  Trojan.Downloader.Small-165: 2 Time(s)
  Worm.Dumaru.Y: 1 Time(s)
  Worm.Mydoom.I: 30 Time(s)
  Worm.Mydoom.M: 264 Time(s)
  Worm.Mydoom.S: 1 Time(s)
  Worm.Mytob.AC: 9 Time(s)
  Worm.Mytob.BY: 5 Time(s)
  Worm.Mytob.C: 86 Time(s)
  Worm.Mytob.CA: 18 Time(s)
  Worm.Mytob.CL: 1 Time(s)
  Worm.Mytob.CU: 2 Time(s)
  Worm.Mytob.CV: 13 Time(s)
  Worm.Mytob.CW: 254 Time(s)
  Worm.Mytob.T-2: 1 Time(s)
  Worm.SomeFool.Gen-1: 16 Time(s)
  Worm.SomeFool.Gen-2: 4 Time(s)
  Worm.SomeFool.P: 99 Time(s)
  Worm.SomeFool.Q: 3 Time(s)
  Worm.SomeFool.Z: 22 Time(s)

Сам сервак HP DL380 с двумя процами
На выходных думаю обновить ClamAV но сомневаюсь что поможет.

Есть идеи куда копать?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 07 июл 2005, 11:13

Kalashmat писал(а):Люди HELP возникла такая проблема:

Часто в логе стало появляться сообщения типа
Milter: from=<user@mydomain.ru>, reject=451 4.3.2 AV system temporarily overloaded - please try later: 1 Time(s)
И при этом письма естесственно не проходят.
они приходят позже
Kalashmat писал(а):На выходных думаю обновить ClamAV но сомневаюсь что поможет.
угу, ибо дело не в самом кламаве, а в количестве детей
Kalashmat писал(а):Есть идеи куда копать?
чему равно значение --max-children при запуске clamav-milter?
--
/corvax

Аватара пользователя
Kalashmat
Advanced member
Сообщения: 54
Зарегистрирован: 17 фев 2005, 11:51
Откуда: Moscow
Контактная информация:

Сообщение Kalashmat » 07 июл 2005, 11:22

2corvax
Вот все параметры запуска:
CLAMAV_FLAGS="  --quiet \
               --external \
               --dont-wait \
               --force-scan \
               --dont-log-clean \
               --server=localhost \
               --pidfile=/var/run/clamav/clamav-milter.pid \
               local:/var/run/clamav/clamav-milter.sock \

Количество дочерних процессов кака я понимаю дефолтное, сколько реккомендуется поставить?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 07 июл 2005, 11:54

Kalashmat писал(а):2corvax
Вот все параметры запуска:
CLAMAV_FLAGS="  --quiet \
               --external \
               --dont-wait \
               --force-scan \
               --dont-log-clean \
               --server=localhost \
               --pidfile=/var/run/clamav/clamav-milter.pid \
               local:/var/run/clamav/clamav-milter.sock \

Количество дочерних процессов кака я понимаю дефолтное,
судя по сырцам clamav-milter'а, если не указано значение --max-children, то оно приравнивается к значению параметра MaxThreads из clamd.conf, которое в свою очередь по умолчанию равно 10
Kalashmat писал(а):сколько реккомендуется поставить?
все зависит от ресурсов хоста. пробуйте увеличивать --max-children и наблюдать за реальным количеством детей и потребляемыми ресурсами, ну и за деферами в логе
--
/corvax

Аватара пользователя
Kalashmat
Advanced member
Сообщения: 54
Зарегистрирован: 17 фев 2005, 11:51
Откуда: Moscow
Контактная информация:

Сообщение Kalashmat » 07 июл 2005, 12:24

У меня в clamd.conf стоит 50 (сам когда-то ставил :-) ) Что ж получается мильтеру 50-ти детишек не хватает?!

PomidorOFF
Power member
Сообщения: 45
Зарегистрирован: 22 окт 2004, 18:10
Откуда: Украина

Сообщение PomidorOFF » 08 июл 2005, 15:06

Опять проблема с наложением патча:

Код: Выделить всё

===>  Found saved configuration for clamav-devel-20040610
===>  Extracting for clamav-0.86.1
===>  Found saved configuration for clamav-devel-20040610
=> Checksum OK for clamav-0.86.1.tar.gz.
=> Checksum OK for clamav-libunrar3.patch.
===>  Patching for clamav-0.86.1
===>  Applying distribution patches for clamav-0.86.1
1 out of 6 hunks failed--saving rejects to libclamav/scanners.c.rej
1 out of 1 hunks failed--saving rejects to libclamav/unrarlib.c.rej
*** Error code 2

Stop in /usr/ports/security/clamav.
*** Error code 1

Stop in /usr/ports/security/clamav.
libclamav/Makefile.am:20: `CFLAGS' is a user variable, you should not override it;
libclamav/Makefile.am:20: use `AM_CFLAGS' instead.
libclamav/Makefile.am:21: `LDFLAGS' is a user variable, you should not override it;
libclamav/Makefile.am:21: use `AM_LDFLAGS' instead.
===>  Patching for clamav-0.86.1
===>  Applying distribution patches for clamav-0.86.1
Ignoring previously applied (or reversed) patch.
1 out of 1 hunks ignored--saving rejects to libclamav/Makefile.am.rej
Ignoring previously applied (or reversed) patch.
6 out of 6 hunks ignored--saving rejects to libclamav/scanners.c.rej
1 out of 1 hunks failed--saving rejects to libclamav/unrarlib.c.rej
Ignoring previously applied (or reversed) patch.
1 out of 1 hunks ignored--saving rejects to libclamav/unrarlib.h.rej
*** Error code 9

Stop in /usr/ports/security/clamav.
*** Error code 1

Stop in /usr/ports/security/clamav.
патч вроде правильно переделал?

Код: Выделить всё

# cat patch-libclamav::stdlib.patch
diff -urN ../clamav-0.86.1.orig/libclamav/unrarlib.c ../clamav-0.86.1/libclamav/unrarlib.c
--- ../clamav-0.86.1.orig/libclamav/unrarlib.c  Fri Nov  5 12:51:17 2004
+++ ../clamav-0.86.1/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"
corvax поможете?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 08 июл 2005, 15:43

PomidorOFF писал(а):Опять проблема с наложением патча:

Код: Выделить всё

===>  Found saved configuration for clamav-devel-20040610
===>  Extracting for clamav-0.86.1
===>  Found saved configuration for clamav-devel-20040610
=> Checksum OK for clamav-0.86.1.tar.gz.
=> Checksum OK for clamav-libunrar3.patch.
===>  Patching for clamav-0.86.1
===>  Applying distribution patches for clamav-0.86.1
1 out of 6 hunks failed--saving rejects to libclamav/scanners.c.rej
1 out of 1 hunks failed--saving rejects to libclamav/unrarlib.c.rej
*** Error code 2

Stop in /usr/ports/security/clamav.
*** Error code 1
...
патч вроде правильно переделал?
не совсем понял, а чего его переделывать?
PomidorOFF писал(а):

Код: Выделить всё

# cat patch-libclamav::stdlib.patch
diff -urN ../clamav-0.86.1.orig/libclamav/unrarlib.c ../clamav-0.86.1/libclamav/unrarlib.c
--- ../clamav-0.86.1.orig/libclamav/unrarlib.c  Fri Nov  5 12:51:17 2004
+++ ../clamav-0.86.1/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"
corvax поможете?
нужно предваритально удалить (перенести) /usr/ports/security/clamav/files/patch-libclamav_unrarlib.h
--
/corvax

PomidorOFF
Power member
Сообщения: 45
Зарегистрирован: 22 окт 2004, 18:10
Откуда: Украина

Сообщение PomidorOFF » 09 июл 2005, 19:30

corvax писал(а): не совсем понял, а чего его переделывать?
нужно предваритально удалить (перенести) /usr/ports/security/clamav/files/patch-libclamav_unrarlib.h
Указал в пути последнюю версию clamav.
Удалил, однако ошибки те же.

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 июл 2005, 15:19

PomidorOFF писал(а):
corvax писал(а): не совсем понял, а чего его переделывать?
нужно предваритально удалить (перенести) /usr/ports/security/clamav/files/patch-libclamav_unrarlib.h
Указал в пути последнюю версию clamav.
Удалил, однако ошибки те же.
я не доглядел, что речь идет о clamav-devel
думаю, что патч стОит накладывать на clamav 0.86.1, а не на clamav-devel
исходя из сравнения исходников, у них там переделана поддержка unrar'а
--
/corvax

PomidorOFF
Power member
Сообщения: 45
Зарегистрирован: 22 окт 2004, 18:10
Откуда: Украина

Сообщение PomidorOFF » 11 июл 2005, 12:13

накладываю как раз на clamav 0.86.1  :cry:

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 11 июл 2005, 13:21

PomidorOFF писал(а):накладываю как раз на clamav 0.86.1  :cry:
какой именно патч накладывается? clamav-0.84-libunrar3.patch? размер 98180 байт?

у меня он без проблем накладывается на 0.86.1
при условии удаления из дерева портов патча /usr/ports/security/clamav/files/patch-libclamav_unrarlib.h

хотелось бы взглянуть на содержимое этих фалов:
/usr/ports/security/clamav/work/clamav-0.86.1/libclamav/scanners.c.rej
/usr/ports/security/clamav/work/clamav-0.86.1/libclamav/unrarlib.c.rej

еще хотелось бы понять, к чему относится фраза "Указал в пути последнюю версию clamav." из сообщения 09 Июл 2005 17:30 Сб
если к тому, что в патче patch-libclamav::stdlib.patch изменена строка

Код: Выделить всё

diff -urN ../clamav-0.80.orig/libclamav/unrarlib.c ../clamav-0.80/libclamav/unrarlib.c
на строку

Код: Выделить всё

diff -urN ../clamav-0.86.1.orig/libclamav/unrarlib.c ../clamav-0.86.1/libclamav/unrarlib.c
то это не имеет никакого значения
--
/corvax

PomidorOFF
Power member
Сообщения: 45
Зарегистрирован: 22 окт 2004, 18:10
Откуда: Украина

Сообщение PomidorOFF » 11 июл 2005, 14:05

corvax писал(а):какой именно патч накладывается? clamav-0.84-libunrar3.patch? размер 98180 байт?
нет, размер 98079, он Вашим скриптом качается (в дистах я удалил):

Код: Выделить всё

if [ ! -f ${DIST_FILE_FULL} ]; then
        wget http://mcmcc.bat.ru/clamav/${DIST_FILE} -O${DIST_FILE_FULL}
fi
хотелось бы взглянуть на содержимое этих фалов:
/usr/ports/security/clamav/work/clamav-0.86.1/libclamav/scanners.c.rej
/usr/ports/security/clamav/work/clamav-0.86.1/libclamav/unrarlib.c.rej

Код: Выделить всё

# cat scanners.c.rej
***************
*** 42,53 ****

  #include <mspack.h>

  #ifdef CL_THREAD_SAFE
  #  include <pthread.h>
  pthread_mutex_t cli_scanrar_mutex = PTHREAD_MUTEX_INITIALIZER;
  #endif
  int cli_scanrar_inuse = 0;
-
  extern short cli_leavetemps_flag;

  extern int cli_mbox(const char *dir, int desc, unsigned int options); /* FIXME */
--- 42,54 ----

  #include <mspack.h>

+ #ifndef UNRAR3
  #ifdef CL_THREAD_SAFE
  #  include <pthread.h>
  pthread_mutex_t cli_scanrar_mutex = PTHREAD_MUTEX_INITIALIZER;
  #endif
  int cli_scanrar_inuse = 0;
+ #endif
  extern short cli_leavetemps_flag;

  extern int cli_mbox(const char *dir, int desc, unsigned int options); /* FIXME */
***************
*** 108,113 ****
  static int cli_scanfile(const char *filename, const char **virname, unsigned long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec);


  #ifdef CL_THREAD_SAFE
  static void cli_unlock_mutex(void *mtx)
  {
--- 109,115 ----
  static int cli_scanfile(const char *filename, const char **virname, unsigned long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec);


+ #ifndef UNRAR3
  #ifdef CL_THREAD_SAFE
  static void cli_unlock_mutex(void *mtx)
  {
***************
*** 286,291 ****

      return ret;
  }

  #ifdef HAVE_ZLIB_H
  static int cli_scanzip(int desc, const char **virname, long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec)
--- 288,294 ----

      return ret;
  }
+ #endif

  #ifdef HAVE_ZLIB_H
  static int cli_scanzip(int desc, const char **virname, long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec)
***************
*** 1076,1081 ****
      return ret;
  }

  static int cli_scanmschm(int desc, const char **virname, long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec)
  {
        char *tempname;
--- 1079,1121 ----
      return ret;
  }

+ #ifdef UNRAR3
+ static int cli_scanrar3(int desc, const char **virname, long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec)
+ {
+       const char *tmpdir;
+       char *dir;
+       int ret = CL_CLEAN;
+
+
+     cli_dbgmsg("in cli_scanrar3()\n");
+
+     if((tmpdir = getenv("TMPDIR")) == NULL)
+ #ifdef P_tmpdir
+       tmpdir = P_tmpdir;
+ #else
+       tmpdir = "/tmp";
+ #endif
+
+     /* generate temporary directory */
+     dir = cli_gentemp(tmpdir);
+     if(mkdir(dir, 0700)) {
+       cli_errmsg("Rar3: Can't create temporary directory %s\n", dir);
+       return CL_ETMPDIR;
+     }
+
+     if((ret = cli_unrar3(dir, desc)))
+       cli_dbgmsg("Rar3: %s\n", cl_strerror(ret));
+     else
+       ret = cli_scandir(dir, virname, scanned, root, limits, options, arec, mrec);
+
+     if(!cli_leavetemps_flag)
+       cli_rmdirs(dir);
+
+     free(dir);
+     return ret;
+ }
+ #endif
+
  static int cli_scanmschm(int desc, const char **virname, long int *scanned, const struct cl_node *root, const struct cl_limits *limits, unsigned int options, int *arec, int *mrec)
  {
        char *tempname;
***************
*** 1210,1217 ****

      switch(type) {
        case CL_TYPE_RAR:
            if(!DISABLE_RAR && SCAN_ARCHIVE && !cli_scanrar_inuse)
                ret = cli_scanrar(desc, virname, scanned, root, limits, options, arec, mrec);
            break;

        case CL_TYPE_ZIP:
--- 1250,1262 ----

      switch(type) {
        case CL_TYPE_RAR:
+ #ifdef UNRAR3
+           if(!DISABLE_RAR && SCAN_ARCHIVE)
+               ret = cli_scanrar3(desc, virname, scanned, root, limits, options, arec, mrec);
+ #else
            if(!DISABLE_RAR && SCAN_ARCHIVE && !cli_scanrar_inuse)
                ret = cli_scanrar(desc, virname, scanned, root, limits, options, arec, mrec);
+ #endif
            break;

        case CL_TYPE_ZIP:
***************
*** 1328,1335 ****
         * in raw mode. Now we will try to unpack them
         */
        case CL_TYPE_MSEXE:
            if(SCAN_PE)
                ret = cli_scanpe(desc, virname, scanned, root, limits, options, arec, mrec);
            break;

        default:
--- 1373,1389 ----
         * in raw mode. Now we will try to unpack them
         */
        case CL_TYPE_MSEXE:
+ #ifdef UNRAR3
+           if(!DISABLE_RAR && SCAN_ARCHIVE)
+               ret = cli_scanrar3(desc, virname, scanned, root, limits, options, arec, mrec);
+           if(SCAN_PE && ret != CL_VIRUS)
+ #else
            if(SCAN_PE)
+ #endif
+           {
+               lseek(desc, 0, SEEK_SET);
                ret = cli_scanpe(desc, virname, scanned, root, limits, options, arec, mrec);
+           }
            break;

        default:
второй файл еще больше
еще хотелось бы понять, к чему относится фраза "Указал в пути последнюю версию clamav." из сообщения 09 Июл 2005 17:30 Сб
если к тому, что в патче patch-libclamav::stdlib.patch изменена строка

Код: Выделить всё

diff -urN ../clamav-0.80.orig/libclamav/unrarlib.c ../clamav-0.80/libclamav/unrarlib.c
на строку

Код: Выделить всё

diff -urN ../clamav-0.86.1.orig/libclamav/unrarlib.c ../clamav-0.86.1/libclamav/unrarlib.c
то это не имеет никакого значения
именно[/code]

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 11 июл 2005, 15:47

PomidorOFF писал(а):
corvax писал(а):какой именно патч накладывается? clamav-0.84-libunrar3.patch? размер 98180 байт?
нет, размер 98079, он Вашим скриптом качается (в дистах я удалил):

Код: Выделить всё

if [ ! -f ${DIST_FILE_FULL} ]; then
        wget http://mcmcc.bat.ru/clamav/${DIST_FILE} -O${DIST_FILE_FULL}
fi
значит, это старый скрипт. ибо в старом переменная DIST_FILE имеет значение clamav-libunrar3.patch, а в новом - clamav-0.84-libunrar3.patch

и как следствие, попытка наложить на 0.86.1 патч для 0.83 оканчивается плачевно

я новый скрипт сейчас выложу
Вложения

[Расширение sh было запрещено, вложение больше недоступно.]

--
/corvax

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей