温馨提示×

Debian LNMP如何提升网站安全性

小樊
34
2025-12-14 19:13:36
栏目: 云计算

Debian LNMP 网站安全加固清单

一 系统与访问控制

  • 保持系统与安全补丁最新:执行apt update && apt full-upgrade -y && apt autoremove -y,并启用自动安全更新(如 unattended-upgrades)。
  • 最小暴露面:仅开放必要端口,使用ufw default deny incoming; ufw default allow outgoing,并放行OpenSSH(22)HTTP(80)HTTPS(443);如需公网数据库,仅对受控来源开放3306/tcp
  • 强化 SSH:创建sudo普通用户,禁用root远程登录与密码认证,改用SSH 密钥;必要时更改默认端口并限制登录来源 IP。
  • 入侵防护:部署Fail2ban,为SSHNginx配置拦截规则,自动封禁暴力破解来源。
  • 服务最小化:关闭不必要的系统服务与端口,减少攻击面。

二 Nginx 与传输层安全

  • 全站 HTTPS:使用Certbot一键申请并自动配置 Let’s Encrypt 证书,启用HTTP→HTTPS 301跳转、HSTSOCSP Stapling,并配置强加密套件与DH 参数
  • 隐藏信息:关闭server_tokens,避免泄露版本与路径信息。
  • 安全响应头:统一添加X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、Content-Security-Policy、Strict-Transport-Security,降低点击劫持、MIME 嗅探、信息泄露与 XSS 风险。
  • 抗滥用与抗 DoS:限制请求体大小、超时与连接数,启用速率限制与并发连接限制(如每秒请求数、突发与每 IP 连接上限)。
  • 访问控制:对敏感目录(如**/admin、/backup**)设置IP 白名单HTTP 基本认证;禁止访问**/.ht***等敏感文件。

三 PHP 与文件权限

  • 关闭暴露与调试:设置expose_php = Offdisplay_errors = Offlog_errors = On,并指定error_log路径。
  • 会话与 Cookie:启用session.cookie_httponly = 1session.cookie_secure = 1session.use_strict_mode = 1,降低会话劫持风险。
  • 资源与上传:按应用需求设置memory_limit、max_execution_time、max_input_time、upload_max_filesize、post_max_size,避免资源滥用与上传漏洞。
  • 禁用危险函数:通过disable_functions禁用exec、passthru、shell_exec、system、proc_open、popen、curl_exec等高危函数。
  • 路径隔离:使用open_basedir限制 PHP 读写目录,仅允许访问站点目录与必要临时目录(如**/tmp**)。
  • 权限最小化:网站根目录建议755,文件644;上传目录禁止执行;确保Nginx 与 PHP-FPM 运行用户一致(如均为www-data),避免502与权限拒绝。

四 数据库与备份

  • 安全初始化:执行mysql_secure_installation,删除匿名用户、禁止root远程登录、移除测试库。
  • 绑定与解析:在my.cnf中设置bind-address = 127.0.0.1、启用skip-name-resolve,减少暴露与解析延迟。
  • 最小权限:为应用创建专用数据库用户,仅授予SELECT/INSERT/UPDATE/DELETE等必要权限,禁止DROP/ALTER等破坏性权限。
  • 备份与恢复:制定每日增量、每周全量备份策略,覆盖代码、配置、证书与数据库;定期在隔离环境验证可恢复性。

五 监控与持续维护

  • 日志与告警:集中收集并监控Nginx 访问/错误日志、PHP-FPM 日志、MariaDB 错误日志、Fail2ban 日志;对异常状态码、暴力登录、SQL 报错与性能劣化设置告警。
  • 合规与巡检:定期执行系统与安全基线巡检、依赖组件升级与配置复查;对 CMS/插件/主题保持及时更新与漏洞修补。
  • 变更与回滚:任何安全配置变更先在测试环境验证,保留回滚方案变更记录;对关键操作(如防火墙规则、数据库权限)采用分阶段发布

0