Come risolvere il server OS X "Errore LibClamAV: mpool_malloc (): tentativo di allocare 8388608 byte." ciclo di riavvio?

0

Dallo scorso venerdì (21 ottobre 2016) un riavvio sia di 10.6 (Snow Leopard Server) che di 10.7 (Lion Server) provocano numerose ripetizioni del messaggio di errore registrato:

LibClamAV Error: mpool_malloc(): Attempt to allocate 8388608 bytes.

e

WARNING: [LibClamAV] mpool_malloc(): Attempt to allocate 8388608 bytes. Please report to http://bugs.clamav.net Log size = 1048612, max = 1048576 LOGGING DISABLED (Maximal log file size exceeded).

Soluzione alternativa (non una correzione)

Dopo aver disattivato "Server Admin" > "Mail" > "Impostazioni" > "Generale" > "Filtri":

  1. [] Abilita il filtro della posta indesiderata
  2. [] Abilita filtro antivirus

il messaggio di errore era sparito e il riavvio si è interrotto.

Regressione

Sembra che il motore di ClamAV ( $ /usr/bin/clamscan --version ... 0.97.8 ) sia troppo vecchio secondo ClamAV .net bug 11647 .

Come risolvere?

Come correggere permanentemente l'errore " LibClamAV Error: mpool_malloc(): Attempt to allocate 8388608 bytes " di ClamAV e avere funzionalità di filtro della posta indesiderata e dei virus ? In altre parole Come aggiornare lo scanner integrato clamav del server Mac OS X Lion 10.7 (senza installare Xcode sul computer che esegue ClamAV non aggiornato) ?

    
posta Pro Backup 25.10.2016 - 13:16
fonte

3 risposte

0

Aggiornamento di ClamAV di Apple su 10.7 (Lion)

La seguente ricetta di aggiornamento richiede "Xcode" e "Xcode Command Line Tools" per creare software dal suo codice sorgente. I comandi Terminal.app qui sotto sono testati con Mac OS X 10.9.5, Xcode 6.2 in una shell zsh. Per i dettagli sul motivo per cui sono state fatte diverse scelte, vedere la sezione "Sfondo" in basso.

Build 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/

Crea clamav per sovrascrivere la versione integrata di 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

Senza -mmacosx-version-min=10.X ClamAV 0.99.2 verrà creato con ottimizzazioni del codice del compilatore eseguite sulla versione OS X dell'host (10.9), ma non funziona su 10.6 e 10.7.

Nel caso non si stia costruendo per l'esecuzione su 10.6.8 o 10.7.5, potrebbe essere necessario modificare 10.8.0 o 11.4.2 con l'output del comando uname -r eseguito sul proprio host Mac (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/

Carica o copia i file .tgz sulla macchina 10.7 remota

SSH deve essere abilitato sull'host remoto (di ricezione) affinché questi comandi di esempio funzionino.

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

Puoi anche caricare i file .tgz su un server web e scaricarli sui computer host remoti, ad esempio con questo 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 -

Installa pcre 8.39 su Mac host remoto su / usr / local / pcre

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

Possibilità di creare collegamenti ai file eseguibili di pcre in / usr / local / bin

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

Installa ClamAV 0.99.2 sull'host Mac remoto

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

Aggiorna clamd sandbox configuration (per 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; };

Avvia daemon freshclam

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

Verifica se freshclam sta aggiornando

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

Premi Ctrl + C per interrompere la visualizzazione della "coda" del file di registro.

Oppure controlla la versione del database nell'eseguibile clamd :

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

Avvia clamd daemon

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

Pulisci i file di archivio del programma di installazione

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

Questo è tutto.

Sfondo

Sovrascrivi il clamav di Apple

Poiché la versione 0.97 di Mac OS X 10.7 ClamAV è così obsoleta da infrangere il sistema, penso che sia saggio sovrascrivere il ClamAV integrato con una versione più recente. Normalmente questo non è raccomandato perché gli aggiornamenti di Apple sovrascriverebbero tale cambiamento. L'ultimo "aggiornamento software" per 10.7 pubblicato da Apple risale a settembre 2012 24 settembre 2014. Per questo motivo non mi aspetto che Apple rilascerà alcun aggiornamento software per Lion, mai.

pcre

La versione corrente (ottobre 2016) di ClamAV è 0.99.2. Quella release di clamav ha una dipendenza chiamata " pcre " che non era richiesta per eseguire la versione clamav corrente fallita 0.97. Pertanto, è necessario installare anche alcuni nuovi software necessari. Non sono sicuro di dove sia meglio installarlo in posizione / usr o / usr / local. Per essere uno il lato più sicuro scelgo di non cambiare il software di sistema in / usr, quindi utilizzare la cartella / usr / local / pcre.

Seperate built and release machines

Per l'open source è abbastanza comune creare e installare il software dal sorgente sullo stesso computer. Poiché il server che esegue clamav obsoleti è un server di produzione, non mi pesa. La compilazione / costruzione del software viene eseguita su un diverso Mac box.

Saluti

Per quanto riguarda la Wildcard per l'aiuto nella creazione di comando awk per inserisci una nuova riga preceduta dal carattere di tabulazione in clamd.sb .

    
risposta data 28.10.2016 - 01:23
fonte
1

Mi sono imbattuto in questa pagina che si occupa del problema su un server OS X ricostruito con cura che esegue 10.6 (ho motivi). La risposta compile-it-yourself di Pro Backup è straordinariamente dettagliata, ma potrei aver trovato una risposta più semplice, almeno a breve termine. Ho notato che un altro computer che avevo, anche usando il server 10.6, non aveva il problema. Controllando le versioni di ognuna utilizzando /usr/bin/clamscan --version , ho visto che erano le stesse versioni del motore, ma diverse versioni di definizione:

presenta il 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

vs

Non ha il problema

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

Scarica manuale definizioni clamAV

Quindi, ha deciso di provare a scaricare manualmente le definizioni dei virus utilizzando /usr/bin/freshclam (come sudo ). Ha funzionato attraverso molte versioni, finendo con 22471. Non ancora sicuro se questo farà il trucco, ma spero che sia sulla strada giusta.

    
risposta data 03.11.2016 - 07:41
fonte
0

Ho avuto lo stesso problema e la posta disabilitata (non la usiamo), il problema sembra essere andato via.

Penso che ClamAV abbia eliminato una definizione o un aggiornamento che era male. La soluzione migliore è probabilmente mantenere il filtro disabilitato per ora fino a quando non rilasciano un aggiornamento. Potrebbe anche essere utile segnalarlo a link come richiesto.

    
risposta data 26.10.2016 - 17:27
fonte

Leggi altre domande sui tag