LNMP环境如何安全设置
小樊
36
2025-12-12 02:26:48
LNMP环境安全设置清单
一 系统与账户安全
- 保持系统与组件持续更新:执行apt update && apt upgrade -y或yum/dnf update,及时修补漏洞。
- 最小权限账户与sudo:创建非root运维账号并加入sudo组,日常以该账号登录。
- 禁用root远程登录:编辑**/etc/ssh/sshd_config**,设置PermitRootLogin no,重启sshd。
- SSH加固:优先使用SSH密钥认证,必要时可更改默认端口并限制来源网段;变更前保留一个备用会话,防止锁死。
- 防火墙仅放行业务必需端口:如22/80/443;数据库端口3306默认仅本地访问。
- 自动化与安全审计:启用unattended-upgrades自动安全更新;部署fail2ban防暴力破解;定期用rkhunter/chkrootkit做基线巡检。
二 Nginx安全加固
- 隐藏版本与信息泄露:在http/server块设置server_tokens off;,禁用目录列表autoindex off;。
- 限制请求方法:仅允许GET/POST/HEAD,其余返回403。
- 安全响应头:启用X-Frame-Options SAMEORIGIN、X-XSS-Protection “1; mode=block”、X-Content-Type-Options nosniff、并配置Content-Security-Policy(按站点策略收紧)。
- 强制HTTPS与HSTS:将HTTP→HTTPS 301重定向,启用HSTS(Strict-Transport-Security)。
- 优化SSL/TLS:仅启用TLSv1.2/1.3,使用ECDHE与AEAD套件,开启OCSP Stapling。
- 访问控制与速率限制:对管理路径实施IP白名单,对登录/接口做rate limiting与连接数限制。
- 防敏感信息泄露:禁止访问**.git/.ht等敏感路径;自定义4xx/5xx**错误页面且不泄露版本与路径信息。
三 MySQL MariaDB安全
- 运行安全脚本与基础加固:执行mysql_secure_installation;删除test库、限制root远程、移除匿名用户。
- 最小权限与账户隔离:为每个应用创建最小权限专用账户;收回FILE/PROCESS/SUPER/SHUTDOWN/GRANT等非必要权限。
- 网络与加密:默认仅127.0.0.1监听;需要远程时强制TLS/SSL连接并校验证书;禁止3306对公网开放。
- 关键参数:设置local_infile=0、skip-name-resolve、symbolic-links=0、secure-file-priv到受控目录。
- 数据与日志权限:确保datadir及错误/慢查询/二进制等日志目录属主为mysql:mysql,权限600/660;日志与数据目录避免放在系统分区。
- 认证与密码策略:启用validate_password组件;MySQL 8.0优先使用caching_sha2_password;定期轮换强密码。
四 PHP与PHP-FPM安全
- 关闭暴露与调试:设置expose_php Off、display_errors Off、log_errors On,错误日志写入受控路径。
- 禁用危险函数与特性:在disable_functions中禁用exec/passthru/shell_exec/system/proc_open/popen等;关闭allow_url_fopen/allow_url_include。
- 路径与访问限制:使用open_basedir将PHP访问限制在**/var/www**与临时目录;上传目录禁止执行。
- 会话与Cookie:启用session.cookie_httponly=1、session.cookie_secure=1,必要时设置SameSite策略。
- PHP-FPM进程隔离:以非root用户运行(如webuser),配置listen.owner/group与pm参数,分离站点池并限制pm.max_children。
- 上传安全:校验MIME类型/后缀/大小,重命名上传文件,存储于非Web可访问目录,通过脚本代理访问。
五 文件权限 备份监控与持续运维
- 文件与目录权限:网站根目录建议750/640(目录/文件),属主webuser:webuser;敏感配置(如my.cnf/php.ini)设为600。
- 日志与轮转:为Nginx/PHP-FPM/MySQL配置logrotate按日轮转并压缩,保留至少14天。
- 备份与恢复演练:定期备份数据库与网站文件/配置,并进行可恢复性测试;保留多份异地副本。
- 监控与告警:集中收集访问/错误日志,对5xx/登录失败/暴力破解等设定阈值告警;结合性能监控观察异常流量与连接数。
- 安全基线与合规:定期执行CIS等基线检查与漏洞扫描;对公网接口考虑WAF/Rate Limiting/Geo-IP等纵深防护。