首页主机资讯Ubuntu MariaDB如何进行安全设置

Ubuntu MariaDB如何进行安全设置

时间2025-10-01 23:10:03发布访客分类主机资讯浏览1204
导读:Ubuntu系统下MariaDB安全设置实战指南 1. 基础环境准备 首先确保Ubuntu系统及软件包为最新版本,避免已知漏洞: sudo apt update && sudo apt upgrade -y 安装Maria...

Ubuntu系统下MariaDB安全设置实战指南

1. 基础环境准备

首先确保Ubuntu系统及软件包为最新版本,避免已知漏洞:

sudo apt update &
    &
     sudo apt upgrade -y

安装MariaDB服务器(默认源为Ubuntu官方仓库,版本较旧时可添加MariaDB官方源):

sudo apt install mariadb-server -y

2. 运行安全配置向导

使用mysql_secure_installation脚本完成核心安全设置,该脚本会引导完成以下关键操作:

  • 设置root密码:若未设置,输入强密码(包含大小写字母、数字、特殊字符,长度≥12位);
  • 删除匿名用户:执行DELETE FROM mysql.user WHERE User='',防止未认证访问;
  • 禁止root远程登录:执行UPDATE mysql.user SET Host='localhost' WHERE User='root',仅允许本地登录;
  • 删除测试数据库:执行DROP DATABASE IF EXISTS test,避免未授权测试;
  • 重新加载权限:执行FLUSH PRIVILEGES,使更改立即生效。
    全程按提示输入Y确认:
sudo mysql_secure_installation

3. 配置文件优化

编辑MariaDB主配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,调整以下参数提升安全性:

  • 限制绑定地址:将bind-address = 127.0.0.1保留(默认仅本地访问),若需远程访问需谨慎修改为0.0.0.0(后续需配合防火墙限制IP);
  • 禁用本地文件访问:添加local-infile = 0,防止恶意用户通过LOAD DATA LOCAL INFILE读取服务器文件;
  • 调整最大连接数:根据服务器性能设置max_connections(如max_connections = 500),避免资源耗尽。
    修改后重启服务使配置生效:
sudo systemctl restart mariadb

4. 用户权限精细化管理

  • 创建专用用户:避免使用root进行日常操作,为用户分配最小必要权限。例如,创建app_user仅能从localhost访问mydatabase
    CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
        
    GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'app_user'@'localhost';
        
    FLUSH PRIVILEGES;
        
    
  • 撤销多余权限:定期检查用户权限,使用REVOKE命令撤销不必要的权限(如GRANT ALL PRIVILEGES授予的过度权限)。
  • 限制远程访问:若需远程访问,仅为特定IP授权(如192.168.1.100),而非%(所有IP):
    CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'RemotePass456!';
        
    GRANT SELECT, INSERT ON mydatabase.* TO 'remote_user'@'192.168.1.100';
        
    FLUSH PRIVILEGES;
        
    

5. 启用SSL/TLS加密传输

配置SSL加密可防止数据在传输过程中被窃取或篡改:

  • 生成证书与密钥:MariaDB自带CA工具,生成自签名证书(生产环境建议使用权威CA签发的证书):
    sudo mkdir -p /etc/mysql/ssl
    sudo openssl genrsa 2048 >
         /etc/mysql/ssl/server-key.pem
    sudo openssl req -new -x509 -nodes -days 365 -key /etc/mysql/ssl/server-key.pem -out /etc/mysql/ssl/server-cert.pem
    sudo openssl req -new -nodes -days 365 -key /etc/mysql/ssl/server-key.pem -out /etc/mysql/ssl/client-key.pem
    sudo openssl x509 -req -in /etc/mysql/ssl/client-key.pem -days 365 -CA /etc/mysql/ssl/server-cert.pem -CAkey /etc/mysql/ssl/server-key.pem -set_serial 01 -out /etc/mysql/ssl/client-cert.pem
    
  • 配置MariaDB启用SSL:编辑50-server.cnf,添加以下内容:
    [mysqld]
    ssl-ca=/etc/mysql/ssl/server-cert.pem
    ssl-cert=/etc/mysql/ssl/server-cert.pem
    ssl-key=/etc/mysql/ssl/server-key.pem
    require_secure_transport=ON  # 强制所有连接使用SSL
    
  • 验证SSL连接:使用STATUS; 命令查看SSL状态(网络登录时需指定证书路径):
    mysql -u root -p --protocol=tcp --ssl-ca=/etc/mysql/ssl/server-cert.pem
    SHOW STATUS LIKE 'Ssl_cipher';
          # 应显示加密套件(如AES256-SHA)
    

6. 防火墙与网络隔离

使用ufw(Ubuntu默认防火墙)限制访问,仅允许必要端口(如SSH的22端口、MariaDB的3306端口):

  • 安装并启用ufw
    sudo apt install ufw -y
    sudo ufw enable
    
  • 配置规则:允许SSH连接(确保管理通道安全),仅允许特定IP访问MariaDB(如公司IP192.168.1.100):
    sudo ufw allow ssh
    sudo ufw allow from 192.168.1.100 to any port 3306
    sudo ufw default deny incoming  # 默认拒绝所有入站连接
    sudo ufw default allow outgoing # 允许所有出站连接
    
  • 检查规则
    sudo ufw status verbose
    

7. 安全审计与监控

启用审计日志可追踪数据库操作,便于事后溯源:

  • 编辑配置文件:在50-server.cnf中添加审计插件配置:
    [mysqld]
    plugin_load_add = server_audit
    server_audit_logging = ON
    server_audit_output_type = FILE
    server_audit_file_path = /var/log/mysql/server_audit.log
    server_audit_file_rotate_size = 1G  # 单个日志文件最大1G
    server_audit_file_rotations = 10   # 保留10个日志文件
    
  • 重启服务
    sudo systemctl restart mariadb
    
  • 验证审计日志:查看日志是否记录了连接、查询等操作(需sudo权限):
    sudo tail -f /var/log/mysql/server_audit.log
    

8. 定期维护与更新

  • 更新MariaDB:定期运行sudo apt update & & sudo apt upgrade mariadb-server,安装安全补丁;
  • 备份数据:使用mariabackup(MariaDB官方工具)进行物理备份,确保数据可恢复:
    sudo apt install mariadb-backup -y
    sudo mariabackup --backup --target-dir=/var/backups/mariadb/$(date +%F) --user=root --password='YourRootPassword'
    
  • 监控日志:定期检查/var/log/mysql/error.log(错误日志)和/var/log/syslog(系统日志),发现异常(如暴力破解尝试)及时处理。

通过以上步骤,可全面加固Ubuntu系统上MariaDB的安全性,覆盖从基础配置到高级防护的多个层面。需根据实际业务需求调整参数(如远程访问范围、SSL证书类型),并保持定期维护以应对新的安全威胁。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB如何进行安全设置
本文地址: https://pptw.com/jishu/716354.html
Ubuntu MariaDB如何使用SSL加密连接 Ubuntu MariaDB如何配置存储引擎

游客 回复需填写必要信息