2數(shù)據(jù)庫(kù)安全加固

2 數(shù)據(jù)庫(kù)安全加固...28

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出金沙免費(fèi)做網(wǎng)站回饋大家。

2.1 修改root用戶默認(rèn)口令,刪除空口令...30

2.2 刪除默認(rèn)數(shù)據(jù)庫(kù)和非必要數(shù)據(jù)庫(kù)用戶...31

2.3 使用獨(dú)立用戶運(yùn)行msyql32

2.4 關(guān)于非root數(shù)據(jù)庫(kù)用戶的管理...33

2.5 關(guān)于默認(rèn)管理員用戶名的管理...34

2.6 用戶目錄權(quán)限限制...35

2.7 命令歷史記錄保護(hù)...36

2.8 禁止用戶遠(yuǎn)程連接數(shù)據(jù)庫(kù)...37

2.9 禁止MySQL對(duì)本地文件存取...38

2.10 MySQL服務(wù)器權(quán)限控制...39

2.11 開啟MySQL錯(cuò)誤日志...40

2.12 數(shù)據(jù)庫(kù)備份策略...41

2.13 Mysqld安全相關(guān)啟動(dòng)選項(xiàng)

MySQL版本為5.5;按照操作系統(tǒng)、安裝介質(zhì)以及安裝時(shí)設(shè)置的不同,安裝目錄會(huì)和本文示例有所區(qū)別。下表是MySQL手冊(cè)中的默認(rèn)安裝目錄及結(jié)構(gòu)。

Linux操作系統(tǒng)下采用RPM方式安裝,默認(rèn)安裝路徑見下表。

表2-1 Linux安裝后文件路徑

Directory

Contents of Directory

/usr/bin

Client programs and scripts

/usr/sbin

The mysqld server

/var/lib/mysql

Log files, databases

/usr/share/info

Manual in Info format

/usr/share/man

Unix manual pages

/usr/include/mysql

Include (header) files

/usr/lib/mysql

Libraries

/usr/share/mysql

Miscellaneous support files, including  error messages, character set files, sample configuration files, SQL for  database installation

/usr/share/sql-bench

Benchmarks

 

本文中使用的MySQL全局配置文件也會(huì)根據(jù)操作系統(tǒng)以及安裝方式不同,位于不同的目錄下;下表分別是Linux下可能的位置。

表2-2 Linux下全局配置文件可能位置

File Name

Purpose

/etc/my.cnf

Global options

/etc/mysql/my.cnf

Global options

SYSCONFDIR/my.cnf

Global options

$MYSQL_HOME/my.cnf

Global options

defaults-extra-file

The file specified with --defaults-extra-file=path, if any

~/.my.cnf

User-specific options

本文示例Linux環(huán)境采用rpm方式安裝;安裝路徑為默認(rèn)值,全局配置文件為/etc/my.cnf。

本文示例已將運(yùn)行所需的命令文件所需的加入到系統(tǒng)變量中。

 2.1 修改root用戶默認(rèn)口令,刪除空口令

實(shí)施目的

缺省安裝的MySQL的root用戶是空密碼的,為了安全起見,必須修改為強(qiáng)密碼,所謂的強(qiáng)密碼,至少8位,由字母、數(shù)字和符號(hào)組成的不規(guī)律密碼。

問題影響

為了保證用戶的安全登錄。

系統(tǒng)當(dāng)前狀態(tài)

查看系統(tǒng)當(dāng)前的密碼,查看mysql的user表。

實(shí)施步驟

使用MySQL自帶的命令mysqladmin修改root密碼,同時(shí)也可以登陸數(shù)據(jù)庫(kù),修改數(shù)據(jù)庫(kù)mysql下的user表的字段內(nèi)容,修改方法如下所示:

方法1:使用mysqladmin命令或者進(jìn)入usr/bin目錄使用mysqladmin工具修改密碼。

# /usr/bin/mysqladmin -u root -p password

回車后在系統(tǒng)提示下輸入舊密碼以及新密碼。

方法2:登陸數(shù)據(jù)庫(kù)修改密碼。

#mysql -u root -p
#mysql> use mysql;
#mysql> update user set password= password('newpassword') where user='root';
#mysql> flush privileges;

2 數(shù)據(jù)庫(kù)安全加固

“flush privileges”命令的作用是強(qiáng)制刷新內(nèi)存授權(quán)表,使得修改立即生效。

回退方案

恢復(fù)原始密碼到加固前的設(shè)置。

判斷依據(jù)

使用原始密碼連接數(shù)據(jù)庫(kù),如果登陸失敗且提示鑒權(quán)問題,則修改成功。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.2 刪除默認(rèn)數(shù)據(jù)庫(kù)和非必要數(shù)據(jù)庫(kù)用戶

實(shí)施目的

一般情況下,MySQL數(shù)據(jù)庫(kù)安裝后,只允許本地訪問且很多用戶不需要,尤其是默認(rèn)安裝的用戶。

問題影響

MySQL初始化后會(huì)自動(dòng)生成空用戶和test庫(kù),進(jìn)行安裝的測(cè)試,這會(huì)對(duì)數(shù)據(jù)庫(kù)的安全構(gòu)成威脅,有必要全部刪除,最后的狀態(tài)只保留root和ultravr即可,當(dāng)然以后根據(jù)需要增加用戶和數(shù)據(jù)庫(kù)。

系統(tǒng)當(dāng)前狀態(tài)

存在test數(shù)據(jù)庫(kù)以及mysql數(shù)據(jù)庫(kù)中的user表中存在非必要的其他用戶信息。

實(shí)施步驟

# mysql -u root -p 
# mysql> show databases;
# mysql> drop database test; //刪除數(shù)據(jù)庫(kù)test
# mysql>use mysql;
# mysql>delete from db; //刪除存放數(shù)據(jù)庫(kù)的表信息,因?yàn)檫€沒有數(shù)據(jù)庫(kù)信息。
# mysql> delete from user where user  <> 'root' and user <> 'ultravr'; // 刪除初始非root和ultravr的用戶
# mysql> delete from user where user='root' and password=''; //刪除空密碼的root

# mysql> delete from user where user='ultravr' and password=''; //刪除空密碼的ultravr
# mysql> flush privileges; //強(qiáng)制刷新內(nèi)存授權(quán)表。

 

回退方案

恢復(fù)原始用戶到加固前的設(shè)置。

判斷依據(jù)

查詢是否存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)信息。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.2 刪除默認(rèn)數(shù)據(jù)庫(kù)和非必要數(shù)據(jù)庫(kù)用戶

實(shí)施目的

一般情況下,MySQL數(shù)據(jù)庫(kù)安裝后,只允許本地訪問且很多用戶不需要,尤其是默認(rèn)安裝的用戶。

問題影響

MySQL初始化后會(huì)自動(dòng)生成空用戶和test庫(kù),進(jìn)行安裝的測(cè)試,這會(huì)對(duì)數(shù)據(jù)庫(kù)的安全構(gòu)成威脅,有必要全部刪除,最后的狀態(tài)只保留root和ultravr即可,當(dāng)然以后根據(jù)需要增加用戶和數(shù)據(jù)庫(kù)。

系統(tǒng)當(dāng)前狀態(tài)

存在test數(shù)據(jù)庫(kù)以及mysql數(shù)據(jù)庫(kù)中的user表中存在非必要的其他用戶信息。

實(shí)施步驟

# mysql -u root -p 
# mysql> show databases;
# mysql> drop database test; //刪除數(shù)據(jù)庫(kù)test
# mysql>use mysql;
# mysql>delete from db; //刪除存放數(shù)據(jù)庫(kù)的表信息,因?yàn)檫€沒有數(shù)據(jù)庫(kù)信息。
# mysql> delete from user where user  <> 'root' and user <> 'ultravr'; // 刪除初始非root和ultravr的用戶
# mysql> delete from user where user='root' and password=''; //刪除空密碼的root

# mysql> delete from user where user='ultravr' and password=''; //刪除空密碼的ultravr
# mysql> flush privileges; //強(qiáng)制刷新內(nèi)存授權(quán)表。

 

回退方案

恢復(fù)原始用戶到加固前的設(shè)置。

判斷依據(jù)

查詢是否存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)信息。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.3 使用獨(dú)立用戶運(yùn)行msyql

實(shí)施目的

mysqld拒絕使用root運(yùn)行,除非使用-user=root選項(xiàng)明顯指定。應(yīng)該用普通非特權(quán)用戶運(yùn)行mysqld。正如前面的安裝過程一樣,為數(shù)據(jù)庫(kù)建立獨(dú)立的linux中的mysql賬戶,該賬戶用來只用于管理和運(yùn)行MySQL。

問題影響

絕對(duì)不要作為使用root用戶運(yùn)行MySQL服務(wù)器。這樣做非常危險(xiǎn),因?yàn)槿魏尉哂蠪ILE權(quán)限的用戶能夠用root創(chuàng)建文件(例如,~root/.bashrc)。

系統(tǒng)當(dāng)前狀態(tài)

當(dāng)前運(yùn)行mysql用戶為root。

實(shí)施步驟

要想用其它Linux用戶啟動(dòng)mysqld,增加user選項(xiàng)指定/etc/my.cnf選項(xiàng)文件或服務(wù)器數(shù)據(jù)目錄的my.cnf選項(xiàng)文件中的[mysqld]組的用戶名。

方法1:修改/etc/my.cnf文檔,配置mysqld的啟動(dòng)用戶

#cp /etc/my.cnf /etc/my.cnf.bak //請(qǐng)?jiān)谛薷那皞浞?etc/my.cnf 
#vi /etc/my.cnf
[mysqld]
user=mysql

該命令使服務(wù)器用指定的用戶來啟動(dòng),無論你手動(dòng)啟動(dòng)或通過mysqld_safe或mysql.server啟動(dòng),都能確保使用mysql的身份,

方法2:在啟動(dòng)數(shù)據(jù)庫(kù)時(shí),加上user參數(shù)。

 # mysqld_safe –user=mysql &

mysqld運(yùn)行時(shí),只使用對(duì)數(shù)據(jù)庫(kù)目錄具有讀或?qū)憴?quán)限的linux用戶來運(yùn)行。

回退方案

恢復(fù)/etc/my.cnf到加固前的狀態(tài)。

判斷依據(jù)

使用ps命令查詢MySQL進(jìn)程的執(zhí)行用戶。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★★★

 2.4 關(guān)于非root數(shù)據(jù)庫(kù)用戶的管理

實(shí)施目的

使用一個(gè)低權(quán)限的用戶訪問授權(quán)的數(shù)據(jù)庫(kù),防止管理員密碼外泄或者業(yè)務(wù)系統(tǒng)使用的賬戶具有高權(quán)限。

問題影響

因?yàn)閞oot用戶具有最高數(shù)據(jù)庫(kù)權(quán)限,因此日常使用中對(duì)于業(yè)務(wù)系統(tǒng)直接使用root用戶會(huì)造成安全上的很多威脅。

系統(tǒng)當(dāng)前狀態(tài)

系統(tǒng)中除了root用戶外不存在其他用戶。

實(shí)施步驟

我們需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的用戶僅在本地訪問FusionCloud UltraVR的業(yè)務(wù)數(shù)據(jù)庫(kù)。

# mysql -u root -p 
# mysql> CREATE USER ultravr@'localhost' IDENTIFIED BY 'mypassword';
# mysql> GRANT ALL ON lego.* TO 'ultravr'@'localhost';//授權(quán)對(duì)lego數(shù)據(jù)庫(kù)有全部權(quán)限。
# mysql> flush privileges; //強(qiáng)制刷新內(nèi)存授權(quán)表。

對(duì)于ISO和VHD方式安裝的系統(tǒng)ultravr已經(jīng)創(chuàng)建,需要執(zhí)行下面的命令來加固:

# mysql -u root -p 
# mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'ultravr'@'localhost';// 收回對(duì)所有數(shù)據(jù)庫(kù)的全部權(quán)限。
# mysql> GRANT ALL ON lego.* TO 'ultravr'@'localhost';//授權(quán)對(duì)lego數(shù)據(jù)庫(kù)有全部權(quán)限。
# mysql> flush privileges; //強(qiáng)制刷新內(nèi)存授權(quán)表。

 

2 數(shù)據(jù)庫(kù)安全加固

請(qǐng)不要將mysql數(shù)據(jù)庫(kù)的權(quán)限賦給普通用戶,特別是mysql.user表保存了很多用戶敏感信息,建議只有管理員才有這張表的訪問等權(quán)限。

 

2 數(shù)據(jù)庫(kù)安全加固

如果還需要設(shè)置其他權(quán)限,請(qǐng)參考Mysql手冊(cè)關(guān)于GRANT的描述。需要注意的是FusionCloud UltraVR的正常運(yùn)行至少需要賬戶對(duì)lego數(shù)據(jù)庫(kù)添加表、刪除表、修改表、對(duì)表記錄的插入、刪除、修改以及執(zhí)行存儲(chǔ)過程權(quán)限。

回退方案

刪除新建用戶。

判斷依據(jù)

# mysql> show GRANTS FOR 'ultravr'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for ultravr@localhost                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ultravr'@'localhost' IDENTIFIED BY PASSWORD '*63DAA25989C7E01EB96570FA4DBE154711BEB361' |
| GRANT ALL PRIVILEGES ON `lego`.* TO 'ultravr'@'localhost'                                                      |
+----------------------------------------------------------------------------------------------------------------+

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★★

 2.5 關(guān)于默認(rèn)管理員用戶名的管理

實(shí)施目的

修改mysql的管理員默認(rèn)的管理員名稱,減少窮舉系統(tǒng)用戶的惡意行為成功性。

問題影響

mysql的管理員名稱是root,這一定程度上對(duì)系統(tǒng)用戶窮舉的惡意行為提供了便利,此時(shí)修改為復(fù)雜的用戶名,請(qǐng)不要在設(shè)定為admin或者administraror的形式,因?yàn)樗鼈円苍谝撞碌挠脩糇值渲小?/p>

系統(tǒng)當(dāng)前狀態(tài)

當(dāng)前管理員用戶為root。

實(shí)施步驟

# mysql -u root -p 
# mysql> use mysql;
# mysql> update user set user="newroot" where user="root"; //改成不易被猜測(cè)的用戶名 
# mysql> flush privileges;

回退方案

實(shí)施上述步驟,將管理員名稱更新成root。

判斷依據(jù)

使用root重新登錄Mysql,提示失??;使用修改后的用戶民登錄提示成功。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★

 2.6 用戶目錄權(quán)限限制

實(shí)施目的

默認(rèn)的mysql的數(shù)據(jù)庫(kù)文件在/var/lib/mysql目錄下,因此,必須保證該目錄不能讓未經(jīng)授權(quán)的用戶訪問后把數(shù)據(jù)庫(kù)打包拷貝走了,確保mysqld運(yùn)行時(shí),只使用對(duì)數(shù)據(jù)庫(kù)目錄具有讀或?qū)憴?quán)限的linux用戶來運(yùn)行。

問題影響

限制/var/lib/mysql目錄的訪問,保證數(shù)據(jù)安全性。

系統(tǒng)當(dāng)前狀態(tài)

記錄/var/lib/mysql當(dāng)前的權(quán)限。

實(shí)施步驟

Linux操作系統(tǒng):

# chown -R mysql.mysql /var/lib/mysql //確保數(shù)據(jù)庫(kù)目錄權(quán)限所屬mysql用戶
# chmod -R 700 /var/lib/mysql   //mysql主目錄給mysql用戶已讀、寫和執(zhí)行權(quán)限

回退方案

還原上述目錄權(quán)限到加固前。

判斷依據(jù)

Linux 下利用ls -l /var/lib | grep mysql查看權(quán)限。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★★

 2.7 命令歷史記錄保護(hù)

實(shí)施目的

數(shù)據(jù)庫(kù)相關(guān)的shell操作命令都會(huì)分別記錄在.bash_history,如果這些文件不慎被讀取,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)密碼和數(shù)據(jù)庫(kù)結(jié)構(gòu)等信息泄露,而登陸數(shù)據(jù)庫(kù)后的操作將記錄在.mysql_history文件中,如果使用update表信息來修改數(shù)據(jù)庫(kù)用戶密碼的話,也會(huì)被讀取密碼,因此需要?jiǎng)h除這兩個(gè)文件,同時(shí)在進(jìn)行登陸或備份數(shù)據(jù)庫(kù)等與密碼相關(guān)操作時(shí),應(yīng)該使用-p參數(shù)加入提示輸入密碼后,隱式輸入密碼,建議將以上文件置空。

問題影響

.bash_history和.mysql_history文件的不慎使用導(dǎo)致信息泄露。

系統(tǒng)當(dāng)前狀態(tài)

兩個(gè)文件記錄shell里面操作的命令信息。

實(shí)施步驟

找到.mysql_history和.bash_history文件所在位置。

#find / -name .bash_history
/root/.bash_history
 
#find / -name .mysql_history
/root/.mysql_history

如果有需要可以備份這兩個(gè)文件。

#cp /root/.bash_history /root/.bash_history.bak
#cp /root/.mysql_history /root/.mysql_history.bak

清空.bash_history和.mysql_history

# rm .bash_history .mysql_history  //刪除歷史記錄
# ln -s /dev/null .bash_history   //將shell記錄文件置空
# ln -s /dev/null .mysql_history  //將mysql記錄文件置空

回退方案

還原.bash_history和.mysql_history文件。

判斷依據(jù)

查看對(duì)應(yīng)的文件內(nèi)容。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.8 禁止用戶遠(yuǎn)程連接數(shù)據(jù)庫(kù)

實(shí)施目的

不允許高權(quán)限的用戶從遠(yuǎn)程訪問數(shù)據(jù)庫(kù),如果必要,可以將所有用戶置為僅本地訪問。

問題影響

允許高權(quán)限的用戶(如root)遠(yuǎn)程訪問數(shù)據(jù)庫(kù)會(huì)導(dǎo)致數(shù)據(jù)庫(kù)遭到網(wǎng)絡(luò)***的可能,而只允許本地訪問則可以通過操作系統(tǒng)的安全措施建立第一道攔截,減少數(shù)據(jù)庫(kù)被網(wǎng)絡(luò)***的風(fēng)險(xiǎn)。

系統(tǒng)當(dāng)前狀態(tài)

默認(rèn)root可以遠(yuǎn)程連接數(shù)據(jù)庫(kù)。

實(shí)施步驟

禁止root賬戶遠(yuǎn)程訪問數(shù)據(jù)庫(kù)。

# mysql -u root -p 
# mysql> use mysql;
# mysql> delete from user where user='root' and host<>'localhost';
# mysql> delete from user where user='ultravr' and host<>'localhost';
# mysql> flush privileges;

回退方案

將user表還原到加固前的狀態(tài)。

判斷依據(jù)

遠(yuǎn)程使用root連接時(shí),無法訪問,提示訪問被拒絕。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.9 禁止MySQL對(duì)本地文件存取

實(shí)施目的

在mysql中,提供對(duì)本地文件的讀取,使用的是load data local infile命令,默認(rèn)在5.0版本中,該選項(xiàng)是默認(rèn)打開的,網(wǎng)絡(luò)上流傳的一些***方法中就有用它LOAD DATA LOCAL INFILE的,同時(shí)它也是很多新發(fā)現(xiàn)的SQL Injection***利用的手段。

問題影響

本地文件的讀取默認(rèn)打開,使用load data local infile命令會(huì)把本地文件讀到數(shù)據(jù)庫(kù)中,然后用戶就可以非法獲取敏感信息。不需要讀取本地文件,請(qǐng)務(wù)必關(guān)閉。應(yīng)該禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。

系統(tǒng)當(dāng)前狀態(tài)

默認(rèn)開啟對(duì)本地文件的讀取。

實(shí)施步驟

方法1:在my.cnf中為[mysqld]添加local-infile=0。

方法2:在啟動(dòng)MySQL時(shí)加入?yún)?shù)local-infile=0。

#mysqld_safe -user=mysql -local-infile=0 &

2 數(shù)據(jù)庫(kù)安全加固

-local-infile=0選項(xiàng)啟動(dòng)mysqld從服務(wù)器端禁用所有LOAD DATA LOCAL命令,假如需要獲取本地文件,需要打開,但是建議關(guān)閉。

回退方案

還原my.cnf到加固前的狀態(tài)。

判斷依據(jù)

#mysql> use mysql;

#mysql> load data local infile 'sqlfile.txt' into table users fields terminated by ',';
#ERROR 1148 (42000): The used command is not allowed with this MySQL version

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.10 MySQL服務(wù)器權(quán)限控制

實(shí)施目的

MySQL權(quán)限系統(tǒng)的主要功能是證實(shí)連接到一臺(tái)給定主機(jī)的用戶,并且賦予該用戶在數(shù)據(jù)庫(kù)上的SELECT、INSERT、UPDATE和DELETE等權(quán)限(詳見user超級(jí)用戶表)。還可對(duì)MySQL特定的功能例如LOAD DATA INFILE進(jìn)行授權(quán)及管理操作的能力。

問題影響

管理員可以對(duì)user,db,host等表進(jìn)行配置,來控制用戶的訪問權(quán)限,而user表權(quán)限是超級(jí)用戶權(quán)限。只把user表的權(quán)限授予超級(jí)用戶如服務(wù)器或數(shù)據(jù)庫(kù)主管是明智的。對(duì)其他用戶,你應(yīng)該把在user表中的權(quán)限設(shè)成’N'并且僅在特定數(shù)據(jù)庫(kù)的基礎(chǔ)上授權(quán)。你可以為特定的數(shù)據(jù)庫(kù)、表或列授權(quán),F(xiàn)ILE權(quán)限給予你用LOAD DATA INFILE和SELECT … INTO OUTFILE語(yǔ)句讀和寫服務(wù)器上的文件,任何被授予FILE權(quán)限的用戶都能讀或?qū)慚ySQL服務(wù)器能讀或?qū)懙娜魏挝募?說明用戶可以讀任何數(shù)據(jù)庫(kù)目錄下的文件,因?yàn)榉?wù)器可以訪問這些文件)。

系統(tǒng)當(dāng)前狀態(tài)

記錄sqlfile.txt、user信息。

實(shí)施步驟

FILE權(quán)限允許用戶在MySQL服務(wù)器具有寫權(quán)限的目錄下創(chuàng)建新文件,但不能覆蓋已有文件在user表的File_priv設(shè)置Y或N。所以當(dāng)你不需要對(duì)服務(wù)器文件讀取時(shí),請(qǐng)關(guān)閉該權(quán)限。

# mysql -u root -p 
# mysql> use mysql;
# mysql> update user set File_priv='N'  where user='root'; //禁止讀取權(quán)限
# mysql> update user set File_priv='N'  where user='ultravr'; //禁止讀取權(quán)限
# mysql> flush privileges;

回退方案

還原到加固前的狀態(tài)。

判斷依據(jù)

# mysql -u root -p 
# mysql> use mysql;

#mysql> load data infile 'sqlfile.txt' into table user fields terminated by ','; //重登陸讀取文件
#ERROR 1045 (28000): Access denied for user 'notroot'@'localhost' (using password: YES) //失敗
# mysql> select * from user into outfile 'test.txt' fields terminated by ',';
ERROR 1045 (28000): Access denied for user ‘notroot’@'localhost’ (using password: YES)

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.11 開啟MySQL錯(cuò)誤日志

實(shí)施目的

開啟Mysql錯(cuò)誤日志可以提高檢測(cè)出惡意訪問的能力。

實(shí)施步驟

登陸Mysql后

# mysql>show variables like 'log_%'; 
+---------------------------------+---------------------------------------+
| Variable_name                   | Value                                 |
+---------------------------------+---------------------------------------+
| log_bin                         | ON                                    |
| log_bin_trust_function_creators | OFF                                   |
| log_error                       | /var/lib/mysql/linux-vrserver-02.err |
| log_output                      | FILE                                  |
| log_queries_not_using_indexes   | OFF                                   |
| log_slave_updates               | OFF                                   |
| log_slow_queries                | OFF                                   |
| log_warnings                    | 1                                     |

查看log_error是否有記錄,Value即為日志位置。

如果Value為OFF,則請(qǐng)?jiān)趍y.cnf的[mysqld]下增加一行:

log-error=log_path/error.log

然后重啟數(shù)據(jù)庫(kù)。

回退方案

還原my.cnf到加固前的狀態(tài)。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.12 數(shù)據(jù)庫(kù)備份策略

實(shí)施目的

建議使用FusionCloud UltraVR提供的備份配置數(shù)據(jù)功能對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。

實(shí)施步驟

登錄FusionCloud UltraVR系統(tǒng),進(jìn)入管理 -> 備份配置數(shù)據(jù) 頁(yè)面進(jìn)行配置。詳細(xì)操作參考幫助系統(tǒng)。

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

 2.13 Mysqld安全相關(guān)啟動(dòng)選項(xiàng)

實(shí)施目的

在MySQL啟動(dòng)時(shí)可以指定一些安全相關(guān)的參數(shù),這些參數(shù)會(huì)對(duì)系統(tǒng)的安全產(chǎn)生重要的影響。本章節(jié)就這些安全相關(guān)的參數(shù)進(jìn)行說明。用戶啟動(dòng)MySQL時(shí)可以根據(jù)自身需要進(jìn)行選擇。

實(shí)施步驟

在my.cnf中添加相應(yīng)的啟動(dòng)選項(xiàng):

--local-infile[={0|1}]

如果用local-infile=0啟動(dòng)服務(wù)器,則客戶端不能使用LOCAL IN LOAD DATA語(yǔ)句。

 

2 數(shù)據(jù)庫(kù)安全加固

LOCAL IN LOAD DATA的安全隱患請(qǐng)參考本文2.9節(jié)。建議使用local-infile=0啟動(dòng)服務(wù)器。

--old-passwords

強(qiáng)制服務(wù)器為新密碼生成短(pre-4.1)密碼哈希。當(dāng)服務(wù)器必須支持舊版本客戶端程序時(shí),為了保證兼容性這很有用。但是如果不考慮持舊版本客戶端程序時(shí)請(qǐng)不要啟用該選項(xiàng)。

--safe-user-create

如果啟用,用戶不能用GRANT語(yǔ)句創(chuàng)建新用戶,除非用戶有mysql.user表的INSERT權(quán)限。如果你想讓用戶具有授權(quán)權(quán)限來創(chuàng)建新用戶,你應(yīng)給用戶授予下面的權(quán)限:

mysql> GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';

這樣確保用戶不能直接更改權(quán)限列,必須使用GRANT語(yǔ)句給其它用戶授予該權(quán)限。

--secure-auth

不允許鑒定有舊(pre-4.1)密碼的賬戶。

--skip-symbolic-links

建議開啟此選項(xiàng)禁用have_symlink(符號(hào)鏈接)屬性。

 

實(shí)施風(fēng)險(xiǎn)

重要等級(jí)

★★★

分享題目:2數(shù)據(jù)庫(kù)安全加固
當(dāng)前地址:http://bm7419.com/article14/ipopge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、App開發(fā)、外貿(mào)建站建站公司、服務(wù)器托管、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)