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

MySQL 安全強化全景指南:密碼傳輸加密、最小權限、root 禁用、審計與防火牆纵深防禦

     編輯:MySQL 資料庫相關知識

傳輸層加密

  • 密碼傳輸:4.1.1+ 採用雜湊挑戰-回應,不傳輸明文密碼。
  • 資料傳輸:預設明文。敏感環境必須啟用:

壓縮協議 --compress 僅混淆,非加密,不可替代 TLS。

帳號與權限基線

方案適用場景配置複雜度
SSL/TLS (MySQL 內建)跨網段、雲資料庫、合規要求中 (需憑證管理)
SSH Tunnel運維連線、跨機房、簡易部署低
VPN/私有網路企業內網、K8s Pod 網路基礎設施層
原則具體執行
全員強制密碼ALTER USER 'user'@'host' IDENTIFIED BY 'strong_pwd'; 定期輪換
禁止 root 遠端DELETE FROM mysql.user WHERE User='root' AND Host!='localhost'; FLUSH PRIVILEGES;
匿名帳號清理DROP USER ''@'%'; DROP USER ''@'localhost';
測試庫移除DROP DATABASE test; DELETE FROM mysql.db WHERE Db LIKE 'test%';
應用帳號最小權限僅 SELECT/INSERT/UPDATE/DELETE 業務庫,無 DROP/ALTER/GRANT
FILE 權限極嚴控僅備份/匯入帳號持有,防 LOAD_FILE('/etc/passwd')
PROCESS/SUPER 僅 DBA防查看他人查詢文本、修改全域變數、控制複寫
連線數配額GRANT ... WITH MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 10

作業系統層面

  • 專用 mysql 使用者:useradd -r -s /sbin/nologin mysql,chown -R mysql:mysql /var/lib/mysql。
  • systemd User=mysql:啟動即以非 root 身分運行。
  • 禁用符號連結:--skip-symbolic-links (MyISAM) / innodb_file_per_table 避免目錄遍歷。
  • 資料目錄 ACL:僅 mysql 使用者 + systemd 服務帳號可讀寫。

網路層面

  • bind-address = 10.0.0.10 (僅內網管理 IP)。
  • 防火牆:iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 3306 -j ACCEPT,其餘 DROP。
  • 不信任 DNS:權限表僅用 IP,啟用 skip-name-resolve。

審計與監控

  • MariaDB Audit Plugin / MySQL Enterprise Audit:記錄所有連線、查詢、DDL、錯誤。
  • 一般查詢日誌:general_log=ON (僅審計期啟用,高負載影響效能)。
  • 慢查詢日誌:slow_query_log=1、long_query_time=1、log_queries_not_using_indexes=1。
  • 錯誤日誌:log_error=/var/log/mysql/error.log、log_warnings=2 (記錄 Aborted 連線)。

應用層防注入

  • 參數化查詢 / Prepared Statements (唯一根治 SQLi)。
  • ORM 內建防護 (Hibernate/Entity Framework/Django ORM/SQLAlchemy)。
  • 輸入驗證:白名單字元集、長度限制、型別強制轉換。
  • WAF (ModSecurity + OWASP CRS) 作為第二道防線。

事件響應預案

  1. 發現異常 → 隔離受影響帳號/IP (RENAME USER/FLUSH HOSTS/防火牆封禁)。
  2. 保全日誌 (二進制日誌、審計日誌、錯誤日誌)。
  3. 研判影響範圍 (資料外洩/竄改/刪除)。
  4. 從備份恢復 (PITR: mysqlbinlog --stop-datetime)。
  5. 事後複盤、修補根因、更新基線。

結語

MySQL 安全非單一設定,而是傳輸/帳號/OS/網路/審計/應用/響應七層纵深體系。將基線編碼為 IaC (Ansible/Terraform/Helm),納入 CI/CD 掃描門檻,定期紅隊演練,方能構建可信賴的資料庫安全態勢。

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