欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Linux下MySQL 5.0.x的安全设置

程序员文章站 2022-05-26 20:07:20
...

禁止MySQL中用ldquo;LOAD DATA LOCAL INFILErdquo;命令。这个命令会利用MySQL把本地文件读到数据库中,然后用户就可以非法获取

打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。

#取消文件系统的外部锁

skip-locking

#不进行域名反解析,注意由此带来的权限/授权问题

skip-name-resolve

#禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。这个命令会利用MySQL把本地文件读到数据库中,然后用户就可以非法获取敏感信息了。网络上流传的一些攻击方法中就有用它的,它也是很多新发现的SQL Injection攻击利用的手段!

local-infile = 0

#关闭远程连接,即3306端口。这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所 以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完 全可以绕过MySQL的内建安全机制。(你必须确定,,你是否真的不需要远程连接mysql)

skip-networking

修改完my.cnf后,还需要对mysql的用户名、帐号、及默认数据库进行调整

首先先登录mysql,在终端窗口输入 /home/mysql/bin/mysql -u root -p

然后会提示输入密码,输入正确密码后,会出现mysql>提示符。

输入以下命令:

mysql>use mysql;

mysql>update user set user=”CentOS” where user=”root”; (将mysql的root用户名修改成centos,防止root的密码被暴力破解)

mysql>select Host,User,Password,Select_priv,Grant_priv from user;

mysql>delete from user where user=”; (删除user用户)

mysql>delete from user where password=”; (删除user用户)

mysql>delete from user where host=”; (删除user用户)

mysql>drop database test; (删除默认的test数据库)

mysql>flush privileges; (刷新mysql的缓存,让以上设置立即生效)

mysql>quit;

为了使以上优化和安全设置生效,请重启Mysql服务或Linux。

Linux下MySQL 5.0.x的安全设置