12 maggio 2022 Roberto Puzzanghera 2 commenti
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways.
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.
clamav
e freshclam
hanno queste these librerie come loro dipendenze:
Opzionalmente, se siamo in un sistema basato su SystemD:
Creare l'utente e il gruppo clamav
groupadd clamav useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
cd /usr/local/src wget http://www.clamav.net/downloads/production/clamav-0.105.0.tar.gz tar -xzf clamav-0.105.0.tar.gz cd clamav-0.105.0 chown -R root:root .
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/local
come 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 cmake --build . --target install
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
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 DatabaseDirectory /usr/local/share/clamav/ User clamav TCPSocket 3310 TCPAddr 127.0.0.1
# Commentare o rimuovere la linea qui sotto. #Example DatabaseDirectory /usr/local/share/clamav/ UpdateLogFile /var/log/clamd/freshclam.log DatabaseOwner clamav # Decommentare la linea seguente e sostituire XY con il codice della tua nazione. # See http://www.iana.org/cctld/cctld-whois.htm for the full list. DatabaseMirror db.it.clamav.net NotifyClamd /usr/local/etc/clamd.conf
Copiare questo script in /etc/logrotate.d:
cat > /etc/logrotate.d/clamav << __EOF__ /var/log/clamd/*.log { daily notifempty missingok postrotate /usr/bin/killall -HUP freshclam 2> /dev/null || true /usr/bin/killall -HUP clamd 2> /dev/null || true endscript } __EOF__
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
IndiMailfilter command is missing?
28 giugno 2022 12:42
IndiMailfilter command is missing?
28 giugno 2022 11:31
IndiMailfilter command is missing?
20 giugno 2022 13:23
"IndiMailfilter" command is missing?
20 giugno 2022 13:01
"IndiMailfilter" command is missing?
20 giugno 2022 11:31
fehQlibs *.so is not installed by "make install"
11 giugno 2022 02:44
Missing suid and sgid
8 giugno 2022 12:31
Missing suid and sgid
8 giugno 2022 10:42
incoming maximum number of recipients allowed
31 maggio 2022 09:04
incoming maximum number of recipients allowed
31 maggio 2022 04:53
Tags
apache clamav dkim dovecot ezmlm fail2ban ftp guide hacks lamp letsencrypt linux linux-vserver lxc mariadb mediawiki mozilla mysql openboard owncloud patches php proftpd qmail qmail-spp qmailadmin rbl roundcube rsync sieve simscan slackware solr spamassassin spf ssh ssl tcprules tex ucspi-tcp vpopmail vqadmin
Commenti
clamav parte da solo
swap 4 gennaio 2020 01:21
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
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