温馨提示×

Debian上LNMP安全如何保障

小樊
45
2025-12-10 20:27:04
栏目: 智能运维

Debian 上 LNMP 安全加固清单

一 基础系统与账户安全

  • 保持系统与软件为最新安全补丁:执行sudo apt update && sudo apt upgrade,并启用自动安全更新(如 unattended-upgrades)。
  • 最小权限与专用账户:创建非 root运维账户并加入sudo组,日常以该账户操作;禁用 root 远程登录。
  • 强化密码策略:安装并配置libpam-pwquality,设置长度、复杂度与历史限制。
  • 精简自启与暴露面:用systemctl list-units --type service --state running排查,关闭不必要的服务与端口。
  • 文件与目录权限:网站根目录建议目录755、文件644;上传目录禁止执行;限制敏感文件(如 .env、.git)访问。
  • 日志与审计:集中收集与定期审计**/var/log/,必要时启用auditd**记录关键文件与命令。

二 网络与 SSH 防护

  • 边界防火墙:使用ufw仅放行必要流量,推荐仅开放22/80/443;如数据库仅内网访问,限制3306来源 IP。
  • 加固 SSH:更改默认端口、禁用 root 登录、禁用密码登录仅用SSH 密钥、限制失败重试与空闲超时。
  • 内网服务隔离:数据库(如 3306)、缓存等仅监听127.0.0.1或内网接口,避免公网直连。
  • 端口与进程最小化:避免将PHP-FPM 9000等管理端口对公网开放,优先使用Unix Socket并限定权限。

三 Nginx 与 PHP 安全配置

  • 隐藏版本信息:在 Nginx 配置中关闭server_tokens
  • 强制 HTTPS:将 HTTP→HTTPS 301 重定向,仅开放 443/ssl
  • SSL/TLS 最佳实践:使用Let’s Encrypt证书(Certbot),启用ECDHE套件、开启HSTS,并使用强DH 参数
  • 安全 Headers:配置X-Frame-Options DENY/SAMEORIGINX-Content-Type-Options nosniffX-XSS-Protection “1; mode=block”Referrer-PolicyContent-Security-Policy(按站点策略细化)。
  • PHP 处理安全:在 Nginx 中仅允许特定后缀解析为 PHP,使用try_files防止非法访问;PHP 侧将cgi.fix_pathinfo=0,禁用危险函数(如 exec、shell_exec、passthru 等),并仅启用必要扩展。
  • 资源与进程隔离:为 PHP-FPM 设置pm.max_children/pm.start_servers等资源上限,按站点拆分 pool,以www-data运行并细化目录权限。

四 数据库 MariaDB MySQL 安全

  • 安装后执行mysql_secure_installation:设置强 root 密码、移除匿名用户、禁止 root 远程登录、删除测试库。
  • 账户与权限最小化:为每个应用创建最小权限专用账户,避免使用 root 远程连接;按业务划分库/表权限。
  • 网络与加密:数据库仅监听内网;如跨主机访问,启用TLS/SSL加密连接。
  • 备份与恢复演练:定期逻辑/物理备份,并验证可恢复性;保留多份异地副本。

五 监控 防护 与合规

  • 入侵防护:部署Fail2ban监控 SSH/Nginx 暴力尝试并自动封禁;结合Logwatch进行日志汇总与告警。
  • Web 应用防火墙:在 Nginx 前部署WAF(如 SafeLine)缓解SQL 注入、XSS、文件上传等常见攻击。
  • 持续更新与基线巡检:定期更新 Nginx、PHP、MariaDB 与依赖组件;对sshd_config、nginx.conf、php.ini、mariadb.cnf进行变更审计与基线比对。
  • 备份与演练:对代码、配置、证书、数据库实施自动化备份定期恢复演练,确保 RPO/RTO 达标。

0