我正在尝试使用 Berkeley DB 为一些虚拟用户安装 vsftpd。我主要遵循了这个指南:http://www.neant.ro/2012/04/secure-ftp-with-vsftpd/ .一切正常,但我想在数据库中散列密码。我正在使用 CentOS 6.3 和 glibc 2.12。
从 pam_userdb.so 的联机帮助页中,我假设我可以使用 crypt 提供的内容。如果我们查看 crypt(3) 联机帮助页,我们可以使用 SHA-256 和 SHA-512。我会使用其中之一。
我的疑问是如何实现它。据我所知,我需要转到我的 pam.d 文件并编辑并添加参数 crypt 但是...我应该给它哪个值? SHA-256 为 5? 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来获取它,有什么办法吗?
在此先感谢您的帮助,
最佳答案
不可能。你应该说 crypt=crypt
(其他选项被拒绝)但 mod_userdb
不会接受非 DES 散列,至少在您获得具有 this fix 的 PAM 版本之前不会接受。在其中(Ubuntu Saucy 没有,例如)。
一方面,我编译了自己的 PAM 以进行修复。
关于authentication - 使用 pam_userdb.so 在 Berkeley DB 中为 vsftpd 加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767273/