天天看點

MongoDB安全實戰之Kerberos認證

MongoDB系列文章,本文主要講訴MongoDB的Kerberos配置實戰。MongoDB Enterprise版本支援Kerberos服務認證。Kerberos是大型用戶端/伺服器系統的行業标準認證協定。上一篇文章是:

MongoDB Compass--MongoDB DBA必備的管理工具

1

1、環境準備

需要事先在機器上安裝MongoDB Enterprise版本和Kerberos,在這裡安裝的是MongoDB Enterprise 3.6.2和Kerberos 1.10.

2

2、啟動mongod服務,并連接配接到mongoshell。

MongoDB安全實戰之Kerberos認證

3

3、在$external資料庫下(注意:必須在$external資料庫,否則添加使用者必須pwd密碼鍵),建立一個使用者(這裡的使用者需要是Kerberos的一個賬戶)并配置設定bigdata資料庫“讀”的權限。

use $external

db.createUser(

   {

    user:”[email protected]”,

    roles:[{role:”read”,db:”bigdata”}]

   }

)

MongoDB安全實戰之Kerberos認證

4

4、配置mongod服務支援Kerberos認證

4.1

4.1、編輯修改MongoDB配置檔案/etc/mongd.conf

vi /etc/mongod.conf

添加以下内容:

security:

  authorization: enabled

setParameter:

  authenticationMechanisms: GSSAPI

MongoDB安全實戰之Kerberos認證

4.2

4.2 設定mongod服務支援Kerberos認證

由于這裡安裝MongoDB Enterprise是采用rpm包安裝,mongod服務預設在/etc/sysconfig/mongod

執行以下語句:

env KRB5_KTNAME=/usr/local/mongodb.keytab \

/usr/bin/mongod --config /etc/mongod.conf

這裡的mongodb.keytab檔案是已經在kerberos上對mongodb/[email protected]認證生成的keytab檔案。

MongoDB安全實戰之Kerberos認證

啟動成功!

5

5、使用認證連接配接mongo shell

mongo --host other--authenticationMechanism=GSSAPI --authenticationDatabase=’$external’--username [email protected]

MongoDB安全實戰之Kerberos認證

mongo shell的認證連接配接成功!

測試使用者[email protected],執行以下語句:

use bigdata

show collections

use admin

由于在bigdata資料庫下,[email protected]使用者具有讀權限,showcollections可以通過;當轉換到admin資料庫下時,則提示沒有認證!

MongoDB安全實戰之Kerberos認證