温馨提示×

linux系统mariadb安全吗

小樊
38
2025-12-20 08:59:09
栏目: 云计算

MariaDB在Linux上的安全性概览 MariaDB在Linux上的安全性取决于安装后的配置与运维方式。默认安装完成后存在较多风险点(如匿名账户、可远程的root、测试库等),需要立即加固;通过系统化的安全配置与持续运维,可以达到较高的安全水平,满足企业合规与审计要求。

常见风险与加固要点

  • 运行身份与文件权限:数据库进程应以非root专用用户运行;数据目录(如**/var/lib/mysql**)权限建议设为700,配置文件(如**/etc/my.cnf**)建议644,仅管理员可写。
  • 安全初始化:执行mysql_secure_installation,设置强密码,删除匿名用户与test库,禁止root远程登录
  • 网络访问控制:将服务绑定到127.0.0.1(仅本机)或最小化的白名单网段;配合防火墙仅放行必要来源IP与端口(默认3306)。
  • 禁用危险功能与导入路径:关闭local_infile;将secure_file_priv设为固定目录,避免任意文件读写。
  • 认证与账户最小权限:为应用创建最小权限专用账户;限制可登录host;仅授予必要库/表权限;定期检查并回收FILE/PROCESS/SUPER等高特权。
  • 密码策略与登录保护:启用密码复杂度校验(如simple_password_check);设置合理的max_connect_errorswait_timeout,降低暴力与闲置风险。
  • 日志与审计:启用查询/错误日志,集中采集与长期保存;必要时结合auditd对关键表与配置文件进行系统级审计。
  • 补丁与更新:及时更新MariaDB与操作系统补丁,修复已知漏洞;变更后按流程重启并验证。

快速加固清单

操作 关键配置 验证要点
安全初始化 执行mysql_secure_installation 无匿名用户、无test库、root不可远程
绑定地址 [mysqld] 设置bind-address=127.0.0.1(或白名单) 远程netstat不应监听3306;仅内网来源可连
禁用local_infile [mysqld] local-infile=0 show variables like ‘local_infile’; 返回值为OFF
限制导入路径 [mysqld] secure_file_priv=/var/lib/mysql-files 仅该目录可load_file;其他路径失败
数据目录权限 chmod 700 /var/lib/mysql ls -ld /var/lib/mysql 权限为drwx------
防火墙 UFW/iptables仅放行必要IP:3306 外部扫描3306应被拒绝
密码策略 安装并启用simple_password_check 弱口令创建被拒绝
登录保护 set global max_connect_errors=5; wait_timeout=600 错误过多自动阻断;会话超时退出
审计与日志 开启错误/查询日志;auditd监控配置文件与mysql库 /var/log/下日志增长;aureport有记录
补丁更新 yum/apt update mariadb-server 版本号更新、无安全告警

以上条目对应命令与参数示例可参考下列实践文档与配置片段。

合规与审计建议

  • 身份鉴别与授权:所有账户启用强口令并定期更换;按“最小权限”分配;对高特权(如FILE/SUPER/PROCESS)进行审批与回收;对应用采用专用账户主机限制
  • 登录失败与会话管理:设置max_connect_errors(如不超过5–10次)与wait_timeout(如600秒),并记录失败与超时事件。
  • 审计与留痕:开启数据库日志并集中存储;对关键系统文件与数据库内部对象(如mysql.user)配置auditd规则,审计记录建议至少保留6个月并定期备份。

0