这篇博客是关于MySQL数据库加固的试验

实验环境是:在CentOS 7的虚拟机上新搭建了MySQL数据库

一、设置root用户远程连接的IP限制

新搭建好的MySQL是没有开启远程连接的,开启MySQL服务,用本机连接试一下,发现现在能ping通连不上

 设置用户远程连接只要修改mysql库中user表的host列就可以,默认值为localhost就是禁止的,可以直接将localhost修改为%,相当于开放所有IP远程访问,但肯定没有人这么做因为数据库非常重要,所以可以将localhost修改为指定的IP访问。

 修改的命令是

use mysql                                                                         //首先使用mysql库

update user set host='%' where user='root';                    //修改host列,“%”的话是开启所有用户的远程连接,如果想要开启某一个IP就在host后面改成IP就可以

flush privileges;                                                                //刷新权限

select host,user from user;

先改成开放所有IP试一下

 

 mysql -h IP -P 端口 -u 用户名 -p

 

 现在这样的话同局域网内的所有终端都可以访问我的数据库了,但这样很不安全,所以可以设置成指定的IP

 

 

 

 这样就只有名单内的用户可以远程访问了

 

如果想要添加多个远程用户的话可以使用一下命令,添加多条策略

grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

flush privileges;

 

 删除策略:delete from user where host='172.16.12.1';

 

然后试一下,当我的IP不在列表里面时可以是不是可以连接数据库

 

 

 

 

二、设置用户密码策略

查看MySQL密码策略

SHOW VARIABLES LIKE 'validate_password%';

 


| Variable_name                                                 Value 

| validate_password_check_user_name             OFF          
| validate_password_dictionary_file                                        //密码文件保存路径
| validate_password_length                                    8               //密码长度,默认为8
| validate_password_mixed_case_count                 1              //密码中英文字母的个数,默认为1
| validate_password_number_count                       1              //密码中数字的个数,默认为1
| validate_password_policy                                MEDIUM        //密码强度(LOW、MEDIUM、STRONG)默认为MEDIUM
| validate_password_special_char_count               1              //密码中特殊符号的个数,默认为1

密码策略这个分为LOW、MEDIUM、STRONG(也可以设置为0、1、2,和这个一样的分别对应这三个)

LOW或者0:只对密码长度进行校验

MEDIUM或者1:对长度、英文、数字、特殊符号进行校验

STRONG或者2:对长度、英文、数字、特殊符号进行,字典文件进行校验,(用户的密码会和系统妹纸的字典进行校验,不能有连续四个字符与密码文件中单词的匹配,就是要求设置随机密码的意思)

 

设置策略:set global 策略 = 值

 这样可以根据需求对策略进行设置