这是“官方”原本的模样搬过来的。。写的很粗略啊。还有篇详细的请查看:MySQL安全加固题目及答案参考解析
启动xserver-mysql,进入xserver-mysql,开始实验,实验步骤如下:
1. 进入xserver-mysql, 加固MySQL服务器,使所有的访问能被审计,要求通过对mysqld的启动项进行加固
设定审计文件为/var/log/mysql/access.log
#cd /etc/
# vi my.cnf
下面红色标记部分为增加的日志选项,重新启动后起作用
2. 配置Linux 防火墙,允许MySQL服务能够被访问,要求规则中只包含端口项
1
2
3
4
5
|
# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#iptables -nL --line #以标号的形式显示出来
#service iptables save #你应该保存一下,小伙子
|
3. 进入xserver-mysql,查看所有用户及权限,找到可以从任何IP地址访问的用户
Mysql>use mysql;
Mysql>select host,user from user;
4. 对题号3中的漏洞进行加固,设定该用户只能从公司PC-1访问,用grants 命令进行管理。
Mysql>GRANT ALL ON *.* TO test@192.168.x.x IDENTIFIED BY “” WITH GRANT OPTION;
5. 检查xserver-mysql中的是否存在数据库匿名用户,如果存在数据库匿名用户,则删除该用户,将发现的数据库匿名用户信息以及删除过程
mysql>use mysql;
mysql> select host,user from user where user=””;
mysql>flush privileges; #记得刷新权限啊小伙子!
6. 改变默认MySQL管理员的名称,将系统的默认管理员root 改为admin,防止被列举,将执行过程
1
2
3
4
5
|
mysql>use mysql;
mysql> update user set user="admin" where user="root";
mysql>flush privileges;
|
7. 禁止MySQL对本地文件进行存取,对mysqld 的启动项进行加固
#cd /etc/
# vi my.cnf
下面红色框中为增加的本地文件存取的限制语句,重新启动后起作用
增加语句为
set-variable=local-infile=0
#/etc/init.d/mysqld stop
#/etc/init.d/mysqld start
8. 限制一般用户浏览其他用户数据库,对mysqld 的启动项进行加固
跟上边一样,配置文件增加配置项,增加语句为
skip-show-database
#/etc/init.d/mysqld stop
#/etc/init.d/mysqld start