MariaDB在Linux上的安全性增强措施
安装MariaDB时,优先通过Linux发行版的包管理工具(如CentOS的yum、Ubuntu的apt)获取官方版本,避免第三方源的安全风险。安装完成后,必须运行mysql_secure_installation工具——该工具可自动化完成以下关键操作:设置root用户密码(若未设置)、移除匿名用户账户、禁止root用户从远程主机登录、删除默认的test数据库(任何人可访问的测试库)、开启二进制日志(用于数据恢复与审计)。
修改MariaDB主配置文件(通常位于/etc/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf),强化基础安全设置:
bind-address参数设置为127.0.0.1,限制MariaDB仅接受本地连接,避免暴露在公网;local-infile=0,防止恶意用户通过SQL语句读取服务器本地文件系统;max_connections,避免过多连接导致资源耗尽或拒绝服务攻击;3307),降低端口扫描攻击的概率。SELECT、INSERT权限,无需DROP、ALTER等高危权限);GRANT语句指定用户可访问的IP地址(如GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'192.168.1.%'),禁止root用户远程登录;test数据库及其中的匿名用户,消除潜在的安全隐患。firewalld(CentOS)或iptables(Ubuntu)限制对MariaDB端口(默认3306)的访问,仅允许信任的IP地址或网段通过。例如,CentOS下可执行:sudo firewall-cmd --permanent --add-port=3306/tcp(开放端口),sudo firewall-cmd --reload(生效);bind-address限制),避免暴露在互联网中。ssl-ca、ssl-cert、ssl-key),同时设置require_secure_transport = ON(MariaDB 10.3+)强制客户端使用加密连接;ENCRYPT()函数或透明数据加密(TDE)功能。general_log = ON)和慢查询日志(slow_query_log = ON),记录所有数据库操作(如查询、修改、删除),便于后续审计和排查异常;/var/log/mysql/或/var/lib/mysql/),关注异常操作(如大量失败登录尝试、未授权的表访问),及时响应安全事件;Prometheus+Granafa或Zabbix监控MariaDB的性能指标(如CPU使用率、内存占用、连接数),及时发现潜在的安全威胁(如DDoS攻击导致的连接激增)。SELinux(强制访问控制)、AppArmor(应用级访问控制)限制MariaDB进程的权限,定期清理系统日志和临时文件;mysqldump或xtrabackup工具定期备份数据库,将备份文件存储在安全的离线介质(如加密U盘)或异地位置,防止数据丢失。