2013-04-02 28 views
4

我正在嘗試安裝vsftpd與一些使用Berkeley DB的虛擬用戶。我主要遵循本指南:http://www.neant.ro/2012/04/secure-ftp-with-vsftpd/。一切工作正常,但我想在數據庫中密碼散列。我正在使用glibc 2.12的CentOS 6.3。使用pam_userdb.so在Berkeley DB中爲vsftpd加密的密碼

從pam_userdb.so的手冊頁中,我假設我可以使用crypt提供的內容。如果我們看一下crypt(3)手冊頁,我們可以使用SHA-256和SHA-512。我會使用其中之一。

我的疑問是如何實現它。從我所知道的我需要去我的pam.d文件並編輯並添加參數crypt,但是......我應該給它哪個值? 5用於SHA-256? 6用於SHA-512?

auth sufficient pam_userdb.so db=/path/to/db/virtual-users crypt=? 
account sufficient pam_userdb.so db=/path/to/db/virtual-users crypt=? 
session sufficient pam_loginuid.so 

現在我需要在數據庫中的SHA-256/SHA-512密碼。哪個是得到散列的正確方法?我想我必須使用crypt函數。但是,我需要使用Ruby來獲取它,有什麼辦法嗎?

在此先感謝您的幫助,

回答

2

有沒有辦法。你應該說crypt=crypt(其他選項被拒絕),但是mod_userdb不會接受非DES散列,至少,直到你得到一個其中包含this fix的PAM版本(Ubuntu Saucy不適用於其中一個)。作爲一個,我編譯了自己的PAM來解決這個問題。

+0

謝謝你的回答,你能請與我分享您的編譯版本或告訴我如何自己做?再次感謝! – hveiga

1

這是fixed。 Debian Jessie的libpam-modules版本1.1.8-3似乎也是固定的。

要插入線使用db5.3-util的或相似的:

{ echo user; echo hash; } | db5.3_load -T -t hash /tmp/passwd.db

要生成的隱窩有效的強hash

echo pass|mkpasswd -s -m sha-512

的 「調試」 選項這個pam模塊很有用(檢查/var/log/auth.log)pamtester