Mongodb
Mongodb:找不到機甲 GSSAPI
我試圖了解 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。安裝後一切正常