MariaDB Linux版安全性如何保障
小樊
36
2025-12-10 11:39:51
MariaDB Linux 版安全性保障要点
一 基础加固
- 运行安全初始化向导:执行 mysql_secure_installation,设置 root 强密码、删除匿名用户、移除测试库、禁止 root 远程登录,并重新加载权限表。完成后确认仅保留必要账户与库。
- 限制网络面:在 /etc/mysql/mariadb.conf.d/50-server.cnf(或 /etc/my.cnf)的 [mysqld] 中设置 bind-address = 127.0.0.1,仅本地访问;如确需远程,仅在内网接口或跳板机开放。
- 禁用危险功能:在 [mysqld] 中关闭 local_infile=0,防止通过 LOAD DATA LOCAL INFILE 读取服务器文件;按需设置 secure_file_priv 为固定目录,避免任意文件读写。
- 最小权限账户:为每个应用创建最小权限专用账户,避免使用 root 直连应用;不再使用的账户及时回收。
- 文件与进程安全:确保数据库以 mysql 非特权用户运行;配置文件 /etc/my.cnf 权限 644;清理历史泄露风险(如 ~/.mysql_history 清空或软链到 /dev/null);避免在命令行明文写密码(使用 mysql -u user -p 交互输入)。
二 传输与静态加密
- 强制加密传输:为客户端连接启用 SSL/TLS,仅允许有效证书连接;在备份、复制、应用接入侧统一使用加密通道,防止凭据与数据在网络中被窃听。
- 静态数据加密:启用 InnoDB 表空间加密(TDE) 与 InnoDB 重做/撤销日志加密;使用 file_key_management 等密钥管理插件集中管理密钥,确保密钥文件权限最小化并纳入备份。
- 备份链路加密:使用 mariabackup 执行物理热备,备份与恢复流程均通过加密通道与受控目录完成,演练恢复以验证密钥与流程可用性。
三 审计与监控
- 启用服务器审计:加载 server_audit 插件,记录 CONNECT、QUERY、DML/DDL 等关键事件;将日志写入 /var/log/mysql/server_audit.log 并设置 1G 轮转、保留 10 个文件,便于合规与取证。
- 系统侧日志与告警:开启/审计 general log/error log,结合 Logwatch/Nagios 等做异常连接、失败登录与性能突变监控与告警,形成闭环响应。
四 网络与主机防护
- 主机与端口加固:仅在内网开放 3306(如使用防火墙 UFW/iptables 白名单放行),数据库服务器置于 私有子网,对外服务通过反向代理/应用网关隔离。
- 服务最小化:禁用不必要的插件与功能模块,关闭未使用的监听端口与协议,减少攻击面。
五 运维与备份恢复
- 持续更新与补丁:定期执行 apt/yum update 更新 MariaDB 与依赖组件,及时修复已知漏洞;变更配置后按需重启服务。
- 备份与演练:制定包含 全量+增量 的 mariabackup 策略,定期恢复演练验证 TDE 密钥与数据一致性;备份文件加密存储并设置保留周期与异地副本。
- 安全核查清单:
- 仅本地监听(或受控网段)、禁用 local_infile、secure_file_priv 已限定;
- 所有账户使用强密码并最小权限、无匿名/测试账户;
- SSL/TLS 强制开启、证书有效;
- server_audit 运行且日志轮转正常;
- 防火墙仅放行业务必需来源 IP;
- 备份成功、可恢复、密钥与流程受控。