如何在Ubuntu服务器20.04上安装和使用ClamAV?
Linux服务器平台非常安全,但这并不意味着它对恶意软件和其他类型的攻击无懈可击。正因为如此,你必须采取一切可能的预防措施来防止和/或检测问题。
当你遇到类似问题的时,你可以安装和使用ClamAV,它是一个开源的防病毒引擎,用于检测木马、病毒、恶意软件和其他恶意威胁。ClamAV是免费易用的。
我将带领大家在Ubuntu Server 20.04上安装ClamAV。安装完成后,我们将根据著名的Eicar测试文件进行测试,然后我们将设置一个自动任务来运行扫描。

准备工作:
正在运行的Ubuntu服务器20.04实例,拥有sudo权限的用户
如何安装ClamAV
ClamAV默认没有安装。要安装所有必要的东西,请登录到你的Ubuntu服务器实例,然后发出命令。
sudo apt-get install clamav clamav-daemon mailutils -y
安装完成后,你需要停止守护进程,这样你就可以手动更新ClamAV数据库。使用以下命令停止守护进程
sudo systemctl stop clamav-freshclam
在守护进程停止后,使用命令更新ClamAV。
sudo freshclam
freshclam完成后,用命令下载最新的数据库签名文件。
sudo wget https://database.clamav.net/daily.cvd
用命令将该文件复制到必要的目录中。
sudo cp daily.cvd /var/lib/clamav/
使用命令启动 freshclam 守护进程。
sudo systemctl start clamav-freshclam
如何手动扫描目录
让我们在系统上运行一个快速的手动扫描。假设你的服务器是一个web服务器,所有的东西都存放在标准的Apache文档根目录下。你可以用这样的命令对该目录进行手动扫描。
sudo clamscan --infected --detect-pua=yes --recursive /var/www/html/
上面的命令将在/var/www/html/上运行递归扫描,查找受感染的文件和可能的不需要的应用程序。根据该目录中数据的多少,扫描可能需要一些时间。
当扫描完成后,希望它应该返回没有发现任何可疑的东西。如果你想确保ClamAV正常工作,请按照以下步骤进行。
用命令下载Eicar文件。
wget -P ~/ http://www.eicar.org/download/eicar.com
将该文件移动到你的主目录中,使用命令。
mv eicar.com ~/
使用命令对下载的文件进行扫描。
sudo clamscan --infected --remove --recursive ~/
ClamAV应该检测到恶意文件并将其删除。
如何设置ClamAV自动扫描
现在我们将创建一个bash脚本,扫描/var/www/html/目录,然后创建一个cron作业,每晚运行它。如何做到这一点将取决于你是否可以从机器上发送电子邮件。如果可以的话,你可能可以按原样使用这个脚本,也可能需要根据你在服务器上设置的SMTP服务器来修改它。下面的例子将使用mail命令。
首先,用命令创建脚本。
nano /usr/local/bin/clamscan_daily.sh
在该文件中,粘贴以下内容。
#!/bin/bash
LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log";
EMAIL_MSG="Please see the log file attached";
EMAIL_FROM="admin@example.com";
EMAIL_TO="user@example.com";
DIRTOSCAN="/var/www/html";
for S in ${DIRTOSCAN}; do
DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1);
echo "Starting scan of "$S" directory.
Directory size: "$DIRSIZE".";
clamscan -ri --remove --detect-pua=yes "$S" >> "$LOGFILE";
#find /var/log/clamav/ -type f -mtime +30 -exec rm {} \;
MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3);
if [ "$MALWARE" -ne "0" ];then
echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO";
fi
done
exit 0
其中,admin@example.com 是 FROM 地址,user@example.com 是警报将被发送到的电子邮件地址。
用命令赋予该文件可执行的权限。
sudo chmod u+x /usr/local/bin/clamscan_daily.sh
使用命令创建cron作业。
sudo crontab -e
在文件的底部,添加以下一行,以便每天在凌晨1点运行扫描。
1 1 * * * /usrlocal/bin/clamscan_daily.sh > /dev/null 2>&1
保存并关闭该文件。
这时,ClamAV会自动扫描/var/www/html目录下的恶意文件,如果发现任何东西就会提醒你。如果你的服务器没有设置成可以发送电子邮件,你就需要用命令手动查看生成的日志文件。
less /var/log/clamav/clamav-DATE
其中DATE是你需要查看的文件的时间戳。如果你没有设置为手动邮件提醒,请确保你定期检查ClamAV日志文件。
这就是在Ubuntu服务器上设置ClamAV的全部内容,以帮助检测并防止恶意文件。