《Mysql應(yīng)用Mysql默認(rèn)設(shè)置的危險性分析第1/2頁》要點(diǎn):
本文介紹了Mysql應(yīng)用Mysql默認(rèn)設(shè)置的危險性分析第1/2頁,希望對您有用。如果有疑問,可以聯(lián)系我們。
默認(rèn)安裝的mysql服務(wù)不平安因素涉及的內(nèi)容有:
一.mysql默認(rèn)的授權(quán)表
二.缺乏日志能力
三.my.ini文件泄露口令
四.服務(wù)默認(rèn)被綁定全部的網(wǎng)絡(luò)接口上
五.默認(rèn)安裝路徑下的mysql目錄權(quán)限
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一.mysql默認(rèn)的授權(quán)表
由于mysql對身份驗(yàn)證是基于mysql這個數(shù)據(jù)庫的,也叫授權(quán)表.所有的權(quán)限設(shè)置都在這里了.
我們只討論最為重要的一個表 user表.它控制的是接受或拒絕連接.
先看一下
select host,user,password,Delete_priv from user;
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
| % | root | | Y |
| localhost | | | Y |
| % | | | N |
+-----------+------+------------------+-------------+
現(xiàn)在新的版本,安裝完畢都會出現(xiàn)一個快速設(shè)置窗口,用于設(shè)置口令.
以上,就是user表里的內(nèi)容(略了點(diǎn))看看有什么問題?
我們知道m(xù)ysql的驗(yàn)證方式是比較特殊的,它基于兩個2個信息來進(jìn)行的
1.從那里連接
2.用戶名
第一條沒什么問題,當(dāng)然口令必須是平安的.
第二條從任何主機(jī),以用戶root,不需要口令都可以連接,權(quán)限為所有的權(quán)限.(注:這里的權(quán)限是全局權(quán)限)
第三條從本地主機(jī),任何用戶名(注:user為空白,不表示不需要用戶名),不需要口令,都可以連接,所有的權(quán)限
第四條從任何主機(jī),任何用戶名,不需要口令,都可以連接,無任何權(quán)限.
可以看出,2\3\4都是不平安的,如何攻擊這里就不說了,請參看資料文庫.
如果你mysql只允許本地連接,刪除host的%和user中的nul(表示空)
delete from user where host='% ';
delete from host where user=' ';
最后的user表,看起來因該是這個樣子
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
+-----------+------+------------------+-------------+
最后需要刷新授權(quán)表,使其立刻生效
flush privileges;
如果你的mysql需要被遠(yuǎn)程使用,需要為%段中的root帳號,加上一個平安的密碼
update user set password=password(‘youpass‘) where host=‘%‘;
其中youpass,就是口令
mysql> select host,user,password,Delete_priv from user;
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
| % | root | 77c590fa148bc9fb | Y |
+-----------+------+------------------+-------------+
_baidu_page_break_tag_
更好的做法是,對遠(yuǎn)程主機(jī)的連接,指定為特定的
修改host中的%為允許連接的主機(jī),比如:
192.168.0.% 允許一個特定的子網(wǎng)
www.jb51.net 允許一個特定的主機(jī)
帳號默認(rèn)的名字也是擔(dān)心的問題.有可能導(dǎo)致被暴力破解
update user set user=‘localadmin‘ where host=‘localhost‘;
update user set user=‘remoteadmin‘ where host=‘%‘;
最后的user表看起來像是這個樣子
mysql> select host,user,password,Delete_priv from user;
+-----------+-------------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+-------------+------------------+-------------+
| localhost | localadmin | 67457e226a1a15bd | Y |
| % | remoteadmin | 77c590fa148bc9fb | Y |
+-----------+-------------+------------------+-------------+
更為詳細(xì)的資料,請去參考晏子的《MySQL中文參考手冊》.隨便那都有下
二.缺乏日志能力
mysql安裝完成以后,會在%SystemRoot%目錄下產(chǎn)生my.ini的設(shè)置文件
默認(rèn)的內(nèi)容如下:
――――――――――――――――――――――――――――――
basedir=C:/mysql
#bind-address=192.168.0.1
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=root
password=root
―――――――――――――――――――――――――――――――
注意log#=這個
它沒有被定義,且被注銷掉了.
更改為一個適合的路徑,比如:
log=c:/mysql/logs/mysql.log
三.my.ini文件泄露口令
我們看到my.ini最后,有這兩句
user=root
password=root
如果,你安裝完成時,使用了mysql所提供的快速設(shè)置功能,(較新的版本)你的帳號和口令將被寫到my.ini文件中.
這也是mysql寫到啟動組里的winmysqladmin.exe工具,運(yùn)行時需要讀取的.它提供的mysql服務(wù)
的一些監(jiān)視功能.這樣winmysqladmin.exe才能獲得mysql服務(wù)的狀態(tài)信息.
其實(shí),這個也不算漏洞,我們看看my.ini默認(rèn)的權(quán)限,它可以被user組用戶讀取.
從而導(dǎo)致口令被泄露
解決方法:
從新設(shè)定my.ini文件的權(quán)限.
從新設(shè)定帳號及口令
不使用快速設(shè)置
四.服務(wù)默認(rèn)被綁定全部的網(wǎng)絡(luò)接口上
服務(wù)被綁定到了所有的網(wǎng)絡(luò)接口上,比如,你只需要一個運(yùn)行在內(nèi)網(wǎng)的mysql服務(wù),但是你的機(jī)器有
外網(wǎng)的接口,mysql也會被綁定上,從而帶來一些不必要的麻煩和威脅.
在my.ini里的這句
#bind-address=192.168.0.1
它默認(rèn)被注銷掉了
應(yīng)該打開它
如果,只是本地使用,更改為
bind-address=127.0.0.1
如果是其它情況,應(yīng)該選者一個合適的網(wǎng)絡(luò)接口
五.默認(rèn)安裝路徑下的mysql目錄權(quán)限
mysql默認(rèn)的安裝路徑為c:\mysql,基本上都難得改,要改的話也是麻煩,還要去改my.ini.
但,這樣就有個問題
通常c:\的權(quán)限是everyone組-所有的權(quán)限.這是默認(rèn)的,由于繼承性,導(dǎo)致mysql下的data目錄
也是everyone組-所有的權(quán)限.導(dǎo)致被隨意訪問、讀取、刪除,可能泄露和破壞數(shù)據(jù).
更改mysql目錄到一個合適,平安的訪問權(quán)限.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql應(yīng)用Mysql默認(rèn)設(shè)置的危險性分析第1/2頁》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10465.html