Linux安全工具集成实践:将ClamAV与fail2ban整合的完整过程

Sam972 +0/-0 0 0 正常 2025-12-24T07:01:19 系统安全 · Linux内核 · 权限控制

在Linux系统安全防护中,将ClamAV病毒扫描工具与fail2ban登录保护机制集成,能够实现主动威胁检测与自动封禁的双重防护体系。

环境准备

  • 系统:Ubuntu 20.04 LTS
  • 安装必要组件:
sudo apt update
sudo apt install clamav fail2ban

ClamAV配置 首先配置ClamAV定时扫描任务,编辑 /etc/clamav/clamd.conf 文件,添加以下内容:

# 设置日志输出路径
LogFile /var/log/clamav/clamd.log
LogTime yes
LogSyslog no

# 启用实时监控
ScanArchive yes
ScanPDF yes
ScanOLE2 yes

然后创建扫描脚本 /usr/local/bin/scan_and_block.sh

#!/bin/bash
LOG_FILE="/var/log/clamav/clamd.log"

# 检查是否有病毒发现
if grep -q "FOUND" "$LOG_FILE"; then
    # 获取被感染文件的IP地址(示例逻辑)
    infected_ips=$(grep "FOUND" "$LOG_FILE" | awk '{print $NF}' | cut -d'@' -f2)
    
    # 将IP添加到fail2ban规则中
    for ip in $infected_ips; do
        sudo fail2ban-client set sshd banip $ip
    done
fi

fail2ban配置 编辑 /etc/fail2ban/jail.local 文件,添加ClamAV监控规则:

[clamav]
enabled = true
port = any
filter = clamav
logpath = /var/log/clamav/clamd.log
maxretry = 3
bantime = 3600
findtime = 600
ignoreip = 127.0.0.1/8

服务重启与测试

sudo systemctl restart clamav-daemon
sudo systemctl restart fail2ban
# 创建测试文件进行扫描
clamdscan /tmp/test_file.txt

通过以上配置,系统可实现:1)定期病毒扫描;2)自动识别感染IP;3)实时封禁可疑连接。该方案适用于高安全等级的服务器环境,建议根据实际业务场景调整封禁策略。

推广
广告位招租

讨论

0/2000
SharpTears
SharpTears · 2026-01-08T10:24:58
这个整合方案思路不错,但脚本中提取IP的逻辑可能不够 robust,建议结合日志格式细化正则匹配,避免误判。可以增加日志轮转和告警通知机制提升可维护性。
Kevin163
Kevin163 · 2026-01-08T10:24:58
fail2ban 的 clamav 规则配置看起来合理,但需要注意日志路径是否稳定,如果ClamAV日志位置变动会导致规则失效。建议用软链接或统一日志管理工具来规避这个问题。
Gerald249
Gerald249 · 2026-01-08T10:24:58
整体流程完整,但在生产环境中建议先在测试环境验证扫描脚本的性能影响,避免频繁扫描导致系统负载升高。同时可考虑将封禁动作改为发送邮件告警,便于事后追溯。