2016-04-22 60 views
5

我對MongoDB和LDAP相當陌生。我正在嘗試使用LDAP將用戶認證爲mongo。這些是我迄今爲止所做的步驟。mongo的LDAP配置拋出權限被拒絕

  1. 創建內部的saslauthd.conf文件,其中包含以下行/ etc文件夾:
ldap_servers: ldap://com.myldap.server 
ldap_use_sasl: yes 
ldap_mech: DIGEST-MD5 
ldap_auth_method: fastbind 
  • 創建的DIR mux內部/var/run/saslauthd現在看起來像/var/run/saslauthd/mux
  • 將權限設置爲755使用sudo chmod 755 /var/run/saslauthd

  • 修改了/etc/sysconfig/saslauthd爲具有以下

  • MECH=ldap

  • 未註釋在同一個文件中的線,其表示:
  • DAEMONOPTS=--user saslauth

    現在當我試圖測試th使用下面的命令è認證機制:

    testsaslauthd -u username -p password -f /var/run/saslauthd/mux

    我收到以下消息:

    connect(): Permission Denied

    我的工作是基於thisthis 誰能指出什麼我」在這裏失蹤?提前致謝。

    UPDATE:

    我試着用sudo像下面的測試命令:

    sudo testsaslauthd -u username -p password -f /var/run/saslauthd/mux

    而且我得到以下幾點:

    connect() : Connection refused

    +1

    請確保您有'賽勒斯-SASL-md5'包還安裝了(這是包在亞馬遜的Linux至少的名稱)。您可以使用'pluginviewer'實用程序驗證是否已安裝此插件。 –

    +0

    @BertoldKolics我正在使用RedHat Linux,有什麼想法嗎? – Gurkha

    +0

    @Gurkha,對不起,如果我問一個愚蠢的問題,但正如你說,你是相當新的LDAP,請允許我問,如果你確實有一個LDAP服務器偵聽'LDAP:// com.myldap.server'和你可以通過telnet com.myldap.server 389來訪問它。 –

    回答

    2

    感謝你的問題。我很喜歡設置我的環境來嘗試重現錯誤。你會很高興聽到我不認爲這是一個難以克服的問題。不過,如果沒有什麼與您的問題實際相關的話,我可能花費的時間超過了我希望設置MongoDB,cyrus-sasl-md5,設置權限等等,至少乍一看是這樣。

    你的問題(我90%肯定)是你的saslauthd守護進程沒有運行,或者沒有正確配置。我們來看看以下內容:

    檢查service statusservice saslauthd status的輸出應該類似於下面粘貼的礦。請注意一些關鍵值,例如init腳本的位置,在我的情況下爲/etc/init.d/saslauthd/;和套接字/var/run/saslauthd/mux,您需要在testsaslauthd [...] -f /var/run/saslauthd/mux命令中輸入相同的文件位置。

    [email protected]:~# service saslauthd status                             
    ● saslauthd.service - LSB: saslauthd startup script 
        Loaded: loaded (/etc/init.d/saslauthd) 
        Active: active (running) since Tue 2016-04-26 12:04:59 BST; 1s ago 
        Docs: man:systemd-sysv-generator(8) 
        Process: 11569 ExecStop=/etc/init.d/saslauthd stop (code=exited, status=0/SUCCESS) 
        Process: 11586 ExecStart=/etc/init.d/saslauthd start (code=exited, status=0/SUCCESS) 
        Memory: 2.0M 
        CGroup: /system.slice/saslauthd.service 
          ├─11606 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5 
          ├─11607 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5 
          ├─11608 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5 
          ├─11609 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5 
          └─11610 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5 
    
    Apr 26 12:04:59 hectorvp-pc systemd[1]: Starting LSB: saslauthd startup script... 
    Apr 26 12:04:59 hectorvp-pc saslauthd[11586]: * Starting SASL Authentication Daemon saslauthd 
    Apr 26 12:04:59 hectorvp-pc saslauthd[11606]: detach_tty  : master pid is: 11606 
    Apr 26 12:04:59 hectorvp-pc saslauthd[11606]: ipc_init  : listening on socket: /var/run/saslauthd/mux 
    Apr 26 12:04:59 hectorvp-pc systemd[1]: Started LSB: saslauthd startup script. 
    Apr 26 12:04:59 hectorvp-pc saslauthd[11586]: ...done. 
    

    如果服務沒有運行,只是service saslauthd start啓動它,並再次檢查狀態(service saslauthd status)來檢查任何可能的上游錯誤。

    它也可能是您的LDAP服務器未運行或missconfigured。你可以看看上面的服務狀態(service slapd status)。

    請試試這個,告訴我們結果。

    EDIT(26/04/2016):從這個答案的評論談話中,我已經提取更多的步驟。請在以下答案廣泛的談話道歉,其總結如下:

    調試saslauthd服務:如圖所示here,該服務使用系統日誌。在我的情況下(Ubuntu)這些日誌在/var/log/syslog,但他們可能在/var/log/messages你的情況。至少默認情況下。在嘗試啓動服務時查看此日誌,並查看是否看到任何錯誤消息,這些錯誤消息可能會提供有關問題的更多信息。

    出現在/var/logs/messages錯誤是:could not bind to socket : /var/run/saslauthd/mux , bind: address already in use

    我們使用文件命令:file /var/run/saslauthd/mux檢查了mux套接字,輸出結果表明它是一個目錄。它應該是socket。然後我們刪除它並重新啓動服務。現在服務正常。

    +0

    謝謝你的迴應。看起來我有'saslauthd'問題。我做了'sudo service saslauthd status',結果是'Starting saslauthd:[OK]'但是當我試圖用'sudo service saslauthd status'檢查狀態時,我得到'saslauthd死了但是pid文件存在。你會不知道這意味着什麼以及如何解決它? – Gurkha

    +0

    好的。這意味着問題出現在'saslauthd'服務或其後端。您需要對服務,配置,日誌進行故障排除,確保LDAP服務器健康,等等......您是否可以打開聊天工作來一起工作? –

    +0

    當然,我們該怎麼做呢? – Gurkha