在CentOS系统上对MySQL进行安全加固,可以遵循以下步骤:
安装MySQL:使用yum或dnf命令安装MySQL服务器。例如,在CentOS 8及以上版本中,可以使用以下命令:
sudo dnf install mysql-community-server
启动和启用MySQL服务:
sudo systemctl start mysqld
sudo systemctl enable mysqld
初次配置:安装完成后,运行mysql_secure_installation
脚本进行基本的安全设置,如设置root密码、删除匿名用户、禁止root远程登录等。
sudo mysql_secure_installation
修改MySQL配置文件:编辑MySQL配置文件(通常位于/etc/my.cnf
或/etc/mysql/my.cnf
),进行以下配置:
限制远程root登录:
bind-address = 127.0.0.1
设置最大连接数:
max_connections = 500
数据目录权限:
datadir=/var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
chmod -R 700 /var/lib/mysql
启用SSL:
require_secure_transport
修改密码策略:
UNINSTALL COMPONENT 'file://component_validate_password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewStrongPass!';
使用firewalld管理防火墙:
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
创建新用户并分配权限:遵循最小权限原则,为每个用户创建特定的数据库访问权限。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
更新MySQL:定期检查并更新MySQL到最新版本,以修补已知的安全漏洞。
sudo yum update mysql-community-server
启用审计日志:记录数据库操作日志,便于追踪和审计。
禁用不必要的超级用户:检查并删除不必要的超级用户账户。
passwd -dl root
删除不必要的账号:删除所有默认的、不必要的系统账号。
userdel -r username
groupdel groupname
通过以上步骤,可以显著提高CentOS上MySQL数据库的安全性。