日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL安全策略

發布時間:2024/9/19 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL安全策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據是企業核心資產,數據對企業而言是最重要的工作之一。稍有不慎,極有可能發生數據無意泄露,甚至被黑客惡意竊取的風險。每年業界都會傳出幾起大事件,某知名或不知名的公司被脫褲(拖庫的諧音,意思是整個數據庫被黑客盜取)之類的。

從數據安全上也可以分為外網安全及內部操作安全,下面分別討論一下。

內部操作安全策略

1. 是否回收DBA全部權限

試想,如果DBA沒權限了,日常DB運維的活,以及緊急故障處理,該怎么實施呢?因此,建議在沒有成熟的自動化運維平臺前,不應該粗暴的回收DBA的太多權限,否則可能會導致工作效率降低的,甚至DBA有一種不被信任的負面情緒。

2. MySQL層安全策略

  • 業務帳號最多只可以通過內網遠程登錄,而不能通過公網遠程連接。
  • 增加運維平臺賬號,該賬號允許從專用的管理平臺服務器遠程連接。當然了,要對管理平臺部署所在服務器做好安全措施以及必要的安全審計策略。
  • 建議啟用數據庫審計功能。這需要使用MySQL企業版,或者Percona/MariaDB分支版本,MySQL社區版本不支持該功能。
  • 啟用 safe-update 選項,避免沒有 WHERE 條件的全表數據被修改;
  • 在應用中盡量不直接DELETE刪除數據,而是設置一個標志位就好了。需要真正刪除時,交由DBA先備份后再物理刪除,避免誤操作刪除全部數據。
  • 還可以采用觸發器來做一些輔助功能,比如防止黑客惡意篡改數據。

3. MySQL賬號權限規則

  • 業務帳號,權限最小化,堅決不允許DROP、TRUNCATE權限。
  • 業務賬號默認只授予普通的DML所需權限,也就是select、update、insert、delete、execute等幾個權限,其余不給。
  • MySQL初始化后,先行刪除無用賬號,刪除匿名test數據庫

mysql> delete from mysql.user where user!='root' or host!='localhost'; flush privileges; mysql> drop database test;

  • 創建備份專用賬號,只有SELECT權限,且只允許本機可登入。
  • 設置MySQL賬號的密碼安全策略,包括長度、復雜性。

4. 關于數據備份

記住,做好數據全量備份是系統崩潰無法修復時的最后一概救命稻草。

備份數據還可以用來做數據審計或是用于數據倉庫的數據源拉取之用。

一般來說,備份策略是這樣的:每天一次全備,并且定期對binlog做增備,或者直接利用binlog server機制將binlog傳輸到其他遠程主機上。有了全備+binlog,就可以按需恢復到任何時間點。

特別提醒:當采用xtrabackup的流式備份時,考慮采用加密傳輸,避免備份數據被惡意截取。

?

外網安全策略

事實上,操作系統安及應用安全要比數據庫自身的安全策略更重要。同理,應用程序及其所在的服務器端的系統安全也很重要,很多數據安全事件,都是通過代碼漏洞入侵到應用服務器,再去探測數據庫,最后成功拖庫。

1. 操作系統安全建議

  • 運行MySQL的Linux必須只運行在內部網絡,不允許直接對公網暴露,實在有需要從公網連接的話,再通過跳板機做端口轉發,并且如上面所述,要嚴格限制數據庫賬號權限級別。
  • 系統賬號都改成基于ssh key認證,不允許遠程密碼登入,且ssh key的算法、長度有要求以確保相對安全。這樣就沒有密碼丟失的風險,除非個人的私鑰被盜。
  • 進一步的話,甚至可以對全部服務器啟用PAM認證,做到賬號的統一管理,也更方便、安全。
  • 關閉不必要的系統服務,只開必須的進程,例如 mysqld、sshd、networking、crond、syslogd 等服務,其它的都關閉。
  • 禁止root賬號遠程登錄。
  • 禁止用root賬號啟動mysqld等普通業務服務進程。
  • sshd服務的端口號建議修改成10000以上。
  • 在不影響性能的前提下,盡可能啟用對MySQL服務端口的防火墻策略(高并發時,采用iptables可能影響性能,建議改用ip route策略)。
  • GRUB必須設置密碼,物理服務器的Idrac/imm/ilo等賬號默認密碼也要修改。
  • 每個需要登入系統的員工,都使用每個人私有帳號,而不是使用公共賬號。
  • 應該啟用系統層的操作審計,記錄所有ssh日志,或利bash記錄相應的操作命令并發送到遠程服務器,然后進行相應的安全審計,及時發現不安全操作。
  • 正確設置MySQL及其他數據庫服務相關目錄權限,不要全是755,一般750就夠了。
  • 可以考慮部署堡壘機,所有連接遠程服務器都需要先通過堡壘機,堡壘機上就可以實現所有操作記錄以及審計功能了。
  • 腳本加密對安全性提升其實沒太大幫助。對有經驗的黑客來說,只要有系統登入權限,就可以通過提權等方式輕松獲得root。

2. 應用安全建議

  • 禁用web server的autoindex配置。
  • 從制度層面,杜絕員工將代碼上傳到外部github上,因為很可能存在內部IP、賬號密碼泄露的風險,真的要上傳必須先經過安全審核。
  • 盡量不要在公網上使用開源的cms、blog、論壇等系統,除非做過代碼安全審計,或者事先做好安全策略。這類系統一般都是黑客重點研究對象,很容易被搞;
  • 在web server層,可以用一些安全模塊,比如nginx的WAF模塊;
  • 在app server層,可以做好代碼安全審計、安全掃描,防止XSS攻擊、CSRF攻擊、SQL注入、文件上傳攻擊、繞過cookie檢測等安全漏洞;
  • 應用程序中涉及賬號密碼的地方例如JDBC連接串配置,盡量把明文密碼采用加密方式存儲,再利用內部私有的解密工具進行反解密后再使用。或者可以讓應用程序先用中間賬號連接proxy層,再由proxy連接MySQL,避免應用層直連MySQL;

最后我們想說,任何高明的安全策略,都不如內部員工的安全意識來的重要。以前發生過一起案例,公司內有位員工的PC不慎中毒,結果導致內網數據被盜。

安全無小事,每個人都應銘記于心。在數據安全面前,可以適當犧牲一些便利性,當然也不能太過,否則可能得不償失。

總結

以上是生活随笔為你收集整理的MySQL安全策略的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。