搬瓦工 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,守护进程模式扫描速度更快。
  • 合理设置 MaxFileSizeMaxScanSize,避免扫描超大文件。
  • 排除不必要的目录(如 /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 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。