Node.js Linux服务器如何安全配置
导读:Node.js Linux 服务器安全配置清单 一 基础系统与账号加固 保持系统与包管理器为最新:Ubuntu/Debian 执行 sudo apt update && sudo apt upgrade;CentOS/RH...
Node.js Linux 服务器安全配置清单
一 基础系统与账号加固
- 保持系统与包管理器为最新:Ubuntu/Debian 执行 sudo apt update & & sudo apt upgrade;CentOS/RHEL 执行 sudo yum update,及时获取安全补丁。
- 启用自动安全更新:安装 unattended-upgrades,编辑 /etc/apt/apt.conf.d/50unattended-upgrades 启用安全更新策略。
- 强化 SSH:禁用 root 登录、仅允许 密钥认证、可修改默认端口、设置空闲超时;云上同时收紧安全组仅放通必要来源 IP。
- 最小权限运行:创建专用系统用户运行 Node.js,禁止该用户登录 shell;应用仅授予所需文件系统与网络权限。
- 可选强制访问控制:启用 SELinux 或 AppArmor 对进程进行域隔离与权限限制。
二 网络与防火墙策略
- 云安全组与系统防火墙联动:仅开放 22/SSH、80/HTTP、443/HTTPS;如应用端口为 3000,仅在受控网络或回环代理场景临时放通,生产环境建议仅对 127.0.0.1:3000 开放。
- Ubuntu/Debian 使用 ufw:sudo ufw allow 22/tcp;sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;sudo ufw enable。
- CentOS/RHEL 使用 firewalld:sudo systemctl start firewalld;sudo firewall-cmd --permanent --add-service=http;sudo firewall-cmd --permanent --add-service=https;sudo firewall-cmd --reload。
三 Node.js 运行时与应用安全
- 运行时与依赖:使用 nvm 管理版本(如 nvm install --lts),定期执行 npm audit fix、npm outdated,必要时配合 Snyk 监控依赖漏洞;避免全局安装不必要的包。
- 运行身份与进程管理:以非 root 用户运行,使用 PM2 托管进程(pm2 start app.js --name “my-app”;pm2 save;pm2 startup 生成 systemd 自启)。
- 传输加密与反向代理:优先用 Nginx 终止 TLS,Node 监听 127.0.0.1:3000;Nginx 配置示例:
- 监听 80 并反向代理到本地 3000:proxy_pass http://127.0.0.1:3000;设置 Upgrade/Connection 以支持 WebSocket。
- 获取可信证书:使用 Certbot 自动申请与续期(sudo certbot --nginx -d yourdomain.com),证书通常位于 /etc/letsencrypt/live/your-domain.com/(fullchain.pem/privkey.pem)。
- 安全响应头与 CORS:使用 Helmet 设置 CSP、X-Frame-Options、X-XSS-Protection 等;CORS 仅允许受信源与必要方法/头。
- 输入校验与速率限制:对请求参数与内容严格校验,使用 express-rate-limit 限制请求频率,防范暴力与滥用。
- 错误处理与日志:生产环境不暴露堆栈,记录结构化日志(如 JSON),便于审计与告警。
四 快速检查清单与常用命令
- 版本与依赖:node -v;npm -v;npm audit;npm outdated;必要时 nvm install --lts。
- 防火墙:ufw status(Ubuntu);firewall-cmd --list-all(CentOS)。
- 进程与自启:pm2 list;pm2 logs;pm2 startup。
- Nginx:sudo nginx -t;sudo systemctl restart nginx。
- HTTPS:sudo certbot renew --dry-run(测试自动续期);证书路径 /etc/letsencrypt/live/your-domain.com/。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Node.js Linux服务器如何安全配置
本文地址: https://pptw.com/jishu/764175.html
