在CyberPanel上安全稳定运行ClamAV与ModSecurity和CSF的安装指南

这是关于如何在Linux上部署ClamAV并设置它与其他安全系统无缝协作的详细描述。目标是创建一个安全、资源高效且具备有效自动恶意软件扫描能力的环境。

1. 系统准备和资源要求

在开始之前,您应该评估当前的RAM和CPU容量。ClamAV需要至少2GB RAM才能舒适运行,但如果配置合理,1GB RAM仍然可以运行。对于低于2GB RAM的服务器,应限制持续的全系统扫描,仅扫描重要目录,例如网站文件夹、上传目录和电子邮件目录。

ModSecurity和CSF本身不消耗太多RAM,因此如果服务器具有2个CPU和2GB RAM或更高,添加ClamAV不会造成太大的压力。当资源稳定时,同时运行这三个安全系统的能力将很流畅。

2. 从官方仓库安装ClamAV

在AlmaLinux、Rocky Linux或CentOS Stream(CyberPanel最常用的操作系统)上,ClamAV已包含在EPEL仓库中。您只需启用EPEL并安装即可。

打开终端并执行:

Bash

dnf install epel-release -y
dnf install clamav clamav-update -y

安装完成后,您需要更新病毒数据库,以便ClamAV能够识别最新的恶意软件样本:

Bash

freshclam

在某些服务器上,freshclam作为守护程序运行。如果看到提示它正在后台运行的消息,您只需重新启动它:

Bash

systemctl restart clamav-freshclam

数据库成功更新后,ClamAV即可运行。

3. 将ClamAV集成到CyberPanel管理的Web目录中

例如,在CyberPanel上,网站存储在/home/USERNAME/public_html。为确保ClamAV扫描正确的对象,您应该配置它以精确扫描源代码目录。

示例:

Bash

clamscan -r /home --bell -i

此命令将扫描系统中所有正在运行的站点。但是,如果您拥有许多大型网站,扫描整个/home目录可能会花费很长时间。在这种情况下,您可以按单个网站划分扫描:

Bash

clamscan -r /home/domain1.com/public_html

为了获得最佳性能,您应该安排扫描在夜间运行,以避免在服务器忙于处理流量的白天影响CPU。

4. 使用Cron创建自动恶意软件扫描计划

Cron通过在低峰时段运行,帮助ClamAV更有效地运行。例如,您可以将其设置为在凌晨2点(用户流量最少的时间)扫描。

添加计划:

Bash

crontab -e

输入内容:

Bash

0 2 * * * clamscan -ri /home --log=/var/log/clamav/scan.log

多亏了这一点,ClamAV将自动扫描并保存报告,您只需定期检查,而无需手动运行。

5. 检查与ModSecurity的兼容性

ModSecurity与ClamAV完全独立运行。它在OpenLiteSpeed处理之前分析HTTP请求。同时,ClamAV仅在请求完成后或用户上传文件时才读取文件。这两个组件之间没有重叠的过程。

您唯一需要避免的是让ModSecurity阻止ClamAV需要检查的合法文件上传。如果网站上传大型zip文件,可能会发生这种情况。在这种情况下,您只需适当调整ModSecurity规则,但这与ClamAV无关。

实际上,在已部署的数百个CyberPanel系统中,ModSecurity和ClamAV从未造成直接冲突。

6. 与CSF的兼容性及稳定的防火墙配置

CSF充当系统防火墙,监控端口并限制连接速度。它不监控或干扰内部文件扫描活动。因此,ClamAV不需要打开任何特殊端口,也不会影响CSF的数据包过滤过程。

在某些服务器上,当ClamAV正在扫描时,CSF可能会记录高CPU活动。这不是冲突,而只是一个通知。如果您想限制警告,可以更改CSF中的警告级别,或将ClamAV的扫描周期重新配置到CPU活动较少的时间。

至关重要的是,ClamAV不会导致IP阻塞、不会打开端口、也不会记录连接,因此与CSF完全分离。这种组合进一步增强了CyberPanel的安全性。

7. 如果在CyberPanel上使用MailServer,则启用电子邮件扫描

如果您使用CyberPanel附带的电子邮件系统(Postfix + Dovecot),您可以集成ClamAV来扫描传入的电子邮件。这可以防止恶意软件通过内部电子邮件系统传播。

首先,安装clamav-daemon

Bash

dnf install clamav-daemon -y
systemctl enable --now clamd@scan

然后,配置Postfix通过套接字/var/run/clamd.scan/clamd.sock使用ClamAV。这是针对大型电子邮件系统的扩展配置,但对于大多数运行网络的普通VPS,没有必要启用此功能。

8. 处理受感染文件并检查日志

ClamAV不会自动删除文件以避免风险。当它检测到恶意软件时,它会将文件路径记录在日志中。您只需打开:

Bash

cat /var/log/clamav/scan.log

一旦确认为恶意软件,您可以删除它:

Bash

rm -f /path/to/infected/file

如果它是网站的系统文件,您应该从CyberPanel备份中恢复它或重新上传干净的源代码。

9. 在小型VPS上使用ClamAV时优化资源

许多人担心ClamAV消耗太多RAM。如果您在高峰时段持续运行扫描或在1GB RAM的VPS上运行,确实如此。但是,您可以通过以下方式限制负载:

  • 将扫描频率限制为每晚一次。
  • 仅扫描Web目录,不扫描整个服务器。
  • 如果不使用电子邮件扫描,则禁用clamd守护程序。

经过这些调整后,ClamAV运行起来非常轻巧,甚至适用于1GB RAM的VPS。