国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MongoDB 3.6 Authentication IP Restrictions

lemanli / 2099人閱讀

摘要:眾所周知,等知名的數(shù)據(jù)庫(kù)都是有在安全方面作出相當(dāng)?shù)姆雷o(hù)的。就是針對(duì)服務(wù)端的做白名單控制。我是上海小胖,專注等開(kāi)源數(shù)據(jù)庫(kù)的,擁抱開(kāi)源,接受收費(fèi)。上海小胖原創(chuàng)地址聯(lián)系方式歡迎各位大神前來(lái)評(píng)論。每周五,敬請(qǐng)期待,上海小胖獨(dú)更。

前言

好了,看了這個(gè)標(biāo)題,我不知道你有沒(méi)有一種潛意識(shí),如果有,沒(méi)錯(cuò),那就是這個(gè)了,MongoDB 終于開(kāi)放了我覺(jué)得對(duì)于一個(gè)數(shù)據(jù)庫(kù)的安全來(lái)說(shuō),比較重要的一個(gè)模塊了 --- IP 白名單。

眾所周知,MySQL、Oracle、SqlServer等知名的數(shù)據(jù)庫(kù)都是有在安全方面作出相當(dāng)?shù)姆雷o(hù)的。

IP白名單

針對(duì)庫(kù)、表的權(quán)限區(qū)分

針對(duì)不同的增刪改查、事務(wù)、admin等的權(quán)限分配

甚至于Oracle還提供了針對(duì)于不同權(quán)限所組合而成的邏輯角色,MySQL在這方面也做了相應(yīng)的調(diào)整。

但是回過(guò)頭來(lái)看看MongoDB,從最一開(kāi)始的最最簡(jiǎn)單的用戶名+密碼的方式,到了之后引入了Bult-in Role、Custom Role、Privilege等的概念推出,再到即將推出的3.6中,明確了將bind_ip調(diào)整成了localhost,這也是受比特幣案的影響吧。

這一次,3.6中,新加入了authenticationRestrictions,就是用來(lái)解決IP白名單的缺陷。

那么接下來(lái)就讓我們一起來(lái)看一下,這個(gè)非常吸引我的特性是如何實(shí)現(xiàn)的吧。

講道理

首先還是先來(lái)看看MongoDB的官方文檔吧。https://docs.mongodb.com/master/reference/method/db.createUser/#authentication-restrictions

Field Name Value Description
clientSource Array of IP addresses and/or CIDR ranges If present, when authenticating a user, the server verifies that the client’s IP address is either in the given list or belongs to a CIDR range in the list. If the client’s IP address is not present, the server does not authenticate the user.
serverAddress Array of IP addresses and/or CIDR ranges A list of IP addresses or CIDR ranges to which the client can connect. If present, the server will verify that the client’s connection was accepted via an IP address in the given list. If the connection was accepted via an unrecognized IP address, the server does not authenticate the user.

簡(jiǎn)單來(lái)說(shuō),clientSource 就是針對(duì)客戶端的IP 做白名單控制。serverAddress 就是針對(duì)服務(wù)端的IP 做白名單控制。

那么這里問(wèn)題來(lái)了,客戶端IP 好理解,無(wú)非就是哪里連過(guò)來(lái)的連接么,這和我們理解上的都一致,那么服務(wù)端地IP呢?什么意思?這里,服務(wù)端的IP 指的是客戶端在連接過(guò)來(lái)的時(shí)候指定的host 地址,比如:mongo --host=192.168.56.101,那么serverAddress 就必須包含192.168.56.101,這里的包含是什么意思?和MySQL一樣,同樣可以指定B、C網(wǎng)段,來(lái)達(dá)到多個(gè)地址地開(kāi)放,只是寫(xiě)法有些許出入,MySQL中是:192.168.56.*,MongoDB 中是:192.168.56.0/24。那么如果是使用驅(qū)動(dòng)的話,也是一樣的,在host參數(shù)中指定對(duì)應(yīng)的IP即可。

那么接下來(lái)我們就來(lái)操作一把。

擺事實(shí)

1.創(chuàng)建一個(gè)應(yīng)用賬號(hào)miracle

use admin

db.createUser(
   {
     user: "root",
     pwd: "root",
     roles: [{role: "root", db: "admin"} ]
   }
)

db.createUser(
   {
     user: "miracle",
     pwd: "young",
     roles: [ {role: "readWrite", db: "young"} ],
     authenticationRestrictions: [ {
        clientSource: ["192.168.31.246"],
        serverAddress: ["192.168.31.246"]
     } ]
   }
)

2.重啟數(shù)據(jù)庫(kù),開(kāi)啟權(quán)限認(rèn)證

3.進(jìn)入miracle 數(shù)據(jù)庫(kù),并驗(yàn)證

4.使用符合要求的格式重新連接數(shù)據(jù)庫(kù)

5.第四步中出錯(cuò)的原因是因?yàn)槟J(rèn)3.6 開(kāi)啟了bind_ip=localhost,而由于一開(kāi)始忽略了這個(gè)問(wèn)題,折騰了我好久。重啟數(shù)據(jù)庫(kù)加上--bind_ip_all

6.重新連接

總結(jié)

至此,MongoDB的IP白名單功能驗(yàn)證完畢,希望能夠幫助到大家在實(shí)際的維護(hù)中更安全的控制好開(kāi)發(fā)者的權(quán)限。


我是上海小胖[MiracleYoung],專注MongoDB、MySQL、Redis等開(kāi)源數(shù)據(jù)庫(kù)的 DevOps,擁抱開(kāi)源,接受收費(fèi)。

上海小胖[MiracleYoung] 原創(chuàng)地址: https://segmentfault.com/u/shanghaixiaopang/articles

聯(lián)系方式:miracleyoung0723@gmail.com

歡迎各位大神前來(lái)評(píng)論。

每周五,敬請(qǐng)期待,上海小胖[MiracleYoung] 獨(dú)更。

如果夏雨荷還在大明湖畔等著我的話,我就不更了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/17660.html

相關(guān)文章

  • 如何保證MongoDB的安全性?

    摘要:另外,保證數(shù)據(jù)庫(kù)的訪問(wèn)安全非常重要,同時(shí)也需要保證數(shù)據(jù)的安全性,做好必要的數(shù)據(jù)備份。關(guān)于如何保護(hù)數(shù)據(jù)的安全性,可以參考我們的博客是這樣備份數(shù)據(jù)的。 上周寫(xiě)了個(gè)簡(jiǎn)短的新聞《MongoDB裸奔,2億國(guó)人求職簡(jiǎn)歷泄漏!》: 根據(jù)安全站點(diǎn)HackenProof的報(bào)告,由于MongoDB數(shù)據(jù)庫(kù)沒(méi)有采取任何安全保護(hù)措施,導(dǎo)致共計(jì)202,730,434份國(guó)人求職簡(jiǎn)歷泄漏。 然后很多人評(píng)論說(shuō)Mongo...

    Steve_Wang_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<