# 开源安全解决方案推荐 ## 1. 应用层安全(Next.js/Node.js) ### 1.1 速率限制 - `@upstash/ratelimit` 或 `next-rate-limit` - **功能**:防止暴力破解和DDoS攻击 - **安装**:`pnpm add @upstash/ratelimit` - **优势**:基于Redis,支持分布式,自动阻止异常请求 ### 1.2 请求验证 - `zod` + 自定义中间件 - **功能**:严格验证所有输入,防止命令注入 - **已使用**:项目中已有zod - **增强**:添加更严格的输入清理 ### 1.3 安全头 - `helmet.js` - **功能**:设置安全HTTP头 - **安装**:`pnpm add helmet` - **优势**:防止XSS、点击劫持等攻击 ## 2. 服务器层安全 ### 2.1 fail2ban - SSH暴力破解防护 - **功能**:自动封禁多次失败登录的IP - **安装**:`dnf install fail2ban` (CentOS) 或 `apt-get install fail2ban` (Ubuntu) - **配置**:监控SSH日志,自动封禁攻击者 ### 2.2 ModSecurity - Web应用防火墙(WAF) - **功能**:检测和阻止SQL注入、XSS、命令注入等攻击 - **安装**:需要编译安装或使用预编译版本 - **优势**:行业标准,规则库丰富 ### 2.3 CrowdSec - 现代安全引擎 - **功能**:基于行为的威胁检测,社区共享IP黑名单 - **安装**:`dnf install crowdsec` 或从官网安装 - **优势**:轻量级,社区驱动,自动更新威胁情报 ## 3. 系统层安全 ### 3.1 SELinux - 强制访问控制 - **功能**:限制进程权限,防止恶意代码执行 - **状态**:CentOS/RHEL默认启用 - **配置**:设置适当的SELinux策略 ### 3.2 AppArmor - 应用沙箱(Ubuntu) - **功能**:限制应用程序的系统调用 - **安装**:Ubuntu默认安装 - **配置**:为Node.js应用创建配置文件 ## 4. 推荐实施方案 ### 优先级1:立即实施 1. **fail2ban** - 防止SSH暴力破解 2. **速率限制中间件** - 防止API滥用 3. **输入验证增强** - 防止命令注入 ### 优先级2:短期实施 1. **CrowdSec** - 威胁检测和IP黑名单 2. **helmet.js** - 安全HTTP头 3. **请求监控和日志** - 异常行为检测 ### 优先级3:长期优化 1. **ModSecurity** - 完整的WAF保护 2. **SELinux策略优化** - 细粒度权限控制 3. **安全审计工具** - 定期安全检查