温馨提示×

centos上mysql如何进行安全加固

小樊
58
2025-09-30 11:43:53
栏目: 云计算

在CentOS上对MySQL进行安全加固是一个重要的步骤,以确保数据库的安全性和稳定性。以下是一些常见的安全加固措施:

1. 修改默认配置

  • 修改默认端口:将MySQL的默认端口3306改为其他不常用的端口。
    sudo sed -i 's/^port = 3306/port = 3307/' /etc/my.cnf
    
  • 禁用远程root登录:修改bind-address127.0.0.1,并确保root用户只能本地登录。
    sudo sed -i 's/^bind-address = 127.0.0.1/bind-address = 127.0.0.1/' /etc/my.cnf
    sudo sed -i 's/^skip-networking/skip-networking/' /etc/my.cnf
    

2. 用户权限管理

  • 删除匿名用户:确保没有匿名用户存在。
    DELETE FROM mysql.user WHERE User='';
    FLUSH PRIVILEGES;
    
  • 重命名root用户:为了增加安全性,可以将root用户重命名为其他名称。
    RENAME USER 'root'@'localhost' TO 'new_root'@'localhost';
    FLUSH PRIVILEGES;
    
  • 创建新管理员账户:创建一个新的管理员账户并分配适当的权限。
    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

3. 密码策略

  • 设置强密码:确保所有用户都有强密码。
    ALTER USER 'admin'@'localhost' IDENTIFIED BY 'StrongPassword!';
    FLUSH PRIVILEGES;
    
  • 使用密码过期策略:设置密码过期时间。
    SET GLOBAL validate_password.policy = MEDIUM;
    SET GLOBAL validate_password.length = 8;
    

4. 日志管理

  • 启用审计日志:启用MySQL的审计日志功能,记录所有数据库操作。
    sudo yum install mysql-audit-plugin
    sudo systemctl enable mysql-audit
    sudo systemctl start mysql-audit
    
  • 配置日志文件:确保日志文件存储在安全的位置,并定期检查日志文件。
    sudo sed -i 's/^log_error = /log_error = \/var\/log\/mysql\/error.log/' /etc/my.cnf
    sudo sed -i 's/^general_log = /general_log = 1/' /etc/my.cnf
    sudo sed -i 's/^general_log_file = /general_log_file = \/var\/log\/mysql\/general.log/' /etc/my.cnf
    

5. 防火墙配置

  • 限制访问:使用防火墙限制对MySQL端口的访问。
    sudo firewall-cmd --permanent --zone=public --add-port=3307/tcp
    sudo firewall-cmd --reload
    

6. 定期备份

  • 设置定期备份:使用mysqldump或其他备份工具定期备份数据库。
    mysqldump -u root -p --all-databases > /backup/all_databases.sql
    

7. 更新和补丁

  • 定期更新MySQL:确保MySQL版本是最新的,并及时应用安全补丁。
    sudo yum update mysql-server
    

通过以上步骤,可以显著提高CentOS上MySQL的安全性。请根据实际情况调整配置,并定期检查和更新安全设置。

0