Linux MySQL程序服務(wù)內(nèi)建安全機(jī)制
Linux MySQL是常用系統(tǒng),于是我學(xué)習(xí)研究了Linux MySQL,在這里對大家詳細(xì)介紹下Linux MySQL系統(tǒng)應(yīng)用,希望對大家有用。Linux MySQL一般性安全設(shè)置 。
打開/etc/my.cnf文件,修改以下設(shè)置,如果沒有,可手動添加。#取消文件系統(tǒng)的外部鎖skip-locking#不進(jìn)行域名反解析,注意由此帶來的權(quán)限/授權(quán)問題
skip-name-resolve#禁止Linux MySQL中用“LOAD DATA LOCAL INFILE”命令。這個命令會利用Linux MySQL把本地文件讀到數(shù)據(jù)庫中,然后用戶就可以非法獲取敏感信息了。網(wǎng)絡(luò)上流傳的一些攻擊方法中就有用它的,它也是很多新發(fā)現(xiàn)的SQL Injection攻擊利用的手段!
local-infile = 0#關(guān)閉遠(yuǎn)程連接,即3306端口。這是Linux MySQL的默認(rèn)監(jiān)聽端口。由于此處Linux MySQL只服務(wù)于本地腳本,所以不需要遠(yuǎn)程連接。盡管Linux MySQL內(nèi)建的安全機(jī)制很嚴(yán)格,但監(jiān)聽一個TCP端口仍然是危險的行為,因為如果Linux MySQL程序本身有問題,那么未授權(quán)的訪問完全可以繞過Linux MySQL的內(nèi)建安全機(jī)制。(你必須確定,你是否真的不需要遠(yuǎn)程連接mysql)
skip-networking修改完my.cnf后,還需要對Linux MySQL的用戶名、帳號、及默認(rèn)數(shù)據(jù)庫進(jìn)行調(diào)整首先先登錄mysql,在終端窗口輸入 /usr/local/mysql/bin/mysql -u root -p然后會提示輸入密碼,輸入正確密碼后,會出現(xiàn)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; (刪除默認(rèn)的test數(shù)據(jù)庫)
- mysql>flush privileges; (刷新mysql的緩存,讓以上設(shè)置立即生效)
- mysql>quit;
為了使以上優(yōu)化和安全設(shè)置生效,請重啟Linux MySQL服務(wù)或Linux。關(guān)于Linux MySQLl的安全設(shè)置,這篇文章很值得一看http://www.unixren.com/linux/bencandy.php?fid=21&id=459一般來說Linux MySQL使用這些安全設(shè)定就差不多了。
【編輯推薦】