這篇博客是關於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 策略 = 值
這樣可以根據需求對策略進行設置