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盘)或异地位置,防止数据丢失。