91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql數據庫的安全配置方法是什么

發布時間:2021-12-04 11:40:37 來源:億速云 閱讀:269 作者:iii 欄目:數據安全

本篇內容主要講解“Mysql數據庫的安全配置方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Mysql數據庫的安全配置方法是什么”吧!

一、安全配置項

1、確保數據文件在非系統分區:

操作系統上有明確的系統分區和非系統分區。如果數據文件在系統分區,會

提高整個系統因為磁盤空間用盡發生拒絕服務的幾率。

1)進入數據庫執行下列語句

show variables where variable_name = 'datadir'

如果發現結果中存在/ /var /usr 說明數據文件在系統分區建議換區

Mysql數據庫的安全配置方法是什么

2、確保 mysql 操作系統賬號權限最小化:

mysql 在操作系統上的賬號權限最小化有助于減小 mysql 數據庫漏洞造成

的影響;

假設 mysql 賬號為 mysql 執行 ps -ef | egrep "^mysql.*$"命令

如果沒有返回行,則權限存在問題。

Mysql數據庫的安全配置方法是什么

3、禁止 mysql 鏈接歷史記錄:

mysql 會把客戶端登陸的交互執行記錄保存在.mysql_history 文件中,該記錄有可能會暴露登陸過程中的敏感信息,建議刪除,檢查.mysql_history 文件是否存在(默認在home 下)執行命令 find /home -name ".mysql_history"如果有返回行說明存在建議刪除

Mysql數據庫的安全配置方法是什么

4、禁止 MYSQL_PWD 的使用:

MYSQL_PWD 是一種用于明文形式存儲 mysql 密碼的環境變量,檢查 MYSQL_PWD 環境變量是否存在于某個進程中執行命令 grep MYSQL_PWD /proc/*/environ如果有返回行說明那個進程使用了 MYSQL_PWD 環境變量

Mysql數據庫的安全配置方法是什么

5、禁止 MYSQL 操作系統賬號登陸:

Mysql 的操作做系統賬號在安裝完數據庫后,不應該有其他用途,建議禁止該賬號登陸操作系統,假設 mysql 數據庫操作系統賬號就是 Mysql 執行下列命令 getent passwd mysql | egrep "^.*[ \ /bin\ / false| \ / sbin \ / nologin]$",如果沒有返回行則說明存在安全隱患。

Mysql數據庫的安全配置方法是什么

6、禁止 MYSQL 使用默認端口:

如果返回是 3306,則說明需要修改端口;執行 sql 確認端口show global variables like 'port';

Mysql數據庫的安全配置方法是什么

二、文件系統權限安全配置

1、確保數據文件最小權限:

執行 sql 定位數據文件地址

show variables where variable_name = 'datadir';

檢查路徑權限是否符合最小權限原則

ls -l /.. | egrep "^d[r|w|x]{3}------\s*.\s*mysql\s*mysql\s*\d*.*mysql"

Mysql數據庫的安全配置方法是什么

2、確保 log_bin_basename 文件最小權限:

執行 sql 定位日志文件地址 show variables like 'log_bin_basename';日志文件的權限是 660 屬于 mysql

Mysql數據庫的安全配置方法是什么

3、確保 log_error 文件最小權限:

執行 sql 定位日志文件地址 show global variables like 'log_error';

Mysql數據庫的安全配置方法是什么

4、 確保 slow_query_log 文件最小權限:

執行 sql 定位日志文件地址 show variables like 'slow_query_log_file';

Mysql數據庫的安全配置方法是什么

5 、確保 relay_log_basename 文件最小權限:

執行 sql 定位日志文件地址  show variables like 'relay_log_basename';

Mysql數據庫的安全配置方法是什么

6、 確保 general_log_file 文件最小權限:

執行 sql 定位日志文件地址  show variables like 'general_log_file';

Mysql數據庫的安全配置方法是什么

7 、確保密鑰文件最小權限:

1.執行 sql 定位密鑰文件地址

show variables where variable_name = 'ssl_key';

2.檢查路徑權限是否符合最小權限原則

ls -l | egrep "^-r--------[ \t]*.[ \t]*mysql[ \t]*mysql.*$"

如果沒有返回行,則說明存在安全問題

Mysql數據庫的安全配置方法是什么

Mysql數據庫的安全配置方法是什么

8 、確保插件目錄最小權限:

1.執行 sql 定位插件目錄地址

show variables where variable_name = 'plugin_dir';

2.檢查路徑權限是否符合最小權限原則

ls -l /.. | egrep "^drwxr[-w]xr[-w]x[ \t]*[0-9][ \t]*mysql[ \t]*mysql.*plugin.*$"

Mysql數據庫的安全配置方法是什么

三、Mysql 基本安全配置

1、 確保使用最新版 mysql 數據庫:

執行 sql 檢查數據庫版本  SHOW VARIABLES WHERE Variable_name LIKE "version";

Mysql數據庫的安全配置方法是什么

2、修改 root 用戶名:

檢查數據庫是否有默認用戶 root,執行命令:SELECT user from mysql.user where user='root;  如果有返回行則需要修改;

Mysql數據庫的安全配置方法是什么

3、確保樣例數據庫刪除:

樣例數據庫可以被所有數據庫用戶訪問,并且可以用來消耗系統資源刪除樣例庫可以減少攻擊面;

檢查數據庫是否存在樣例庫執行 sql命令 SHOW DATABASES LIKE 'test';

Mysql數據庫的安全配置方法是什么

4、禁用 local_infile:

以阻止黑客利用 sql 注入來讀取數據庫文件,檢查參數狀態執行命令:

SHOW VARIABLES WHERE Variable_name = 'local_infile';如果返回值不是 off,則存在安全問題

Mysql數據庫的安全配置方法是什么

5、確保 skip-symbolic-links 開啟:

開啟 skip-symbolic-links 可以禁止數據庫用戶刪除或重名數據文件目錄之外的文件,檢查參數狀態執行命令:

SHOW variables LIKE 'have_symlink';

Mysql數據庫的安全配置方法是什么

6、確保插件 daemon_memcached 被禁用:

任何人可以利用 daemon_memcached 來訪問或修改一部分數據,給數據庫造成信息泄漏的隱患。

檢查參數狀態執行命令:SELECT * FROM information_schema.plugins WHERE

PLUGIN_NAME='daemon_memcached';如果有返回行數說明有插件,需要刪除

Mysql數據庫的安全配置方法是什么

7、確保 secure_file_priv 不是空:

secure_file_priv 限制客戶端可以讀取數據文件的路徑,secure_file_priv

設置合理的值可以有效降低 sql 注入后黑客讀取數據庫數據的可能性。

檢查參數狀態執行如下命令:SHOW GLOBAL VARIABLES WHERE Variable_name =

'secure_file_priv' AND Value<>'';如果有返回內容說明安全,否則需要修復;

Mysql數據庫的安全配置方法是什么

8、確保 sql_mode STRICT_ALL_TABLES 模式:

sql_mode 模式有三種,STRICT_TRANS_TABLES 是其中一種模式。

STRICT_TRANS_TABLES 模式會檢查所有更新的數據

檢查參數狀態執行命令:SHOW VARIABLES LIKE 'sql_mode';

如果有返回的是 STRICT_TRANS_TABLES 說明安全,否則需要修復;

Mysql數據庫的安全配置方法是什么

9、確保 disconnect_on_expired_password 參數是 ON:

disconnect_on_expired_password 是用來控制客戶端用失效密碼來訪問

數據庫的,關閉這個參數會給數據庫帶來安全風險。

檢查參數狀態執行命令:SHOW GLOBAL VARIABLES like 'disconnect_on_expired_password';

如果有返回的是 ON 說明安全,否則需要修復

Mysql數據庫的安全配置方法是什么

四、Mysql 權限安全配置

1 、確保只有管理員賬號有所有數據庫的訪問權限:

執行命令:

SELECT user, host FROM mysql.user WHERE (Select_priv = 'Y') OR

(Insert_priv = 'Y') OR (Update_priv = 'Y') OR (Delete_priv = 'Y') OR (Create_priv = 'Y')

OR (Drop_priv = 'Y');

如果返回的都是管理員賬號說明安全,否則需要對用戶清除權限;

Mysql數據庫的安全配置方法是什么

2、非管理員賬號 file_priv 不應該設置成 Y

File_priv 權限允許 mysql 用戶對磁盤進行讀寫操作,執行命令:

select user, host from mysql.user where File_priv = 'Y'; 如果返回的都是管理員賬號,否則需要對用戶清除權限;Mysql數據庫的安全配置方法是什么

3、非管理員賬號 process_priv 不應該設置成 Y

process_priv 權限允許委托賬號查看當前正在執行的 sql 語句,使用超越

當前用戶權限的權利,可以被攻擊者所利用。執行命令:

select user, host from mysql.user where Process_priv = 'Y'; 如果返回的都是管理員賬號則是安全的,否則需要對用戶清除權限;

Mysql數據庫的安全配置方法是什么

(同上)非管理員賬號 super_priv 不應該設置成 Y,非管理員賬號 shutdown_priv 不應該設置成 Y,

非管理員賬號 create_user_priv 不應該設置成 Y,非管理員賬號 grant_priv 不應該設置成 Y,

非管理員賬號 reload_priv 不應該設置成 Y,非管理員賬號 repl_slave_priv 不應該設置成 Y;

4、確保 DML/DDL 權限只在特定用戶手上:

執行sql命令:

SELECT User,Host,Db FROM mysql.db WHERE Select_priv='Y' OR

Insert_priv='Y' OR Update_priv='Y' OR Delete_priv='Y' OR Create_priv='Y' OR

Drop_priv='Y' OR Alter_priv='Y';

如果返回的都是管理員賬號,否則需要對用戶清除權限

Mysql數據庫的安全配置方法是什么

五、審計和日志安全配置

1、 確保 log_error 日志啟動:

啟用錯誤日志有可能會增加檢測到針對 mysql 的惡意攻擊行為機會,執行命令:

SHOW variables LIKE 'log_error';   如果返回是空否,則存在安全問題需要修復

Mysql數據庫的安全配置方法是什么

2、 確保日志文件在非系統分區:

操作系統上有明確的系統分區和非系統分區,如果日志文件在系統分區,會提高整個系統因為磁盤空間用盡發生拒絕服務的幾率;進入數據庫執行命令:SELECT @@global.log_bin_basename;

Mysql數據庫的安全配置方法是什么

3、確保 log_warnings 被設置成 2:

log_warnings 適用于決定日志中記錄的內容的,默認是 1 隨著級別的調整會記錄更多信息,調整到 2 有助于通過日志追查安全問題;執行命令:SHOW GLOBAL VARIABLES LIKE 'log_warnings';

Mysql數據庫的安全配置方法是什么

六、身份認證安全配置

1、確保 sql_mode 中含有 NO_AUTO_CREATE_USER:

NO_AUTO_CREATE_USER 是 sql_mode 的一個選項,可以阻止 grant 語

句在特定情況下自動創建用戶;執行命令:SELECT @@session.sql_mode;

Mysql數據庫的安全配置方法是什么

2、確保沒有用戶使用空密碼

如果密碼被設置成空密碼,入侵者只要知道密碼和主機允許列表,就可以繞

過身份驗證隨意登錄數據庫;執行命令:

SELECT User,host FROM mysql.user WHERE authentication_string=''; 沒有行數返回說明安全,否則需要配置;

Mysql數據庫的安全配置方法是什么

3、確保 default_password_lifetimes 少于或等于 90

密碼需要定期更換,才有意義,也才能更有效的防止黑客破解;執行命令:

SHOW VARIABLES LIKE 'default_password_lifetime';

看返回值和 90 的關系如果大于 90 就需要修復

Mysql數據庫的安全配置方法是什么

4、 確保用戶不允許所有 ip 訪問

某一數據庫用戶支持所有 ip 訪問,一旦賬號密碼泄露,數據庫就變得很不安全,執行命令:

SELECT user, host FROM mysql.user WHERE host = '%'; 結果集為空說明不存在問題,否則需要修復

Mysql數據庫的安全配置方法是什么

5、確保無匿名帳戶存在

匿名用戶是空的,也沒有密碼,安全性很差,任意人員都可以利用匿名用戶

訪問數據庫,執行命令: SELECT user,host FROM mysql.user WHERE user = '';

結果集為空說明不存在問題,否則需要修復;

Mysql數據庫的安全配置方法是什么

七、網絡安全配置

1、確保 have_ssl 設置成 yes:

所有網絡請求必須走 SSL/TLS 訪問數據庫,執行命令:SHOW variables WHERE variable_name = 'have_ssl';

返回 yes 不存在問題,否則需要修復;

Mysql數據庫的安全配置方法是什么

2 、確保 ssl_type 'ANY', 'X509', or 'SPECIFIED':

所有網絡請求必須走 SSL/TLS 訪問數據庫。SSL 提供多種算法,其中一些算法安全性并不高不能幫助用戶杜絕網絡劫持和網絡攔截。建議設置 ssl_type 為高安全類型的加密算法。但這其中有一個隱患,如果客戶端使用較低加密算法,會由于算法無法匹配導致鏈接失敗,執行命令:

SELECT user, host, ssl_type FROM mysql.user WHERE NOT HOST IN ('::1', '127.0.0.1', 'localhost');

確保每個用戶返回的 ssl_type 等于 ANY, X509, or SPECIFIED;

Mysql數據庫的安全配置方法是什么

八、復制數據傳輸中的安全配置

1 、確保 MASTER_SSL_VERIFY_SERVER_CERT 設置成 yes 1:

Mysql數據庫的安全配置方法是什么

2、確保 master_info_repository 設置成 table:

master_info_repository 設置成 table.客戶端使用的密碼存儲在表中,相較于文件系

統表中更為安全執行命令:SHOW GLOBAL VARIABLES LIKE 'master_info_repository';

master_info_repository 返回是 table,否則需要修復,修復建議:打開配置文件

set the master_info_repository value to TABLE;

Mysql數據庫的安全配置方法是什么

到此,相信大家對“Mysql數據庫的安全配置方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴里| 兴文县| 奉节县| 东光县| 饶阳县| 三江| 醴陵市| 平湖市| 长阳| 闽清县| 本溪| 牡丹江市| 大埔县| 西乌| 秀山| 荃湾区| 通榆县| 鹤壁市| 当阳市| 荔浦县| 叙永县| 平原县| 勃利县| 松江区| 阿荣旗| 乌审旗| 山阳县| 大理市| 永嘉县| 陵川县| 元谋县| 炎陵县| 宽城| 长沙县| 苗栗县| 剑阁县| 巴彦县| 甘德县| 湖州市| 成都市| 奎屯市|