Cómo reparar el servidor OS X “LibClamAV Error: mpool_malloc (): ¿Intenta asignar 8388608 bytes?”. ¿Reiniciar el bucle?

0

Desde el viernes pasado (21 de octubre de 2016), un reinicio de 10.6 (Snow Leopard Server) y 10.7 (Lion Server) da como resultado numerosas repeticiones del mensaje de error registrado:

  

Error de LibClamAV: mpool_malloc (): intento de asignar 8388608 bytes.

y

  

ADVERTENCIA: [LibClamAV] mpool_malloc (): Intente asignar 8388608   bytes Reporte a enlace Tamaño del registro = 1048612, máx.   = 1048576 REGISTRO DESACTIVADO (Tamaño de archivo de registro máximo excedido).

Solución (no una solución)

Después de deshabilitar "Administrador del servidor" > "Correo" > "Configuración" > "General" > "Filtros":

  1. [] Habilitar el filtrado de correo no deseado
  2. [] Habilitar filtrado de virus

el mensaje de error desapareció y los reinicios se detuvieron.

Regresión

Parece que el motor ClamAV ( $ /usr/bin/clamscan --version ... 0.97.8 ) es demasiado viejo de acuerdo con ClamAV .net bug 11647 .

¿Cómo arreglarlo?

¿Cómo corregir el error ClamAV " LibClamAV Error: mpool_malloc(): Attempt to allocate 8388608 bytes " de forma permanente y tener correo no deseado y funcionalidad de filtrado de virus ? En otras palabras, ¿Cómo actualizar el escáner clamav integrado del servidor Mac OS X Lion 10.7 (sin instalar Xcode en la máquina que ejecuta el ClamAV obsoleto) ?

    
pregunta Pro Backup 25.10.2016 - 13:16

3 respuestas

0

Actualizando el ClamAV de Apple en 10.7 (Lion)

La receta de actualización a continuación requiere "Xcode" y "Xcode Command Line Tools" para compilar software a partir de su código fuente. Los siguientes comandos de Terminal.app se prueban con Mac OS X 10.9.5, Xcode 6.2 en un shell zsh. Para obtener más información sobre por qué se hicieron varias elecciones, consulte la sección "Fondo" en la parte inferior.

Construir pcre 8.39

$ cd ~
$ mkdir src
$ cd /tmp && curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz && cd -
$ cd src
$ tar zxf /tmp/pcre-8.39.tar.gz && rm /tmp/pcre-8.39.tar.gz
$ cd pcre-8.39
$ ./configure --prefix=/usr/local/pcre
$ make && make check
$ make install DESTDIR=/tmp/pcre
$ rm -r /tmp/pcre/usr/local/pcre/share #remove docs
$ tar czvf ~/pcre-8.39.tgz -C /tmp/pcre --exclude=.DS_Store usr/

Cree clamav para sobrescribir la versión incorporada de Mac OS X

$ cd ~/src
$ cd /tmp && curl -LO https://www.clamav.net/downloads/production/clamav-0.99.2.tar.gz && cd -
$ tar zxf /tmp/clamav-0.99.2.tar.gz && rm /tmp/clamav-0.99.2.tar.gz
$ cd clamav-0.99.2

Sin -mmacosx-version-min=10.X ClamAV 0.99.2 se construirá con optimizaciones de código del compilador que sí se ejecutan en la versión OS X del host (10.9), pero no funcionan en 10.6 y 10.7.

En caso de que no esté compilando para ejecutarse en 10.6.8 o 10.7.5, es posible que necesite cambiar 10.8.0 o 11.4.2 a la salida del comando uname -r ejecutado en su Mac host (remoto).

10.6.8

$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" ./configure --prefix=/usr --libdir=/usr/lib --with-pcre=/usr/local/pcre --enable-llvm --build=x86_64-apple-darwin'uname -r' --host=x86_64-apple-darwin10.8.0 --sysconfdir=/private/etc
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" make
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.6" sudo make install DESTDIR=/tmp/clamav-0.99.2 && sudo rm -r /tmp/clamav-0.99.2/{private,usr/include} && sudo chown -R root:wheel /tmp/clamav-0.99.2
$ tar czvf ~/clamav-0.99.2.tgz -C /tmp/clamav-0.99.2 --exclude=.DS_Store usr/

10.7.5

$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" ./configure --prefix=/usr --libdir=/usr/lib --with-pcre=/usr/local/pcre --enable-llvm --build=x86_64-apple-darwin'uname -r' --host=x86_64-apple-darwin11.4.2 --sysconfdir=/private/etc
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" make
$ CFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" CXXFLAGS="-O3 -march=nocona -mmacosx-version-min=10.7" sudo make install DESTDIR=/tmp/clamav-0.99.2 && sudo rm -r /tmp/clamav-0.99.2/{private,usr/include} && sudo chown -R root:wheel /tmp/clamav-0.99.2
$ tar czvf ~/clamav-0.99.2.tgz -C /tmp/clamav-0.99.2 --exclude=.DS_Store usr/

Cargue o copie los archivos .tgz a la máquina remota 10.7

SSH debe estar habilitado en el host remoto (receptor) para que funcionen estos comandos de ejemplo.

$ scp ~/pcre-8.39.tgz remote.host.tld:/tmp/
$ scp ~/clamav-0.99.2.tgz remote.host.tld:/tmp/

También puede cargar los archivos .tgz en un servidor web y descargarlos en las máquinas host remotas, por ejemplo con este comando:

$ cd /tmp && curl -O http://crashplan.probackup.nl/install/mac/pcre-8.39.tgz && cd -
$ cd /tmp && curl -O http://crashplan.probackup.nl/install/mac/clamav-0.99.2.tgz && cd -

Instale pcre 8.39 en el host remoto Mac en / usr / local / pcre

$ sudo tar zxvf /tmp/pcre-8.39.tgz -C /

Opcionalmente cree enlaces a ejecutables de pcre en / usr / local / bin

$ cd /usr/local/bin && sudo ln -s ../pcre/usr/local/pcre/bin/{pcre-config,pcregrep,pcretest} . && cd -

Instale ClamAV 0.99.2 en el host remoto Mac

$ sudo tar zxvf /tmp/clamav-0.99.2.tgz -C /

Actualizar la configuración de la caja de arena de la almeja (para 10.7)

$ sudo sed -i '' 's#(lib|share)#(lib|share|local/pcre/lib)#' /usr/share/sandbox/clamd.sb
$ grep -q -F '(regex #"^/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent$")' /usr/share/sandbox/clamd.sb || { awk '/\(regex #"\^\/private\/var\/clamav\/"\)/ {print "\t(regex #\"^/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent\$\")"}; {print}' /usr/share/sandbox/clamd.sb > ~/temp-clamd.sb; cat ~/temp-clamd.sb | sudo tee /usr/share/sandbox/clamd.sb > /dev/null; rm ~/temp-clamd.sb; };

Iniciar el demonio freshclam

$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.freshclam.plist

Ver si freshclam se está actualizando

$ tail -f /private/var/log/freshclam.log

Presione Ctrl + C para de dejar de mostrar la "cola" del archivo de registro.

O verifique la versión de la base de datos en el ejecutable clamd :

$ clamd --version
ClamAV 0.99.2/22442/Thu Oct 27 20:03:54 2016

Iniciar el demonio clamd

$ sudo /bin/launchctl load -w /System/Library/LaunchDaemons/org.clamav.clamd.plist

Archivos de archivo del instalador de limpieza

$ rm /tmp/pcre-8.39.tgz
$ rm /tmp/clamav-0.99.2.tgz

Eso es todo.

Fondo

Sobrescribe el clamav de Apple

Debido a que la versión 0.97 ClamAV de Mac OS X 10.7 está tan desactualizada que rompe el sistema, creo que es conveniente sobrescribir la versión integrada de ClamAV con una versión más reciente. Normalmente esto no se recomienda porque las actualizaciones de Apple sobrescribirían tal cambio. La última "Actualización de software" para 10.7 que lanzó Apple se remonta a September 2012 , 24 de septiembre de 2014. Por esa razón, no espero que Apple lance ninguna actualización de software para Lion, nunca.

pcre

La versión actual (octubre de 2016) de ClamAV es 0.99.2. Esa versión de clamav tiene una dependencia llamada " pcre " que no era necesaria para ejecutar la versión actual de clamav 0.97. Por lo tanto, también es necesario instalar algún software recientemente requerido. No estoy seguro de dónde es mejor instalar eso en la ubicación / usr o / usr / local. Para ser uno de los más seguros, elijo no cambiar el software del sistema en / usr, por lo tanto, uso la carpeta / usr / local / pcre.

Separa las máquinas construidas y liberadas

Para el código abierto es bastante común compilar e instalar el software desde el origen en la misma máquina. Debido a que el servidor que ejecuta clamav obsoleto es un servidor de producción, no me meto con él. La compilación / creación de software se realiza en un cuadro de Mac diferente.

Saludos

Con respecto a Wildcard para obtener ayuda para crear comando awk para inserte una nueva línea precedida con el carácter de tabulación en clamd.sb .

    
respondido por el Pro Backup 28.10.2016 - 01:23
1

Me encontré con esta página que trata el problema en un servidor OS X cuidadosamente reconstruido que ejecuta 10.6 (tengo razones). La respuesta de compilación por sí mismo de Pro Backup es fantásticamente detallada, pero es posible que haya encontrado una respuesta más simple, al menos en el corto plazo. Noté que otra máquina que tenía, también usando 10.6 Server, no tenía el problema. Al verificar las versiones de cada uno usando /usr/bin/clamscan --version , vi que eran las mismas versiones del motor, pero diferentes versiones de definición:

Tiene el problema

ClamAV 0.97.8/22421/Sun Oct 23 22:58:38 2016
ClamAV 0.97.8/22422/Mon Oct 24 12:02:38 2016

versus

No tiene el problema

ClamAV 0.97.8/22470/Wed Nov  2 19:05:24 2016

Definiciones de clamAV de descarga manual

Entonces, decidimos intentar descargar manualmente las definiciones de virus usando /usr/bin/freshclam (como sudo ). Se ejecutó a través de muchas versiones, terminando con 22471. Todavía no estoy seguro de si esto funcionará, pero espero que esté en el camino correcto.

    
respondido por el Nighthawk 03.11.2016 - 07:41
0

Tuve el mismo problema y deshabilité el correo (no lo usamos), el problema parece haber desaparecido.

Estoy pensando que ClamAV sacó una definición o actualización que era mala. Su mejor apuesta es probablemente mantener el filtrado deshabilitado por ahora hasta que se publique una actualización. También podría ayudar informárselo a ellos en enlace según se solicite.

    
respondido por el Jay Scholz 26.10.2016 - 17:27

Lea otras preguntas en las etiquetas