歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

等保測評2.0:MySQL身份鑒別(下)

來源:本站整理 作者:佚名 時間:2020-03-17 TAG: 我要投稿

1. 說明
本篇文章主要說一下MySQL數據中身份鑒別控制點中b、c、d測評項的相關知識點和理解。
等保測評2.0:MySQL身份鑒別(上)
2. 測評項
b)應具有登錄失敗處理功能,應配置并啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施;
 c)當進行遠程管理時,應采取必要措施防止鑒別信息在網絡傳輸過程中被竊聽;
d)應采用口令、密碼技術、生物技術等兩種或兩種以上組合的鑒別技術對用戶進行身份鑒別,且其中一種鑒別技術至少應使用密碼技術來實現。
3. 測評項b
b)應具有登錄失敗處理功能,應配置并啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施;
3.1. 登錄失敗功能1
對于登錄失敗功能,先說一說初級教程里的參數:max_connect_errors:

這里的參數其實和我們想要的功能有差別,根據測評項,需要的是輸入口令失敗次數過多后鎖定相應賬戶的功能。
max_connect_errors從表面說明看來,好像是這樣。
但我自己在本地進行測試后,發現當口令錯誤次數超過max_connect_errors的值后,仍可以登錄數據庫。
根據網上的說明,max_connect_errors所指的“請求沒有成功的建立就斷開了”,其實是指由網絡因素導致的連接失敗。
在客戶端與MySQL進行連接時,會首先發起三次握手協議,在這個期間,有一個超時時間,如果網絡超時超過該時間,這次連接就無法正常建立,這個失敗次數會計入host_cache表中的SUM_CONNECT_ERRORS字段中,當SUM_CONNECT_ERRORS超過限定值max_connect_errors時,就會阻止該主機的所有請求了。
而因為輸入口令錯誤導致的連接錯誤,不會計入SUM_CONNECT_ERRORS中,也就不會達到我們想要的效果了。

關于max_connect_errors的詳細說明,可以看一看這篇文章:MySQL參數max_connect_errors分析釋疑
3.2. 登錄失敗功能2
可以使用插件CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS共同實現。
使用下列語句查詢插件:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'connection%';
+------------------------------------------+---------------+
| PLUGIN_NAME                              | PLUGIN_STATUS |
+------------------------------------------+---------------+
| CONNECTION_CONTROL                       | ACTIVE        |
| CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | ACTIVE        |
+------------------------------------------+---------------+
然后是它的相關參數值:
show variables like '%connection_control%';

參數解釋如下:
connection_control_failed_connections_threshold:在服務器增加后續連接嘗試的延遲之前,允許客戶端進行的連續失敗連接嘗試的次數。
connection_control_min_connection_delay:對于超出閾值的每個連續連接失敗,要添加的延遲量。
connection_control_max_connection_delay:要添加的最大延遲。
上述參數中,關于時間參數的單位是毫秒,其作用如下:
例如,使用默認值 connection_control_failed_connections_threshold 和 connection_control_min_connection_delay 值分別為3和1000,客戶端的前三個連續失敗連接嘗試沒有延遲,第四次失敗嘗試沒有1000毫秒的延遲,第五次失敗嘗試有2000毫秒的延遲,依此類推,直到允許的最大延遲 connection_control_max_connection_delay。
具體可以參看官方說明:連接控制插件的安裝
這里說一點,兩個插件要都處于啟用狀態才能實現效果:
可以安裝一個插件而不安裝另一個插件,但是必須安裝兩個插件才能完全控制連接。特別是,僅安裝 CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS 插件沒什么用,因為如果沒有 CONNECTION_CONTROL插件提供填充CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS 表的數據,那么 從表中進行的檢索將始終為空。
3.3. 超時功能
在初級教程中,說的是wait_timeout參數,這個參數的單位是秒,默認值是28880。
這個超時時間,指的是某個和數據庫的連接,在限制時間內沒有發起任何請求,這個連接就會被清理掉。
但實際上相關的參數是兩個,從官方文檔上來看,interactive_timeout和wait_timeout是一樣的,都是指不活躍的連接超時時間,連接線程啟動的時候wait_timeout會根據是交互模式還是非交互模式被設置為這兩個值中的一個。
交互式操作:通俗的說,就是你在你的本機上打開mysql的客戶端,就是那個黑窗口,在黑窗口下進行各種sql操作,當然走的肯定是tcp協議。
非交互式操作:就是你在你的項目中進行程序調用。比如一邊是tomcat web服務器

[1] [2] [3]  下一頁

【聲明】:黑吧安全網(http://www.www.hfjixin.com)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱admin@www.hfjixin.com,我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        百度 好搜 搜狗

        警告:本站禁止未滿18周歲訪客瀏覽,如果當地法律禁止請自覺離開本站!收藏本站:請使用Ctrl+D進行收藏