在CentOS系统上对MySQL进行安全加固是确保数据安全的重要步骤。以下是一些关键的安全加固技巧:
mysql_secure_installation 脚本在安装MySQL之后,运行 mysql_secure_installation 脚本来自动完成一些基本的安全设置。这个脚本会引导你完成以下操作:
编辑 /etc/my.cnf 文件,以应用一些安全相关的设置。在 [mysqld] 部分添加或修改以下设置:
bind-address = 127.0.0.1:禁止远程 root 登录max_connections = 500:设置最大连接数datadir=/var/lib/mysqlchown -R mysql:mysql /var/lib/mysqlchmod -R 700 /var/lib/mysql为每个需要访问数据库的用户创建一个新的 MySQL 用户,并为其分配适当的权限。例如:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
如果需要允许此用户从其他主机访问,将 ‘localhost’ 替换为相应的主机名或 IP 地址。
为了让远程客户端可以访问MySQL数据库,需要在防火墙中开放MySQL默认端口3306:
sudo firewall-cmd --permanent --zone public --add-port 3306/tcp
sudo firewall-cmd --reload
确保定期更新系统和软件包,以修复已知的安全漏洞。可以使用以下命令更新系统:
sudo yum update
如果需要从其他主机访问MySQL服务器,需要修改MySQL的配置文件(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf),注释掉 bind-address 行,或者将其设置为 0.0.0.0,以允许任何IP地址访问。
编辑 my.cnf 文件,添加以下配置以使用SSL连接:
[mysqld]
ssl-ca = /path/to/ca.pem
ssl-cert = /path/to/cert.pem
ssl-key = /path/to/key.pem
mysqlcheck 工具进行表维护。使用 mysqldump 工具进行定期备份,并将备份文件存储在安全的位置。可以使用cron作业来自动化备份过程。
通过以上步骤,你可以显著提高CentOS上MySQL数据库的安全性。请根据实际需求调整配置设置,并定期审查和更新安全策略。