#!/bin/bash # 生产环境安全加固脚本 - Next.js服务安全审计与加固 # 作者:张翔 # 日期:2026-03-31 echo "🚀 开始执行生产环境安全加固..." # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 检查是否在生产环境 echo "📋 检查生产环境配置..." # 1. 检查Docker容器状态 echo "🐳 检查Docker容器状态..." docker ps -a --filter "name=novalon" 2>/dev/null || echo "⚠️ Docker未运行或无法访问" # 2. 检查端口暴露情况 echo "🔌 检查端口暴露情况..." docker port novalon-website 2>/dev/null || echo "⚠️ 无法获取novalon-website容器端口信息" docker port novalon-nginx 2>/dev/null || echo "⚠️ 无法获取novalon-nginx容器端口信息" # 3. 检查防火墙配置 echo "🛡️ 检查防火墙配置..." if command -v ufw &> /dev/null; then echo "UFW防火墙状态:" ufw status 2>/dev/null || echo "UFW未启用" elif command -v firewalld &> /dev/null; then echo "firewalld状态:" firewall-cmd --list-all 2>/dev/null || echo "firewalld未运行" else echo "⚠️ 未检测到防火墙管理工具" fi # 4. 检查Nginx配置 echo "⚙️ 检查Nginx配置..." if [ -f "/home/novalon/docker-app/novalon-nginx/nginx.conf" ]; then echo "✅ 找到Nginx配置文件" echo "📊 Nginx配置内容:" cat /home/novalon/docker-app/novalon-nginx/nginx.conf 2>/dev/null | head -100 else echo "❌ 未找到Nginx配置文件" echo "💡 建议:创建安全的Nginx配置文件" fi # 5. 检查SSL证书 echo "🔒 检查SSL证书..." if [ -d "/home/novalon/docker-app/novalon-nginx/ssl" ]; then echo "✅ SSL目录存在" ls -la /home/novalon/docker-app/novalon-nginx/ssl 2>/dev/null else echo "⚠️ SSL目录不存在" echo "💡 建议:配置SSL证书以启用HTTPS" fi # 6. 检查环境变量 echo "🔑 检查环境变量..." if [ -f "/home/novalon/docker-app/.env" ]; then echo "✅ .env文件存在" echo "⚠️ 请确保.env文件中不包含敏感信息" grep -v "^#" /home/novalon/docker-app/.env 2>/dev/null | head -20 else echo "⚠️ 未找到.env文件" fi # 7. 安全加固建议 echo "" echo "==========================================" echo "🛡️ 安全加固建议" echo "==========================================" echo "" echo "${YELLOW}1. 立即措施(高优先级)${NC}" echo " - [ ] 确保Next.js服务不直接暴露80/443端口" echo " - [ ] 配置Nginx作为反向代理,隐藏后端服务" echo " - [ ] 启用HTTPS,配置SSL证书" echo " - [ ] 限制80端口只允许HTTP到HTTPS重定向" echo "" echo "${YELLOW}2. 中期措施(中优先级)${NC}" echo " - [ ] 配置WAF(Web应用防火墙)" echo " - [ ] 启用请求频率限制" echo " - [ ] 配置安全头(CSP、HSTS等)" echo " - [ ] 启用访问日志和监控" echo "" echo "${YELLOW}3. 长期措施(低优先级)${NC}" echo " - [ ] 配置CDN加速和DDoS防护" echo " - [ ] 实施IP白名单策略" echo " - [ ] 定期安全扫描和漏洞修复" echo " - [ ] 建立安全监控告警机制" echo "" echo "==========================================" echo "💡 下一步操作" echo "==========================================" echo "" echo "请根据以上建议,逐步实施安全加固措施。" echo "建议优先处理高优先级项目,确保服务安全。" echo "" echo "如需自动化加固脚本,请运行:" echo " ./scripts/security-hardening.sh"