首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL伺服器內部安全:保護資料目錄免受本地攻擊

     編輯:MySQL 資料庫相關知識

身為MySQL管理員,維護資料庫安裝的安全性與完整性至關重要。本文深入探討內部安全性——即檔案系統層面的防護,防止擁有伺服器主機帳號的用戶(無論合法或竊取)對MySQL資料目錄發動攻擊。

為何內部安全性不可忽視

MySQL透過授權表提供靈活的權限系統,可控制網路層面的客戶端存取。然而,若主機上的其他用戶擁有對資料目錄的直接存取權,網路層面的防護便形同虛設。除非你是該主機唯一的登入用戶,否則必須防範其他用戶存取資料目錄的可能性。

需保護的關鍵資產

  • 資料庫檔案:維護資料機密性與專有性,避免因目錄權限不當導致洩露。
  • 日誌檔案:一般查詢日誌與更新日誌包含完整SQL語句,甚至記錄GRANT、SET PASSWORD等敏感操作中的明文密碼。攻擊者若具讀取權限,僅需grep即可竊取憑證。

資料目錄權限不當的風險示範

若表檔案可讀,攻擊者可在同一主機上啟動一個「特製」MySQL伺服器(不同埠、Socket、資料目錄),將目標表檔案複製至其test資料庫目錄,隨即以SHOW TABLES與SELECT *讀取完整內容。若再開放匿名帳號,更可將竊取資料公開給全世界。

檢查與修正權限的實作步驟

  1. 定位資料目錄:cd DATADIR
  2. 設定擁有者(需root權限):將所有檔案擁有者設為運行MySQL的帳號(如mysqladm:mysqlgrp)
    # chown -R mysqladm:mysqlgrp .
    # find . -follow -type d -print | xargs chown mysqladm:mysqlgrp
  3. 移除群組與他人權限:使目錄僅對mysqladm可讀
    % chmod -R go-rwx .
    % find . -follow -type d -print | xargs chmod go-rwx
  4. 以專用帳號運行伺服器:確保MySQL進程始終以mysqladm身份執行。

修正後的權限範例

drwx------  2 mysqladm mysqlgrp  512 Jan 25 20:40 mysql
drwx------  2 mysqladm mysqlgrp 1536 May  6 06:11 test
drwx------  2 mysqladm mysqlgrp 1024 May  8 18:43 tmp

透過UNIX檔案系統原生的權限機制,將資料目錄鎖定為僅供MySQL服務帳號存取,是內部安全性的核心防線。搭配外部網路層面的授權表管控,方能構建完整的MySQL安全防禦體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved