# Clamav Realtime Monitor **Repository Path**: obaby/Clamav-Realtime-Monitor ## Basic Information - **Project Name**: Clamav Realtime Monitor - **Description**: 这是一个高性能的ClamAV实时监控系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-19 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ClamAV 实时监控系统 这是一个使用 `inotify-tools` 和 `ClamAV` 对 `/home/wwwroot/` 目录进行实时病毒监控的系统。 ## 作者信息 - **作者**: obaby - **博客**: obaby@mars - **网址**: [https://h4ck.org.cn](https://h4ck.org.cn) [https://oba.by](https://oba.by) - **版本**: 1.0 - **创建时间**: 2025-08-18 ## 功能特性 - 🔍 **实时监控**: 使用 `inotify-tools` 监控文件系统变化 - 🦠 **自动扫描**: 检测到文件变化时自动进行病毒扫描(使用 `clamdscan` 守护进程模式) - 📝 **详细日志**: 记录所有扫描活动和结果 - 🛡️ **自动隔离**: 发现病毒文件时自动移动到隔离目录 - ⚙️ **灵活配置**: 支持多种操作模式 - 🔄 **进程管理**: 支持启动、停止、重启和状态查询 - 🚀 **高性能**: 使用 ClamAV 守护进程,扫描速度更快 - 📧 **邮件通知**: 发现病毒时自动发送邮件警报 ## 系统要求 - Ubuntu/Debian 系统 - `inotify-tools` 包 - `ClamAV` 防病毒软件 ## 安装步骤 ### 1. 安装依赖包 ```bash # 更新包列表 sudo apt update # 安装 inotify-tools sudo apt install inotify-tools # 安装 ClamAV sudo apt install clamav clamav-daemon ``` ### 2. 配置脚本 确保脚本有执行权限: ```bash chmod +x monitor.sh ``` ### 3. 创建必要目录 脚本会自动创建以下目录,但您也可以手动创建: ```bash sudo mkdir -p /home/infected sudo mkdir -p /home/wwwlogs ``` ## 使用方法 ### 基本命令 ```bash # 启动实时监控 ./monitor.sh start # 停止实时监控 ./monitor.sh stop # 重启实时监控 ./monitor.sh restart # 查看监控状态 ./monitor.sh status # 执行完整扫描 ./monitor.sh scan ``` ### 后台运行 ```bash # 在后台启动监控 nohup ./monitor.sh start > /dev/null 2>&1 & # 或者使用 screen screen -S clamav_monitor ./monitor.sh start # 按 Ctrl+A 然后按 D 来分离 screen ``` ### 系统服务配置 创建系统服务文件 `/etc/systemd/system/clamav-monitor.service`: ```ini [Unit] Description=ClamAV Real-time Monitor After=network.target [Service] Type=simple User=root ExecStart=/path/to/scan_sh start ExecStop=/path/to/scan_sh stop Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ``` 启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable clamav-monitor sudo systemctl start clamav-monitor ``` ## 配置说明 ### 主要配置变量 脚本开头的配置变量可以根据需要修改: ```bash WATCH_DIR="/home/wwwroot" # 监控目录 INFECTED_DIR="/home/infected" # 感染文件隔离目录 LOG_FILE="/home/wwwlogs/clamav_monitor.log" # 实时监控日志 SCAN_LOG="/home/wwwlogs/clamav_scan.log" # 完整扫描日志 PID_FILE="/var/run/clamav_monitor.pid" # 进程ID文件 # 邮件配置 EMAIL_SMTP_SERVER="smtp.exmail.qq.com" # SMTP服务器 EMAIL_SMTP_PORT="465" # SMTP端口 EMAIL_USERNAME="service@oba.by" # 邮箱用户名 EMAIL_PASSWORD="********************" # 邮箱密码 EMAIL_FROM="service@oba.by" # 发件人邮箱 EMAIL_TO="test@test.org.cn" # 收件人邮箱 EMAIL_SUBJECT_PREFIX="[ClamAV病毒警报]" # 邮件主题前缀 ``` ### 监控事件 脚本监控以下文件系统事件: - `CREATE`: 文件创建 - `MODIFY`: 文件修改 - `MOVED_TO`: 文件移动到监控目录 - `DELETE`: 文件删除 - `MOVED_FROM`: 文件从监控目录移出 ## 日志文件 ### 实时监控日志 (`/home/wwwlogs/clamav_monitor.log`) 记录所有实时监控活动: - 文件变化检测 - 扫描结果 - 病毒发现通知 - 错误信息 ### 完整扫描日志 (`/home/wwwlogs/clamav_scan.log`) 记录完整扫描的结果和统计信息。 ## 邮件通知功能 ### 邮件配置 系统支持在发现病毒时自动发送邮件通知。邮件配置在脚本开头设置: - **SMTP服务器**: smtp.exmail.qq.com (SSL, 端口465) - **发件人**: service@oba.by - **收件人**: test@test.org.cn - **通知类型**: - 实时监控发现病毒 - 完整扫描发现病毒 - 扫描出现错误 ### 测试邮件功能 运行邮件测试脚本验证配置: ```bash chmod +x test_email.sh ./test_email.sh ``` ### 邮件内容示例 当发现病毒时,系统会发送包含以下信息的邮件: - 病毒文件路径 - 检测时间 - 服务器信息 - 扫描结果详情 - 隔离目录位置 ## 安全注意事项 1. **权限管理**: 确保脚本以适当的权限运行 2. **日志轮转**: 定期清理日志文件避免磁盘空间不足 3. **病毒库更新**: 定期更新 ClamAV 病毒库 4. **隔离目录**: 定期检查隔离目录中的文件 ## 故障排除 ### 常见问题 1. **inotify-tools 未安装** ```bash sudo apt install inotify-tools ``` 2. **ClamAV 未安装** ```bash sudo apt install clamav clamav-daemon ``` 3. **clamdscan 连接错误** ```bash # 运行修复脚本 sudo ./fix_clamav.sh # 或者手动修复 sudo mkdir -p /var/run/clamav sudo chown clamav:clamav /var/run/clamav sudo systemctl restart clamav-daemon ``` 4. **权限不足** ```bash sudo chmod +x monitor.sh sudo ./monitor.sh start ``` 5. **监控目录不存在** ```bash sudo mkdir -p /home/wwwroot ``` 6. **ClamAV 守护进程未启动** ```bash sudo systemctl start clamav-daemon sudo systemctl enable clamav-daemon ``` ### 检查监控状态 ```bash # 查看进程状态 ./scan_sh status # 查看日志 tail -f /home/wwwlogs/clamav_monitor.log # 检查 PID 文件 cat /var/run/clamav_monitor.pid ``` ## 性能优化 1. **排除文件类型**: 在 `scan_file()` 函数中添加更多文件类型过滤 2. **调整监控深度**: 修改 `inotifywait` 的递归深度 3. **日志级别**: 根据需要调整日志详细程度 ## 许可证 此脚本遵循 MIT 许可证。 --- **作者**: obaby **博客**: obaby@mars **网址**: [https://h4ck.org.cn](https://h4ck.org.cn) [https://oba.by](https://oba.by) **版本**: 1.0 **创建时间**: 2025-08-18 © 2025 obaby. All rights reserved.