首页主机资讯Debian MySQL安全加固方法有哪些

Debian MySQL安全加固方法有哪些

时间2026-01-20 12:22:04发布访客分类主机资讯浏览1043
导读:Debian 上 MySQL/MariaDB 的安全加固清单 一 基础与账户安全 运行安全初始化向导:执行 sudo mysql_secure_installation,启用或配置 VALIDATE PASSWORD 插件,设置强 roo...

Debian 上 MySQL/MariaDB 的安全加固清单

一 基础与账户安全

  • 运行安全初始化向导:执行 sudo mysql_secure_installation,启用或配置 VALIDATE PASSWORD 插件,设置强 root 密码,按提示删除匿名用户、禁止 root 远程登录、移除测试库并刷新权限。完成后使用 mysql -u root -p 验证登录。
  • 删除匿名与弱权账户:在 mysql.user 中清理空用户名账户(User=“”),仅保留必要账户;为每个应用创建最小权限的专用账户,避免以 root 直连应用。
  • 强化密码策略:启用并选择合适强度的密码校验(低/中/高),对生产账户执行定期轮换。
  • 限制本地文件读取:在 [mysqld] 中设置 local-infile=0,降低通过 LOAD_FILE 等导致的本地文件泄露风险。

二 网络与加密

  • 限制监听地址:在 [mysqld] 设置 bind-address=127.0.0.1,仅本机访问;若必须远程,改为内网地址并配合防火墙白名单。
  • 防火墙与端口治理:使用 ufw/iptables 仅放行必要端口(如 SSH 22、业务 80/443);如确需开放 3306,仅允许受控来源 IP。
  • 远程访问替代方案:优先通过 SSH 隧道 访问数据库,避免公网直连 3306。
  • 启用传输加密:在 MySQL 中为客户端连接配置 SSL/TLS,防止中间人窃听与数据泄露。
  • 变更默认端口:如环境允许,可将 port=3306 改为非常用端口,仅作为“安全通过 obscurity”的辅助手段,不能替代认证与加密。

三 系统与文件安全

  • 最小权限运行:确保数据库以 mysql 系统用户运行,数据目录(如 /var/lib/mysql)及配置文件(如 /etc/mysql/)权限最小化,仅 root/mysql 可访问。
  • 清理敏感历史:定期清空客户端历史文件 ~/.mysql_history,避免在命令行中直接携带密码(如避免在命令历史中暴露 “-ppassword”)。
  • 系统加固配套:保持 Debian 与数据库包更新(如 apt update/upgrade),并启用 ufw/fail2ban 等基础防护。

四 审计监控与备份恢复

  • 启用与轮转日志:在 [mysqld] 中配置通用查询日志或错误日志(如 log=/var/log/mysql.log),并结合 logrotate 进行日志轮转与归档,便于审计与取证。
  • 持续监控与基线核查:使用 logwatchNagios/Zabbix 等监控异常连接与慢查询;定期用 Lynis 做系统安全基线扫描。
  • 备份与演练:制定包含全量/增量备份与恢复演练的应急方案,确保可快速回滚与最小化停机。

五 加固实施示例命令

  • 安全初始化与密码策略:
    • sudo mysql_secure_installation(启用 VALIDATE PASSWORD、设置 root 密码、清理匿名/测试库、禁止 root 远程)
  • 仅本地监听与禁用 local_infile:
    • 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf
      [mysqld]
      bind-address=127.0.0.1
      local-infile=0
    • sudo systemctl restart mysql
  • 创建应用专用账户(最小权限):
    • CREATE DATABASE appdb;
      CREATE USER ‘appuser’@‘localhost’ IDENTIFIED BY ‘StrongPass!23’;
      GRANT SELECT,INSERT,UPDATE,DELETE ON appdb.* TO ‘appuser’@‘localhost’;
      FLUSH PRIVILEGES;
  • 防火墙仅放行必要端口:
    • sudo ufw allow 22/tcp
      sudo ufw allow 80/tcp
      sudo ufw allow 443/tcp
      sudo ufw enable
  • 清理 MySQL 历史:
    • ~/.mysql_history

  • 日志轮转示例(/etc/logrotate.d/mysql):
    • /var/log/mysql.log {
      daily
      rotate 7
      missingok
      compress
      delaycompress
      postrotate
      systemctl reload mysql > /dev/null 2> & 1 || true
      endscript
      }

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


若转载请注明出处: Debian MySQL安全加固方法有哪些
本文地址: https://pptw.com/jishu/787132.html
如何在Debian上配置MySQL防火墙 如何监控Debian MySQL的运行状态

游客 回复需填写必要信息