- 首页 >
- 问答 >
-
云计算 >
- Debian LNMP如何提升网站安全性
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,为SSH与Nginx配置拦截规则,自动封禁暴力破解来源。
- 服务最小化:关闭不必要的系统服务与端口,减少攻击面。
二 Nginx 与传输层安全
- 全站 HTTPS:使用Certbot一键申请并自动配置 Let’s Encrypt 证书,启用HTTP→HTTPS 301跳转、HSTS、OCSP 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 = Off、display_errors = Off、log_errors = On,并指定error_log路径。
- 会话与 Cookie:启用session.cookie_httponly = 1、session.cookie_secure = 1、session.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/插件/主题保持及时更新与漏洞修补。
- 变更与回滚:任何安全配置变更先在测试环境验证,保留回滚方案与变更记录;对关键操作(如防火墙规则、数据库权限)采用分阶段发布。