在Linux上对MySQL进行安全设置,主要涉及到以下几个方面:
sudo nano /etc/mysql/my.cnf
在[mysqld]
部分添加或修改以下行:
port = 3307
保存更改并重启MySQL服务:
sudo systemctl restart mysql
mysql -u root -p
在MySQL命令行中执行以下命令:
ALTER USER 'root'@'%' IDENTIFIED BY 'your_password' WITH SSL ON;
FLUSH PRIVILEGES;
这将禁用远程root登录,并要求使用SSL连接。接下来,编辑MySQL配置文件以禁止远程root登录:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]
部分添加或修改以下行:
bind-address = 127.0.0.1
保存更改并重启MySQL服务:
sudo systemctl restart mysql
mysql -u root -p
在MySQL命令行中执行以下命令:
DROP USER ''@'%';
FLUSH PRIVILEGES;
mysql -u root -p
在MySQL命令行中执行以下命令,以限制用户权限(将your_user
和your_database
替换为实际的用户名和数据库名):
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
使用强密码:为所有用户设置复杂且难以猜测的密码,并定期更改。
定期更新MySQL:保持MySQL软件的最新版本,以修复已知的安全漏洞。
sudo apt-get update
sudo apt-get upgrade mysql-server
对于iptables:
sudo iptables -A INPUT -p tcp --dport 3307 -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo service iptables save
对于ufw:
sudo ufw allow 3307/tcp
sudo ufw deny incoming
sudo ufw enable
遵循以上建议,可以有效地提高Linux上MySQL的安全性。