Linux MariaDB如何进行安全配置
导读:Linux MariaDB 安全配置清单 一 基础加固 运行安全初始化向导,完成设置 root 密码、删除匿名用户、禁止 root 远程登录、删除 test 数据库等:执行命令:sudo mysql_secure_installation...
Linux MariaDB 安全配置清单
一 基础加固
- 运行安全初始化向导,完成设置 root 密码、删除匿名用户、禁止 root 远程登录、删除 test 数据库等:执行命令:
sudo mysql_secure_installation。完成后务必重启服务:sudo systemctl restart mariadb(或mysql)。 - 限制网络面:仅本地访问时,在 MariaDB 配置
[mysqld]中加入bind-address = 127.0.0.1;如需远程仅开放到管理网段,改为指定内网地址。 - 禁止导入本地文件:在
[mysqld]中设置local-infile=0,降低通过LOAD DATA LOCAL INFILE读取服务器文件的风险。 - 配置导入导出白名单:设置
secure_file_priv=/var/lib/mysql/import(示例路径),仅允许在该目录进行导入导出,避免任意路径读写。 - 运行身份与文件权限:确认 mysqld 以 mysql 用户运行;数据目录(如 /var/lib/mysql)权限设为 700,配置文件(如 /etc/my.cnf)设为 644 且仅 root 可写。
二 用户与权限最小化
- 按应用创建最小权限账户,避免共享账户;示例:
CREATE DATABASE app_db;CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPass!23';GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app_user'@'localhost';FLUSH PRIVILEGES;
- 清理高风险权限:非必要账户撤销
FILE、PROCESS、SUPER等权限;示例:REVOKE FILE,PROCESS,SUPER ON *.* FROM 'user'; - 精细化主机来源:将管理账户限制为管理网段或跳板机来源,例如将
root@localhost调整为root@'192.168.1.0/255.255.255.0'(按需设置)。 - 定期清理不再使用的账户与数据库,避免权限残留。
三 加密传输与静态加密
- 启用 SSL/TLS:生成 CA 与服务器证书,配置 MariaDB 使用证书并强制客户端加密连接;证书与密钥目录(如 /etc/mysql/ssl)权限设为 600,属主 mysql:mysql。
- 静态数据加密(TDE):启用
file_key_management插件并配置密钥文件(如 /etc/mysql/keyring/encryption.key),确保密钥文件权限 600 且仅 mysql 可读。 - 连接验证:在客户端连接时指定
--ssl-ca、--ssl-cert、--ssl-key,并在服务器端设置require_secure_transport=ON(或按用户/库粒度要求加密)。
四 审计与日志
- 启用审计插件:在
[mysqld]中加载server_audit并设置日志路径与滚动策略,例如:plugin_load_add = server_auditserver_audit_logging = ONserver_audit_output_type = FILEserver_audit_file_path = /var/log/mysql/server_audit.logserver_audit_file_rotate_size = 1Gserver_audit_file_rotations = 10
重启后在库中验证:SHOW GLOBAL VARIABLES LIKE 'server_audit%';,并检查日志文件是否生成。
- 基础通用日志:按需开启查询日志或错误日志,便于入侵溯源与故障排查(生产环境注意性能与磁盘占用)。
五 维护与合规
- 密码与策略:启用并校核密码复杂度插件(如
validate_password),设置长度、字符集与过期策略;定期轮换关键账户密码。 - 补丁与更新:通过官方仓库及时更新 MariaDB 与相关组件,修复已知漏洞。
- 安全基线巡检:定期核查关键项与命令示例:
- 查看与禁用
local_infile:SHOW VARIABLES LIKE 'local_infile';(配置local-infile=0) - 查看与设置
secure_file_priv:SHOW VARIABLES LIKE 'secure_file_priv';(设置为固定目录) - 查看高权限账户:
SELECT user,host FROM mysql.user WHERE File_priv='Y' OR Process_priv='Y' OR Super_priv='Y'; - 查看数据目录:
SHOW VARIABLES LIKE 'datadir';(确保目录权限 700) - 查看运行用户:
ps -ef | egrep "^mysql.*$"(确认非 root 运行) - 清理命令历史:
cat /dev/null > ~/.mysql_history或ln -s /dev/null ~/.mysql_history
每次变更配置后执行:sudo systemctl restart mariadb使配置生效。
- 查看与禁用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux MariaDB如何进行安全配置
本文地址: https://pptw.com/jishu/770915.html
