1. 修改MariaDB绑定地址(关键配置)
默认情况下,MariaDB仅监听本地回环接口(127.0.0.1),无法接受远程连接。需编辑配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,找到bind-address参数,将其值从127.0.0.1修改为0.0.0.0(允许所有IP访问)或服务器的具体IP地址(限制为特定网段)。修改后需重启MariaDB服务使配置生效:sudo systemctl restart mariadb。
2. 配置防火墙允许MariaDB端口
Ubuntu系统默认使用ufw(Uncomplicated Firewall)作为防火墙工具,需开放MariaDB的默认端口3306。执行以下命令:
sudo ufw allow 3306/tcp;sudo ufw allow 3306/tcp --permanent → sudo ufw reload。sudo ufw status,确认输出中包含“3306/tcp ALLOW Anywhere”。3. 创建/授权远程访问用户(安全管控)
默认的root用户仅允许本地登录,需创建专门的用户并授予远程访问权限。登录MariaDB后执行:
-- 创建用户(指定用户名、密码,%表示允许任意IP访问)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!';
-- 授予数据库权限(替换your_database为实际数据库名)
GRANT ALL PRIVILEGES ON your_database.* TO 'remote_user'@'%';
-- 刷新权限使更改立即生效
FLUSH PRIVILEGES;
安全提示:避免使用%通配符授权所有IP,建议限制为特定子网(如192.168.1.%)或固定IP,降低未授权访问风险。
4. 限制网络访问范围(增强安全性)
即使开放了3306端口,也应通过/etc/hosts.allow和/etc/hosts.deny文件进一步限制访问源。编辑这两个文件:
/etc/hosts.allow:添加允许访问的IP或网段,如mysqld: 192.168.1.0/24(允许192.168.1网段访问);/etc/hosts.deny:添加拒绝所有其他IP的规则,如mysqld: ALL。5. 检查网络连通性(排查基础问题)
在客户端机器上执行以下命令,验证与MariaDB服务器的网络连接:
ping <服务器IP>:确认服务器IP可达;telnet <服务器IP> 3306:确认3306端口未被防火墙或其他网络设备拦截(若提示“Connection refused”,需检查MariaDB服务状态或防火墙规则)。6. 定期更新MariaDB软件包(安全维护)
保持MariaDB为最新版本,及时修复已知安全漏洞。执行以下命令更新系统软件包:
sudo apt update && sudo apt upgrade mariadb-server mariadb-client -y
建议开启自动安全更新:sudo apt install unattended-upgrades → sudo dpkg-reconfigure unattended-upgrades。