MariaDB在Linux上的安全配置可从以下方面入手:
- 基础安全初始化
- 运行
mysql_secure_installation脚本,设置root密码、删除匿名用户、禁止root远程登录、删除测试数据库。
- 运行
- 配置文件优化
- 修改
/etc/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf:- 将
bind-address设为0.0.0.0以允许远程访问(生产环境建议限制为特定IP)。 - 调整
max_connections控制最大连接数,关闭LOCAL INFILE防止文件系统访问。
- 将
- 修改
- 用户权限管理
- 创建专用数据库用户,避免使用root日常操作,按需分配最小权限(如
GRANT SELECT, INSERT ON db.* TO 'user'@'host')。 - 定期清理冗余用户,确保权限最小化。
- 创建专用数据库用户,避免使用root日常操作,按需分配最小权限(如
- 防火墙与网络隔离
- 使用
ufw/firewalld/iptables开放3306端口,并限制仅允许信任IP访问。 - 生产环境建议关闭数据库服务器的公网访问,通过内网或跳板机连接。
- 使用
- 加密与审计
- 启用SSL/TLS加密连接(需配置证书),保护数据传输安全。
- 开启二进制日志(
log-bin)和审计功能,记录操作日志便于追溯。
- 系统层面加固
- 确保MariaDB服务以非root用户运行,降低权限滥用风险。
- 定期更新MariaDB和系统补丁,修复安全漏洞。
- 配置SELinux(若启用)允许MariaDB相关操作,或临时设置为宽松模式测试。
关键命令参考:
- 防火墙开放端口(以ufw为例):
sudo ufw allow 3306/tcp - 授权远程用户:
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'password' - 重启服务生效配置:
sudo systemctl restart mariadb
以上措施可有效提升MariaDB在Linux环境下的安全性,生产环境需结合业务需求进一步细化权限和加密策略。