Run ClamAV as a Daemon
For Ubuntu 16.04
Install clamav-daemon & clamav-freshclam
apt-get install clamav-daemon clamav-freshclam
You should run Clamd with a root permission to scan any files.
Edit the conf /etc/clamav/clamd.conf
,change the following line:
LocalSocketGroup root
User root
Start the clamav-daemon
systemctl start clamav-daemon
- Test the software
$ curl https://www.eicar.org/download/eicar.com.txt | clamdscan -
The output must include:
stream: Eicar-Test-Signature FOUND
For CentOS 7
Install Clamd
yum install epel-release
yum install clamav-server clamav-data clamav-filesystem clamav-lib clamav-update clamav clamav-devel
Run freshclam
- Configure the freshclam to updating database
cp /etc/freshclam.conf /etc/freshclam.conf.bak
sed -i '/^Example/d' /etc/freshclam.conf
- Create the init script
cat > /usr/lib/systemd/system/clam-freshclam.service << 'EOF'
# Run the freshclam as daemon
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target
EOF
- Boot up
systemctl enable clam-freshclam.service
systemctl start clam-freshclam.service
Configure Clamd
cp /usr/share/clamav/template/clamd.conf /etc/clamd.conf
sed -i '/^Example/d' /etc/clamd.conf
You should run Clamd with a root permission to scan any files.
Edit the /etc/clamd.conf
,change the following line:
User root
...
LocalSocket /var/run/clamd.sock
Run Clamd
- Create the init script
cat > /etc/init.d/clamd << 'EOF'
case "$1" in
start)
echo -n "Starting Clam AntiVirus Daemon... "
/usr/sbin/clamd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
;;
stop)
echo -n "Stopping Clam AntiVirus Daemon... "
pkill clamd
rm -f /var/run/clamav/clamd.sock
rm -f /var/run/clamav/clamd.pid
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
;;
esac
EOF
chmod +x /etc/init.d/clamd
- Boot up
chkconfig clamd on
service clamd start
- Test the software
$ curl https://www.eicar.org/download/eicar.com.txt | clamdscan -
The output must include:
stream: Eicar-Test-Signature FOUND