MongoDB提供了一系列組件來提升數(shù)據(jù)的安全性。數(shù)據(jù)安全在MongoDB中是最重要的——因此它利用這些組件來減少曝光面。下面是10個可以用來改善你個人或云中MongoDB服務器安全的小提示。
1. 啟用auth-即使在可信賴網絡中部署MongoDB服務器時啟用auth也是項好的安全實踐。當你的網絡受攻擊時它能夠提供“深層防御”。編輯配置文件來啟用auth。
復制代碼 代碼如下:
auth = true
2.不要把生產環(huán)境的數(shù)據(jù)庫暴 露在Internet上-限制對數(shù)據(jù)庫的物理訪問是安全性的非常重要的一個措施。如果沒有必要,就不要把生產環(huán)境的數(shù)據(jù)庫暴露在Internet上。如果 攻擊者不能物理地連接到MongoDB服務器這種情形大打折扣,那么數(shù)據(jù)就不會比現(xiàn)在更安全。如果你把服務部署在亞馬遜web服務(AWS)上,那么你應 當把數(shù)據(jù)庫部署在虛擬私有云(VPC)的私有子網里。
3.使用防火墻-防火墻的使用可以限制允許哪些實體連接MongoDB服務器。最佳的措施就是僅僅允許你自己的應用服務器訪 問數(shù)據(jù)庫。如果你把無法部署在亞馬遜web服務(AWS)上,你可以使用"安全組“功能限制訪問權限。如果你把服務部署在不支持防火墻功能的提供商的主機 上,那么你可以親自使用"iptables"對服務器進行簡單的配置。請參考mongodb的文檔,實現(xiàn)對你所面對的具體環(huán)境配置iptables。
4.使用key文件建立復制服務器集群-指定共享的key文件,啟用復制集群的MongoDB實例之間的通信。如下給配置文件中增加keyfile參數(shù)。復制集群里的所有機器上的這個文件的內容必須相同。
復制代碼 代碼如下:
keyFile = /srv/mongodb/keyfile
5.禁止HTTP狀態(tài)接口- 默認情況下Mongodb在端口28017上運行http接口,以提供“主”狀態(tài)頁面。在生產環(huán)境下推薦不要使用此接口,最好禁止這個接口。使用"nohttpinterface"配置設置可以禁止這個http接口。
復制代碼 代碼如下:
nohttpinterface = true
6.禁止REST接口-在生產環(huán)境下建議不要啟用MongoDB的REST接口。這個接口不支持任何認證。默認情況下這個接口是關閉的。如果你使用的"rest"配置選項打開了這個接口,那么你應該在生產系統(tǒng)中關閉它。
復制代碼 代碼如下:
rest = false
7.配置bind_ip- 如果你的系統(tǒng)使用的多個網絡接口,那么你可以使用"bind_ip"選項限制mongodb服務器只在與該配置項關聯(lián)的接口上偵聽。默認情況下mongoDB綁定所有的接口。
復制代碼 代碼如下:
bind_ip = 10.10.0.25,10.10.0.26
8. 啟用SSL- 如果你沒有使用SSL,那么你在MongoDB客戶端和MongoDB服務器之間的傳輸?shù)臄?shù)據(jù)就是明文的,容易受到竊聽、篡改和“中間人”攻擊。如果你是 通過像internet這樣的非安全網絡連接到MongoDB服務器,那么啟用SSL就顯得非常重要。
9.基于角色進行認證- MongoDB支持基于角色的認證,這樣你就可以對每個用戶可以執(zhí)行的動作進行細粒度的控制。使用基于角色的認證組建可以限制對數(shù)據(jù)庫的訪問,而不是所有的用戶都是管理員。更多的信息請參考有關角色的文檔。
10.企業(yè)級MongoDB與kerberos- 企業(yè)級mongodb繼承了kerberos認證。有關這方面的更多信息請參考mongodb文檔?;谟脩裘?密碼的系統(tǒng)本身就是不安全的,因此如果可能的話,請使用基于kerberos的認證。
您可能感興趣的文章:- MongoDB安全配置詳解
- MongoDB安全及身份認證(實例講解)