- Info: http://www.clamav.net
- Versione usata: 1.4.1
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways.
Aggiornare alla versione 1.4.x
A partire dalla versione 1.3.0 di ClamAV
(release notes) installa anche le librerie libclamav_rust
, libclammspack
, libclamunrar_iface
, and libclamunrar
static libraries required by libclamav
. Non dobbiamo quindi più preoccuparci di questi prerequisiti.
Per aggiornare all'ultima versione è sufficiente sovrascrivere la nuova installazione alla vecchia. Controllare i file di configurazione.
Prerequisiti
A partire dalla versione 0.104.0 l'installazione di clamav
è basata esclusivamente su CMake
, che sostuisce definitivamente quella basata su autotools
. E' pertanto necessario cambiare il modo di configurazione, compilazione e installazione.
Dal momento che l'installazione non prevede personalizzazioni particolari sarà sufficiente, se lo si preferisce, installare il programma mediante un pacchetto che potrebbe essere messo già a disposizione dalla nostra distribuzione Linux preferita e utilizzare questa pagina solo per quanto riguarda la configurazione successiva.
Mostrerò qui come installare il programma attraverso la compilazione manuale dei sorgenti. Come detto, è necessario avere il pacchetto CMake
. Nella documentazione ufficiale si raccomanda una versione recente (la versione 3.21.3 è ok qui sulla mia slackware) altrimenti potrebbero sorgere dei problemi e in quel caso sarà necessario aggiornare CMake via python pip3
; in tal caso dare una occhiata a questa pagina delladocumentazione ufficiale sul come fare.
Prerequisiti
clamav
e freshclam
hanno queste these librerie come loro dipendenze:
- libbz2 / bzip2
- libz / zlib
- libxml2
- libpcre2
- openssl
- json-c
- libjson-c / json-c
- libmspack (built-in by default, enable with `ENABLE_EXTERNAL_MSPACK=ON`)
- libiconv (built-in to `libc` 99% of the time, not required on Windows)
- pthreads (provided by Linux/Unix; requires `pthreads-win32` on Windows)
- llvm (optional, see: [Bytecode Runtime](#bytecode-runtime), below)
- libcheck (default, disable with `ENABLE_TESTS=OFF`)
- libmilter
Opzionalmente, se siamo in un sistema basato su SystemD:
- systemd, so ClamD, FreshClam, ClamOnAcc SystemD service.
- libsystemd, so ClamD will support the `clamd.ctl` socket.
E' possibile reperire in questo commento una lista dei pacchetti necessari all'installazione di ClamAV
su Ubuntu 22.04.
Installazione
Creare l'utente e il gruppo clamav
groupadd clamav useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
Scaricare
CLAMAV_VERSION=1.4.1 cd /usr/local/src wget http://www.clamav.net/downloads/production/clamav-${CLAMAV_VERSION}.tar.gz tar -xzf clamav-${CLAMAV_VERSION}.tar.gz cd clamav-${CLAMAV_VERSION} chown -R root:root .
Build e installazione
Prima di tutto, creare una sottocartella "build". Ciò ci consentirà, all'occorrenza in caso di problemi, di cancellare i file compilati e ricomniciare da capo.
La seguente installazione riprende il path della vecchia versione e usa /usr/localcome default prefix. Se si usa un sistema a 32b cambiare la variabile libdir
a /usr/local/lib. Se si utilizza un sistema basato su systemd
usare ENABLE_SYSTEMD=ON
.
mkdir build cd build cmake \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D CMAKE_INSTALL_FULL_LIBDIR=/usr/local/lib64 \ -D APP_CONFIG_DIRECTORY=/usr/local/etc \ -D ENABLE_MILTER=ON \ -D ENABLE_SYSTEMD=OFF \ -D ENABLE_TESTS=ON \ -D CMAKE_BUILD_TYPE=Release .. cmake --build . ctest --output-on-failure cmake --build . --target install
Configurazione
Creiamo le directory log e database:
mkdir -p /var/log/clamd chown -R clamav.clamav /var/log/clamd/ chmod -R o-rx /var/log/clamd/ mkdir -p /usr/local/share/clamav chown clamav.clamav /usr/local/share/clamav
/usr/local/etc/clamd.conf
Prestare attenzione almeno alle seguenti righe, in particolare a quella che stabilisce l'utente sotto il quale deve girare il processo:
# Questo deve essere commentato # Example LogFile /var/log/clamd/clamd.log LogTime yes LogRotate yes DatabaseDirectory /usr/local/share/clamav/ User clamav TCPSocket 3310 TCPAddr 127.0.0.1
/usr/local/etc/freshclam.conf
# Commentare o rimuovere la linea qui sotto. #Example DatabaseDirectory /usr/local/share/clamav/ UpdateLogFile /var/log/clamd/freshclam.log LogTime yes LogRotate yes DatabaseOwner clamav DatabaseMirror database.clamav.net NotifyClamd /usr/local/etc/clamd.conf # Questo è per l'aggiornamento delle versioni su simscan headers. Commentare questa riga se simscan non e' ancora stato installato OnUpdateExecute /usr/local/sbin/update-simscan
Avvio di clamd
e freshclam
E' necessario avviare freshclam
prima di clamav
affinchè venga installato preventivamente il database.
Creiamo uno startup script come questo per freshclam
(scarica):
#!/bin/sh # # Start/stop/restart freshclam. # DAEMON=/usr/local/bin/freshclam # Start clamav: start() { if [ -x $DAEMON ]; then echo -n "Starting freshclam daemon ... " $DAEMON -d echo " done." fi } # Stop clamav: stop() { echo -n "Stopping freshclam daemon ... " killall -TERM freshclam echo " done." } # Restart clamav: restart() { stop sleep 1 start } case "$1" in 'start') start ;; 'stop') stop ;; 'restart') restart ;; *) echo "usage $0 start|stop|restart" esac
Avvio del daemon:
cd /usr/local/bin wget https://notes.sagredo.eu/files/qmail/freshclamctl chmod +x /usr/local/bin/freshclamctl freshclamctl start
Controlliamo che il database sia stato aggiornato
# more /var/log/clamd/freshclam.log -------------------------------------- freshclam daemon 0.96.3 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64) ClamAV update process started at Fri Oct 22 13:15:43 2010 main.cvd is up to date (version: 52, sigs: 704727, f-level: 44, builder: sven) WARNING: getfile: daily-11979.cdiff not found on remote server (IP: 195.22.205.162) WARNING: getpatch: Can''t download daily-11979.cdiff from db.it.clamav.net WARNING: getfile: daily-11979.cdiff not found on remote server (IP: 213.92.8.5) WARNING: getpatch: Can''t download daily-11979.cdiff from db.it.clamav.net WARNING: getfile: daily-11979.cdiff not found on remote server (IP: 193.206.139.37) WARNING: getpatch: Can''t download daily-11979.cdiff from db.it.clamav.net WARNING: Incremental update failed, trying to download daily.cvd Downloading daily.cvd [100%] daily.cvd updated (version: 12167, sigs: 142570, f-level: 53, builder: guitar) Downloading bytecode.cvd [100%] bytecode.cvd updated (version: 86, sigs: 10, f-level: 53, builder: edwin) Database updated (847307 signatures) from db.it.clamav.net (IP: 193.206.139.37) Clamd successfully notified about the update. --------------------------------------
Creiamo uno script clamdctl
(scarica) come questo nella cartella /usr/local/bin
:
#!/bin/sh # # Start/stop/restart clamav. # DAEMON=/usr/local/sbin/clamd # Start clamav: start() { if [ -x $DAEMON ]; then echo -n "Starting clamd daemon: /usr/sbin/clamd " $DAEMON echo " done." fi } # Stop clamav: stop() { echo -n "Stopping clamd daemon ... " killall -TERM clamd echo " done." } # Restart clamav: restart() { stop sleep 1 start } # Help help() { $DAEMON --help exit } case "$1" in 'start') start ;; 'stop') stop ;; 'restart') restart ;; 'help') help ;; *) echo "usage $0 start|stop|restart|help" esac
Avvio del daemon
cd /usr/local/bin wget https://notes.sagredo.eu/files/qmail/clamdctl chmod +x /usr/local/bin/clamdctl clamdctl help Clam AntiVirus Daemon 0.96.3 By The ClamAV Team: http://www.clamav.net/team (C) 2007-2009 Sourcefire, Inc. --help -h Show this help. --version -V Show version number. --debug Enable debug mode. --config-file=FILE -c FILE Read configuration from FILE. clamdctl start
Non dimentichiamo di abilitare l'avvio di clamd
e freshclam
al boot della macchina in rc.local
Commenti
clamav parte da solo
swap 4 gennaio 2020 01:21 CET
Clamd parte da solo all'avvio di Lubuntu 18.04 e clamav non si ferma più, sottraendo un mucchio di ram.
Come fare ad impostare l'avvio solo manuale ?
Clamtk è già installato , e non ci sono pianificazioni di attività .
Risulta un utente " Clamav " che avvia clamd .
Grazie per la risposta
Rispondi | Permalink
clamav parte da solo
Roberto Puzzanghera swap 4 gennaio 2020 10:45 CET
Non conosco per niente Ubuntu, quindi non posso aiutarti. Posso solo dire che se lo installi compilandolo a mano di sicuro non scrive nulla negli script di sistema.
Rispondi | Permalink