首页主机资讯怎样保障centos lnmp的数据安全

怎样保障centos lnmp的数据安全

时间2026-01-20 21:39:04发布访客分类主机资讯浏览350
导读:CentOS LNMP 数据安全落地方案 一 安全基线与访问控制 系统与软件更新:保持 CentOS 与 Nginx/MySQL/PHP 的持续更新,及时修补漏洞。 防火墙最小化:仅放行 SSH(22 、HTTP(80 、HTTPS(44...

CentOS LNMP 数据安全落地方案

一 安全基线与访问控制

  • 系统与软件更新:保持 CentOSNginx/MySQL/PHP持续更新,及时修补漏洞。
  • 防火墙最小化:仅放行 SSH(22)HTTP(80)HTTPS(443)。示例:
    • firewall-cmd --permanent --set-default-zone=drop
    • firewall-cmd --permanent --zone=public --add-service=ssh --add-service=http --add-service=https
    • firewall-cmd --reload
  • 身份与登录安全:
    • 禁用 root 远程登录,使用 SSH 密钥认证;必要时修改默认 SSH 端口 并限制可登录用户。
    • 配置 Fail2ban 保护 SSH 与 Nginx 登录入口。
  • 权限与系统防护:
    • 最小权限运行服务(Nginx、MySQL、PHP-FPM 使用专用低权用户/组)。
    • 启用 SELinux 并执行最小权限策略;对关键文件(如 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow)设置 chattr +i 防篡改。
    • 设置 TMOUT 自动注销、限制 su 使用范围。

二 组件安全配置

  • Nginx
    • 隐藏版本号:server_tokens off;
    • 全站 HTTPS 与强化头部:
      • 使用 Certbot 申请证书并开启重定向、HSTS、OCSP Stapling。
      • 安全头:X-Frame-Options SAMEORIGIN、X-Content-Type-Options nosniff、Referrer-Policy、Permissions-Policy、Content-Security-Policy、Strict-Transport-Security
    • 请求与连接限制防 DoS:client_max_body_size 2M; client_body_timeout 10s; keepalive_timeout 15; 以及 limit_conn/limit_req
    • 管理路径 IP 白名单:对 /admin/ 等敏感路径仅允许可信来源。
  • MySQL
    • 运行安全初始化:mysql_secure_installation(删匿名、禁 test、禁 root 远程)。
    • 绑定本地:bind-address = 127.0.0.1skip-name-resolve
    • 最小权限:为应用创建专用账号,仅授予目标库必要权限(如 SELECT/INSERT/UPDATE/DELETE)。
    • 启用 SSL 加密客户端连接(配置 ssl-ca/ssl-cert/ssl-key)。
  • PHP
    • 关闭暴露与调试:expose_php = Off、display_errors = Off、log_errors = On、error_log
    • 资源与上传:memory_limit、max_execution_time、max_input_time、upload_max_filesize、post_max_size 合理设置。
    • 会话加固:session.cookie_httponly=1、session.cookie_secure=1、session.use_strict_mode=1
    • 禁用危险函数:disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,…
    • 目录隔离:open_basedir 限制 PHP 仅访问指定目录(如 /var/www/html:/tmp)。

三 备份与恢复策略

  • 备份范围与频率
    • 数据库:使用 mysqldump逻辑备份(如每日),建议参数 –single-transaction --quick --lock-tables=false 减少锁表影响。
    • 文件与配置:/etc/nginx、/var/www/html、/var/log、/etc/php.ini、/etc/php.d、/etc/my.cnf 等关键目录与配置。
    • 策略建议:采用 全量 + 增量(如每周全量、每日增量),并保留至少 7–30 天;对备份文件做 MD5/SHA256 校验异地/离线留存。
  • 传输与存储
    • 内网 Rsync + SSHRsync Daemon 推送至备份服务器,模块级鉴权、权限 600、限制 hosts allow;备份存储建议 RAID5/6、冗余与定期巡检。
  • 自动化与批量
    • 编写备份脚本(全量/增量)、输出日志、清理过期包;多机环境用 Ansible 批量分发与定时任务(crontab)。
  • 恢复演练
    • 定期做恢复演练完整性校验,验证备份可用性与恢复时效(RPO/RTO)。
  • 示例命令
    • 数据库备份:
      • mysqldump -u root -p --all-databases --single-transaction --quick --lock-tables=false | gzip > mysql_$(date +%F).sql.gz
    • 文件打包:
      • tar -zcf web_$(date +%F).tar.gz /etc/nginx /var/www/html /var/log/nginx /etc/php.ini /etc/php.d /etc/my.cnf
    • Rsync 推送(SSH):
      • rsync -avz --delete /backup/ user@backup-server:/data/backup/hostname/
  • 参考实践
    • 大规模 CentOS 7.9 场景可采用 Rsync 主从、按 IP/主机名 分目录、全量/增量与批量部署/验证的完整方案。

四 监控审计与应急响应

  • 日志与审计
    • 集中收集 Nginx 访问/错误日志、PHP-FPM 日志、MySQL 错误/慢查询日志、系统安全日志,并保留足够保留期
    • 启用 Fail2ban 对 SSH/Nginx 暴力尝试进行自动封禁;对关键目录与命令设置审计规则
  • 入侵检测与基线核查
    • 定期执行安全基线核查漏洞扫描;对异常登录、权限变更、敏感文件改动设置告警
  • 应急响应预案
    • 明确流程:隔离受影响主机 → 取证与溯源 → 从最近可用备份恢复 → 修复漏洞 → 复盘改进;关键业务建立热备/只读副本快速切换机制。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样保障centos lnmp的数据安全
本文地址: https://pptw.com/jishu/787689.html
如何优化centos lnmp的缓存 如何在centos中创建RAID分区

游客 回复需填写必要信息