CentOS Node.js安全防护措施
导读:CentOS 上 Node.js 的安全防护要点 一 系统与网络加固 保持系统与软件包为最新:定期执行 yum update,及时修补内核与中间件漏洞。 最小权限运行:创建 非 root 专用用户运行 Node.js,禁止在生产以 roo...
CentOS 上 Node.js 的安全防护要点
一 系统与网络加固
- 保持系统与软件包为最新:定期执行 yum update,及时修补内核与中间件漏洞。
- 最小权限运行:创建 非 root 专用用户运行 Node.js,禁止在生产以 root 直接启动进程。
- 强化 SSH:更改默认端口、禁用 root 登录、仅允许 SSH 密钥 认证,必要时限制可登录用户/来源网段。
- 配置防火墙:使用 firewalld 仅放行必要端口(如 80/443 或应用端口),对管理口与数据库口限制来源 IP。
- 入侵检测与日志:部署 Snort/Suricata 等 IDS/IPS,集中采集 rsyslog/journald 日志并配置 logrotate 防止磁盘被占满。
- 备份与加密:对数据与配置进行 定期自动备份(含异地/离线副本),对静态敏感数据启用 LUKS/dm-crypt 磁盘加密。
二 Node.js 运行时与应用安全
- 版本与依赖管理:使用 NVM 或 NodeSource 管理 Node 版本;定期执行 npm audit / snyk 扫描并修复依赖漏洞,优先使用维护良好的库。
- 反向代理与静态资源:以 Nginx 作为反向代理与静态资源服务,隐藏应用真实端口与实现 TLS 终止、压缩、缓存等。
- 传输加密与证书:全站启用 HTTPS/TLS,使用 Let’s Encrypt/Certbot 自动续期证书。
- 安全响应头:使用 Helmet 设置 HSTS、X-Frame-Options、X-Content-Type-Options、CSP 等头部降低常见 Web 攻击面。
- 输入校验与输出编码:对请求参数进行严格校验(如 Joi),模板引擎启用自动转义,防范 SQL 注入/XSS。
- 身份认证与会话:使用 bcrypt 哈希口令,结合 JWT 或 Passport.js 实现安全的认证与授权。
- 限流与防滥用:基于 express-rate-limit 等中间件对接口进行速率限制,抵御暴力破解与简单 DoS。
- 错误处理与信息泄露:生产环境避免返回堆栈与敏感细节,统一错误码与日志审计。
- 进程管理:使用 PM2 守护进程、集群模式与优雅停机,保障稳定性与可运维性。
三 防火墙与端口最小化示例 firewalld
- 启动与开机自启
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
- 放行 HTTP/HTTPS
- sudo firewall-cmd --permanent --zone=public --add-service=http
- sudo firewall-cmd --permanent --zone=public --add-service=https
- 放行自定义应用端口(如 3000)
- sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
- 仅允许指定来源访问某端口(如仅内网 192.168.1.0/24 访问 3000)
- sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“3000” protocol=“tcp” accept’
- 使配置生效与验证
- sudo firewall-cmd --reload
- sudo firewall-cmd --list-all
四 快速检查清单
| 领域 | 关键动作 | 验证方式 |
|---|---|---|
| 系统与账户 | 非 root 运行、SSH 密钥登录、最小 sudo 权限 | ps -eo user,comm |
| 网络与端口 | 仅开放 80/443 或必要端口,来源 IP 白名单 | firewall-cmd --list-all;ss -tulpen |
| 传输与证书 | 全站 HTTPS、证书有效且自动续期 | curl -I https://域名;certbot certificates |
| 依赖与代码 | 无高危漏洞、启用限流与 CSP、输入校验 | npm audit;浏览器开发者工具/安全头检查 |
| 运行与日志 | PM2 守护、日志轮转、备份可用 | pm2 list;/var/log 轮转配置;备份恢复演练 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Node.js安全防护措施
本文地址: https://pptw.com/jishu/758859.html
