MongoDB整理筆記の安全訪問

來源:互聯網
上載者:User

標籤:

    MongoDB安全訪問將從以下三個方面得到控制!

    1、綁定IP內網地址訪問MongoDB服務

    2、設定監聽連接埠

    3、使用使用者名稱和密碼

    綁定IP內網地址訪問MongoDB服務

    MongoDB可以限制只允許某一特定IP來訪問,只要在啟動時加一個參數bind_ip即可,如下:

    服務端限制只有192.168.1.103這個IP可以訪問MongoDB服務

[[email protected] bin]# ./mongod --bind_ip 192.168.1.103

    用戶端訪問時需要明確指定服務端IP,否則會報錯:

[[email protected] bin]# ./mongo 192.168.1.102MongoDB shell version: 1.8.1connecting to: 192.168.1.103/test>

    設定監聽連接埠
    官方預設的監聽連接埠是27017,為了安全起見,一般都會修改這個監聽連接埠,避免惡意的串連嘗試,具體如下:

    將服務端監聽連接埠改為28018

[[email protected] bin]# ./mongod --bind_ip 192.168.1.103 --port 28018

    用戶端訪問時不指定連接埠,會串連到預設連接埠27017,對於本例會報錯

[[email protected] bin]# ./mongo 192.168.1.102MongoDB shell version: 1.8.1connecting to: 192.168.1.102/testSun Apr 15 15:55:51 Error: couldn‘t connect to server 192.168.1.102 shell/mongo.js:81exception: connect failed

    所以當服務端指定了連接埠後,用戶端必須要明確指定連接埠才可以正常訪問

[[email protected] bin]# ./mongo 192.168.1.102:28018MongoDB shell version: 1.8.1connecting to: 192.168.1.102:28018/test>

    使用使用者名稱和密碼
    MongoDB預設的啟動是不驗證使用者名稱和密碼的,啟動MongoDB後,可以直接用MongoDB串連上來,對所有的庫具有root許可權。所以啟動的時候指定參數,可以阻止用戶端的訪問和串連。

    先來啟用系統的登入驗證模組,只需在啟動時指定auth參數即可

[[email protected] bin]# ./mongod --auth

    本地用戶端串連一下看看效果

    很奇怪,為什麼我們啟用了登入驗證模組,但我們登入時沒有指定使用者,為什麼還可以登入呢?在最初始的時候 MongoDB 都預設有一個 admin 資料庫(預設是空的)而 admin.system.users 中將會儲存比在其它資料庫中設定的使用者權限更大的使用者資訊。注意:當 admin.system.users 中沒有添加任何使用者時,即使 MongoDB 啟動時添加了 --auth參數,如果在除 admin 資料庫中添加了使用者,此時不進行任何認證依然可以使用任何操作,直到知道你在 admin.system.users 中添加了一個使用者。

    兩種添加使用者方式

    建立系統root使用者

    在admin庫中新添一個使用者root:

[[email protected] bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test> db.addUser("root","111"){"user" : "root","readOnly" : false,"pwd" : "e54950178e2fa777b1d174e9b106b6ab"}> db.auth("root","111")1>
View Code

    本地用戶端串連,但不指定使用者,結果如下:

[[email protected] bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test> show collections;Sun Apr 15 16:36:52 uncaught exception: error: {"$err" : "unauthorized db:test lock type:-1 client:127.0.0.1","code" : 10057}>
View Code

    連上test庫了,但進一步操作時有異常,看來MongoDB允許未授權串連,但不能進行任何操作。

    本地用戶端串連,指定使用者,結果如下:

[[email protected] bin]# ./mongo -u root -pMongoDB shell version: 1.8.1Enter password:connecting to: test> show collections;system.indexessystem.users>
View Code

    看來指定了使用者名稱之後,訪問資料庫才是正常。

    建立指定許可權使用者

    MongoDB也支援為某個特定的資料來設定使用者,如我們為test庫設定一個唯讀使用者user_reader:

[[email protected] bin]# ./mongo -u root -pMongoDB shell version: 1.8.1Enter password:connecting to: test> show collections;system.indexessystem.users> use testswitched to db test> db.addUser("user_reader", "user_pwd", true){"user" : "user_reader","readOnly" : true,"pwd" : "0809760bb61ee027199e513c5ecdedc6"}>
View Code

    用戶端用此使用者來訪問:

[[email protected] bin]# ./mongo -u user_reader -pMongoDB shell version: 1.8.1Enter password:connecting to: test> show collections;system.indexessystem.users>
View Code




MongoDB整理筆記の安全訪問

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.