搬瓦工 VPS ClamAV 服务器杀毒软件部署教程
ClamAV 是最知名的开源杀毒引擎,专为服务器环境设计,支持命令行扫描和守护进程模式。它拥有庞大的病毒特征库,能够检测各类恶意软件、木马、病毒和蠕虫。虽然 Linux 系统本身相对安全,但如果服务器用于托管文件下载、邮件中继或 Web 应用,部署 ClamAV 可以有效防止恶意文件的传播。本文将详细介绍如何在搬瓦工 VPS 上部署和使用 ClamAV。
一、安装 ClamAV
1.1 Ubuntu / Debian
apt update
apt install clamav clamav-daemon -y
1.2 CentOS / RHEL
yum install epel-release -y
yum install clamav clamav-update clamd -y
1.3 更新病毒库
# 停止守护进程(首次更新需要)
systemctl stop clamav-freshclam
# 手动更新病毒库
freshclam
# 启动自动更新守护进程
systemctl start clamav-freshclam
systemctl enable clamav-freshclam
二、配置 ClamAV
2.1 freshclam 配置(病毒库更新)
vi /etc/clamav/freshclam.conf
关键配置:
# 更新检查频率(每天检查次数)
Checks 12
# 数据库镜像
DatabaseMirror database.clamav.net
# 日志文件
UpdateLogFile /var/log/clamav/freshclam.log
# 通知 clamd 更新
NotifyClamd /etc/clamav/clamd.conf
2.2 clamd 配置(守护进程)
vi /etc/clamav/clamd.conf
# 日志文件
LogFile /var/log/clamav/clamd.log
LogTime yes
# Socket 文件
LocalSocket /var/run/clamav/clamd.ctl
# 扫描设置
MaxFileSize 100M
MaxScanSize 400M
MaxRecursion 16
MaxFiles 10000
# 启用扫描功能
ScanPE yes
ScanELF yes
ScanOLE2 yes
ScanPDF yes
ScanHTML yes
ScanArchive yes
2.3 启动守护进程
systemctl start clamav-daemon
systemctl enable clamav-daemon
systemctl status clamav-daemon
三、手动扫描
# 扫描指定目录
clamscan -r /var/www/
# 扫描并仅显示感染文件
clamscan -r --infected /var/www/
# 扫描并自动删除感染文件(谨慎使用)
clamscan -r --remove /tmp/uploads/
# 扫描并将感染文件移动到隔离目录
mkdir -p /var/quarantine
clamscan -r --move=/var/quarantine /var/www/
# 使用守护进程扫描(速度更快)
clamdscan /var/www/
# 扫描整个系统(排除特定目录)
clamscan -r --exclude-dir="^/sys|^/proc|^/dev" /
四、定期自动扫描
cat > /opt/clamav-scan.sh <<'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
LOG_DIR="/var/log/clamav/scans"
QUARANTINE="/var/quarantine"
SCAN_DIRS="/var/www /home /tmp /var/tmp"
mkdir -p $LOG_DIR $QUARANTINE
# 更新病毒库
freshclam --quiet
# 运行扫描
clamscan -r --infected --move=$QUARANTINE $SCAN_DIRS > "$LOG_DIR/scan-$DATE.log" 2>&1
# 检查是否发现感染
INFECTED=$(grep "Infected files:" "$LOG_DIR/scan-$DATE.log" | awk '{print $NF}')
if [ "$INFECTED" -gt 0 ]; then
echo "ClamAV found $INFECTED infected files!" | \
mail -s "ClamAV Alert on $(hostname)" admin@example.com
fi
# 清理旧日志
find $LOG_DIR -name "scan-*.log" -mtime +30 -delete
EOF
chmod +x /opt/clamav-scan.sh
# 每天凌晨 3 点运行扫描
echo "0 3 * * * root /opt/clamav-scan.sh" >> /etc/crontab
五、实时文件监控
# 安装 On-Access 扫描支持
# 在 clamd.conf 中添加
# OnAccessIncludePath /var/www/uploads
# OnAccessIncludePath /tmp
# OnAccessExcludeUname clamav
# OnAccessPrevention yes
# 使用 clamonacc 启动实时扫描
clamonacc --config-file=/etc/clamav/clamd.conf
六、性能优化
- 使用
clamdscan代替clamscan,守护进程模式扫描速度更快。 - 合理设置
MaxFileSize和MaxScanSize,避免扫描超大文件。 - 排除不必要的目录(如
/proc、/sys、/dev)。 - ClamAV 守护进程启动时会加载病毒库到内存,约占用 1GB 内存。内存不足时可仅使用
clamscan命令行模式。
七、配合 Web 服务使用
如果 VPS 提供文件上传功能,可以在上传时使用 ClamAV 进行即时扫描:
# 使用 clamdscan 检查上传的文件
clamdscan --no-summary /tmp/uploaded_file.zip
# 返回值 0 = 安全,1 = 感染
# 在脚本中使用
if clamdscan --no-summary "$UPLOADED_FILE" 2>/dev/null; then
echo "File is clean"
else
echo "File is infected, rejecting upload"
rm -f "$UPLOADED_FILE"
fi
总结
ClamAV 是搬瓦工 VPS 上最成熟的开源杀毒方案,特别适合需要处理用户上传文件或运行邮件服务的场景。建议配合 Rkhunter 进行 Rootkit 检测,使用 Lynis 进行系统安全审计,构建全方位的安全防护。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。