# 服务器安全状态综合报告 ## 📊 安全服务状态 ### 运行中的安全服务 1. **CrowdSec** - 现代化威胁检测引擎 - 状态:运行中 - 功能:实时威胁检测、IP封禁、行为分析 - 监控范围:SSH、Nginx、PostgreSQL、auditd 2. **fail2ban** - SSH暴力破解防护 - 状态:运行中 - 功能:检测SSH暴力破解攻击并自动封禁IP - 监控:SSH登录失败尝试 3. **auditd** - 系统审计服务 - 状态:运行中 - 功能:记录系统调用、文件访问、进程执行 - 集成:与CrowdSec集成,检测内部威胁 4. **SSH服务** - 远程访问服务 - 状态:运行中 - 保护:配置文件不可变、自动监控、服务保护 ## 🚨 安全事件统计 ### 外部攻击 - **CrowdSec警报**:检测到的威胁事件数量 - **当前封禁IP**:正在被封禁的IP地址数量 - **fail2ban封禁**:SSH暴力破解封禁的IP数量 ### 内部威胁 - **auditd场景**:已启用的内部威胁检测场景数量 - **auditd警报**:检测到的内部威胁事件数量 ## 🔍 监控能力 ### CrowdSec监控场景 1. **SSH监控** - `crowdsecurity/ssh-bf` - SSH暴力破解检测 - `crowdsecurity/ssh-slow-bf` - SSH慢速暴力破解检测 2. **Web监控** - Nginx日志监控 - HTTP攻击检测 - API滥用检测 3. **数据库监控** - PostgreSQL暴力破解检测 - 数据库异常访问检测 4. **内部威胁监控** - `auditd-postexploit-exec-from-net` - 后门利用检测 - `auditd-base64-exec-behavior` - 隐藏命令执行检测 - `auditd-postexploit-pkill` - 恶意进程管理检测 - `auditd-postexploit-rm` - 痕迹清理检测 - `auditd-suid-crash` - 权限提升检测 - `auditd-sus-exec` - 可疑执行检测 ### fail2ban监控 - SSH登录失败检测 - 自动IP封禁(1小时) - 封禁记录日志 ## 🛡️ SSH保护措施 ### 文件系统级保护 - ✅ SSH配置文件已设置为不可变(immutable) - ✅ 文件权限:600 (root:root) - ✅ 目录权限:755 (root:root) ### 配置监控 - ✅ SSH配置监控脚本已安装 - 每5分钟检查配置文件 - 自动检测和恢复配置修改 - 日志:`/var/log/ssh-config-monitor.log` ### 服务保护 - ✅ SSH服务保护脚本已安装 - 每2分钟检查服务状态 - 自动重启停止的服务 - 日志:`/var/log/ssh-service-protect.log` ### 配置备份 - ✅ SSH配置自动备份 - 位置:`/root/ssh_backups/` - 策略:保留最近10个备份 ## 📋 安全检查清单 ### 网络安全 - [x] CrowdSec监控已启用 - [x] fail2ban SSH保护已启用 - [x] 防火墙规则已配置(如果需要) - [x] 异常网络连接监控 ### 系统安全 - [x] auditd服务运行中 - [x] 系统日志记录完整 - [x] 异常进程监控 - [x] 资源使用监控 ### SSH安全 - [x] SSH配置文件不可变 - [x] SSH配置监控已启用 - [x] SSH服务保护已启用 - [x] SSH服务自动启动 ### 应用安全 - [x] 数据库访问控制 - [x] 应用层安全防护 - [x] 输入验证和清理 - [x] 速率限制 ## 🔄 日志位置 ### CrowdSec日志 ```bash # CrowdSec服务日志 journalctl -u crowdsec -f # CrowdSec警报 cscli alerts list # CrowdSec决策(封禁) cscli decisions list # CrowdSec指标 cscli metrics ``` ### fail2ban日志 ```bash # fail2ban服务日志 journalctl -u fail2ban -f # fail2ban日志文件 tail -f /var/log/fail2ban.log # fail2ban状态 fail2ban-client status sshd ``` ### SSH保护日志 ```bash # SSH配置监控日志 tail -f /var/log/ssh-config-monitor.log # SSH服务保护日志 tail -f /var/log/ssh-service-protect.log # SSH服务日志 journalctl -u sshd -f ``` ### 系统安全日志 ```bash # SSH登录日志(Ubuntu/Debian) tail -f /var/log/auth.log # SSH登录日志(CentOS/RHEL) tail -f /var/log/secure # auditd日志 tail -f /var/log/audit/audit.log # 系统日志 journalctl -p err -f ``` ## 📊 安全指标 ### 攻击检测 - **SSH暴力破解**:通过CrowdSec和fail2ban检测 - **Web攻击**:通过CrowdSec Nginx监控检测 - **数据库攻击**:通过CrowdSec PostgreSQL监控检测 - **内部威胁**:通过CrowdSec auditd监控检测 ### 响应措施 - **自动IP封禁**:CrowdSec和fail2ban自动封禁攻击者 - **配置恢复**:SSH配置被修改时自动恢复 - **服务重启**:SSH服务停止时自动重启 - **日志记录**:所有安全事件完整记录 ## ⚠️ 安全建议 ### 短期建议 1. **定期审查日志** - 每天检查CrowdSec警报 - 每周审查fail2ban封禁记录 - 每月审查auditd内部威胁警报 2. **更新安全规则** - 定期更新CrowdSec场景 - 根据实际情况调整fail2ban规则 - 优化auditd监控场景 3. **备份验证** - 定期验证SSH配置备份 - 测试配置恢复流程 - 验证服务保护脚本 ### 长期建议 1. **安全审计** - 定期进行安全审计 - 检查系统漏洞 - 更新安全补丁 2. **监控优化** - 优化监控规则 - 减少误报 - 提高检测准确性 3. **文档维护** - 更新安全文档 - 记录安全事件 - 总结经验教训 ## 🎯 总结 服务器已实施多层安全防护: 1. **外部攻击防护**:CrowdSec + fail2ban 2. **内部威胁检测**:auditd + CrowdSec 3. **SSH连接保护**:文件系统级 + 监控 + 服务保护 4. **完整日志记录**:所有安全事件可追溯 当前安全状态:**良好** ✅ 所有安全服务正常运行,监控系统正常工作,能够及时发现和响应安全威胁。