CentOS 上保障 Node.js 安全的实用清单
一 系统与网络加固
sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。chattr +i 保护关键文件(如 /etc/passwd、/etc/shadow),并设置 TMOUT 自动注销。server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ulimit -n 65535、net.core.somaxconn、net.ipv4.tcp_tw_reuse)以抵御连接耗尽与慢速攻击。二 Node.js 运行时与应用安全
npm ci 安装;定期执行 npm audit 或集成 SCA 工具;警惕包名混淆与维护状态。crypto.timingSafeEqual 防时序攻击;在合适场景启用 –secure-heap 降低敏感内存泄露风险。三 配置与密钥管理
四 部署运维与持续监控
npm ci --only=production 构建;通过 PM2 reload 实现零停机发布;必要时引入蓝绿/金丝雀发布降低风险。