防止CentOS上的MySQL被攻击可以通过以下几个关键步骤来实现:
mysql_secure_installation
脚本进行安全配置在安装MySQL之后,运行 mysql_secure_installation
脚本来自动完成一些基本的安全设置。这个脚本会引导你完成以下操作:
编辑 /etc/my.cnf
文件,以应用一些安全相关的设置。在 [mysqld]
部分添加或修改以下设置:
bind-address = 127.0.0.1
max_connections = 500
chown -R mysql:mysql /var/lib/mysql
chmod -R 700 /var/lib/mysql
保存更改并重启MySQL服务:sudo systemctl restart mysqld
。
为每个需要访问数据库的用户创建一个新的MySQL用户,并为其分配适当的权限。例如:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
如果需要允许此用户从其他主机访问,将 ‘localhost’ 替换为相应的主机名或IP地址。
确保定期更新系统和软件包,以修复已知的安全漏洞。可以使用以下命令更新系统:
sudo yum update
使用 firewalld
或其他防火墙软件限制对MySQL端口的访问。例如,只允许本地访问MySQL端口:
sudo iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP
或者开放MySQL默认端口3306:
sudo firewall-cmd --permanent --zone public --add-port 3306/tcp
sudo firewall-cmd --reload
使用 audit_log
插件(企业版自带)或启用通用日志和慢查询日志来记录所有连接与SQL操作。这有助于追踪和分析数据库的安全事件。
定期检查MySQL的日志文件,使用工具如 pt-query-digest
或 elk stack
增强审计分析能力。这有助于及时发现和响应潜在的安全威胁。
通过以上步骤,可以显著提高CentOS上MySQL数据库的安全性。请根据实际需求调整配置设置,并定期进行安全审计和更新。