主頁(yè) > 知識(shí)庫(kù) > 保障MySQL數(shù)據(jù)安全的一些建議

保障MySQL數(shù)據(jù)安全的一些建議

熱門標(biāo)簽:Linux服務(wù)器 服務(wù)外包 百度競(jìng)價(jià)排名 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化 AI電銷

數(shù)據(jù)是企業(yè)核心資產(chǎn),數(shù)據(jù)對(duì)企業(yè)而言是最重要的工作之一。稍有不慎,極有可能發(fā)生數(shù)據(jù)無(wú)意泄露,甚至被黑客惡意竊取的風(fēng)險(xiǎn)。每年業(yè)界都會(huì)傳出幾起大事件,某知名或不知名的公司被脫褲(拖庫(kù)的諧音,意思是整個(gè)數(shù)據(jù)庫(kù)被黑客盜?。┲惖?。

從數(shù)據(jù)安全上也可以分為外網(wǎng)安全及內(nèi)部操作安全,下面分別討論一下。

內(nèi)部操作安全策略

1. 是否回收DBA全部權(quán)限

試想,如果DBA沒(méi)權(quán)限了,日常DB運(yùn)維的活,以及緊急故障處理,該怎么實(shí)施呢?因此,建議在沒(méi)有成熟的自動(dòng)化運(yùn)維平臺(tái)前,不應(yīng)該粗暴的回收DBA的太多權(quán)限,否則可能會(huì)導(dǎo)致工作效率降低的,甚至DBA有一種不被信任的負(fù)面情緒。

2. MySQL層安全策略

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

3. MySQL賬號(hào)權(quán)限規(guī)則

  • 業(yè)務(wù)帳號(hào),權(quán)限最小化,堅(jiān)決不允許DROP、TRUNCATE權(quán)限。
  • 業(yè)務(wù)賬號(hào)默認(rèn)只授予普通的DML所需權(quán)限,也就是select、update、insert、delete、execute等幾個(gè)權(quán)限,其余不給。
  • MySQL初始化后,先行刪除無(wú)用賬號(hào),刪除匿名test數(shù)據(jù)庫(kù)
mysql> delete from mysql.user where user!='root' or host!='localhost'; flush privileges; mysql> drop database test;
  • 創(chuàng)建備份專用賬號(hào),只有SELECT權(quán)限,且只允許本機(jī)可登入。
  • 設(shè)置MySQL賬號(hào)的密碼安全策略,包括長(zhǎng)度、復(fù)雜性。

4. 關(guān)于數(shù)據(jù)備份

記住,做好數(shù)據(jù)全量備份是系統(tǒng)崩潰無(wú)法修復(fù)時(shí)的最后一概救命稻草。

備份數(shù)據(jù)還可以用來(lái)做數(shù)據(jù)審計(jì)或是用于數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)源拉取之用。

一般來(lái)說(shuō),備份策略是這樣的:每天一次全備,并且定期對(duì)binlog做增備,或者直接利用binlog server機(jī)制將binlog傳輸?shù)狡渌h(yuǎn)程主機(jī)上。有了全備+binlog,就可以按需恢復(fù)到任何時(shí)間點(diǎn)。

特別提醒:當(dāng)采用xtrabackup的流式備份時(shí),考慮采用加密傳輸,避免備份數(shù)據(jù)被惡意截取。

外網(wǎng)安全策略

事實(shí)上,操作系統(tǒng)安及應(yīng)用安全要比數(shù)據(jù)庫(kù)自身的安全策略更重要。同理,應(yīng)用程序及其所在的服務(wù)器端的系統(tǒng)安全也很重要,很多數(shù)據(jù)安全事件,都是通過(guò)代碼漏洞入侵到應(yīng)用服務(wù)器,再去探測(cè)數(shù)據(jù)庫(kù),最后成功拖庫(kù)。

1. 操作系統(tǒng)安全建議

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

2. 應(yīng)用安全建議

  • 禁用web server的autoindex配置。
  • 從制度層面,杜絕員工將代碼上傳到外部github上,因?yàn)楹芸赡艽嬖趦?nèi)部IP、賬號(hào)密碼泄露的風(fēng)險(xiǎn),真的要上傳必須先經(jīng)過(guò)安全審核。
  • 盡量不要在公網(wǎng)上使用開(kāi)源的cms、blog、論壇等系統(tǒng),除非做過(guò)代碼安全審計(jì),或者事先做好安全策略。這類系統(tǒng)一般都是黑客重點(diǎn)研究對(duì)象,很容易被搞;
  • 在web server層,可以用一些安全模塊,比如nginx的WAF模塊;
  • 在app server層,可以做好代碼安全審計(jì)、安全掃描,防止XSS攻擊、CSRF攻擊、SQL注入、文件上傳攻擊、繞過(guò)cookie檢測(cè)等安全漏洞;
  • 應(yīng)用程序中涉及賬號(hào)密碼的地方例如JDBC連接串配置,盡量把明文密碼采用加密方式存儲(chǔ),再利用內(nèi)部私有的解密工具進(jìn)行反解密后再使用?;蛘呖梢宰寫?yīng)用程序先用中間賬號(hào)連接proxy層,再由proxy連接MySQL,避免應(yīng)用層直連MySQL;

最后我們想說(shuō),任何高明的安全策略,都不如內(nèi)部員工的安全意識(shí)來(lái)的重要。以前發(fā)生過(guò)一起案例,公司內(nèi)有位員工的PC不慎中毒,結(jié)果導(dǎo)致內(nèi)網(wǎng)數(shù)據(jù)被盜。

安全無(wú)小事,每個(gè)人都應(yīng)銘記于心。在數(shù)據(jù)安全面前,可以適當(dāng)犧牲一些便利性,當(dāng)然也不能太過(guò),否則可能得不償失。

以上就是保障MySQL數(shù)據(jù)安全的一些建議的詳細(xì)內(nèi)容,更多關(guān)于MySQL安全建議的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySQL安全策略(MySQL安全注意事項(xiàng))
  • MySQL安全輸入密碼的一些操作介紹
  • 詳細(xì)講解安全升級(jí)MySQL的方法
  • 淺析MySQL的注入安全問(wèn)題
  • MySQL關(guān)閉過(guò)程詳解和安全關(guān)閉MySQL的方法
  • mysql安全啟動(dòng)腳本mysqld_safe詳細(xì)介紹

標(biāo)簽:湘潭 湖南 仙桃 黃山 銅川 蘭州 衡水 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《保障MySQL數(shù)據(jù)安全的一些建議》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266