Mongodb

Mongodb:找不到機甲 GSSAPI

  • March 11, 2015

我試圖了解 mongodb 如何與 kerberos 一起工作。為此,我配置了一個 kerberos 伺服器,僅用於本地。這是我的領域的配置:

這是 krb5.conf 文件的內容:

[libdefaults]
   default_realm = LOCALHOST

# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true


v4_instance_resolve = false
v4_name_convert = {
       host = {
               rcmd = host
               ftp = ftp
       }
       plain = {
               something = something-else
       }
}
fcc-mit-ticketflags = true

[realms]
   LOCALHOST = {
       kdc = localhost
       admin_server = localhost
}
[login]
   krb4_convert = true
   krb4_get_tickets = false

這是 kdc.conf 文件的內容:

[kdcdefaults]
   kdc_ports = 750,88

[realms]
   LOCALHOST = {
       database_name = /var/lib/krb5kdc/principal
       admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
       acl_file = /etc/krb5kdc/kadm5.acl
       key_stash_file = /etc/krb5kdc/stash
       kdc_ports = 750,88
       max_life = 10h 0m 0s
       max_renewable_life = 7d 0h 0m 0s
       master_key_type = des3-hmac-sha1
       supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
       default_principal_flags = +preauth
   }

kerberos 似乎工作正常。我創建了一些主體(兩個使用者用於測試,一個使用者用於管理員,一個使用者用於 mongo 伺服器)並且我測試了我可以使用 kinit 為每個使用者創建票證。這是校長名單:

ardi/admin@LOCALHOST
mongodb/localhost@LOCALHOST
testUser@LOCALHOST
testUser2@LOCALHOST

當我嘗試使用 GSSAPI 機制啟動 mongodb 服務時,問題就出現了。該服務永遠不會啟動,我收到以下消息:

2015-03-10T12:52:12.285+0100 錯誤:找不到機械 GSSAPI

2015-03-10T12:52:12.286+0100 嚴重:全域初始化失敗:BadValue SASL(-4):沒有可用的機制:找不到機械 GSSAPI

當然,如果我去掉 authenticationMechanisms 參數,mongodb 啟動沒有問題

其他可能有用的資訊:

  • krb5_ktname 的值為 /home/ardi/test/mongodb.keytab
  • keytab 文件的權限是 777(我知道這是錯誤的,但僅用於測試)
  • 我的 SO 是 ubuntu 14.04
  • 我的 mongo 企業版 2.6.8 和 3.0.0 有這個問題

你們中有人知道問題出在哪裡嗎?

提前感謝您的時間

我解決了。問題是我沒有庫 libsasl2-modules-gssapi-mit。安裝後一切正常

引用自:https://dba.stackexchange.com/questions/94889