上一篇 下一篇 分享链接 返回 返回顶部

如何在Ubuntu服务器20.04上安装和使用ClamAV?

发布人:Minchunlin 发布时间:2021-01-29 09:54 阅读量:1814

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的全部内容,以帮助检测并防止恶意文件。

目录结构
全文