pam模块使用hotp令牌对用户进行身份验证。
libpam_hotp的Python项目详细描述
libpam hotp是一个pam(可插入认证模块)模块 在python中使用生成的otp(一次性密码)对用户进行身份验证 使用hotp算法。
一。安装
libpam hotp依赖于打包到所有主要发行版中的libpam python。 这个模块已经用Python2.6进行了测试,也许它也可以用2.5进行测试, 当然还有2.7版本。
安装依赖项后,可以将pam_hotp.py放入 /lib/安全目录。
下一步是设置pam,并创建一个包含所有令牌种子的文件。
2.pam的配置
libpam hotp使用libpam python,后者实际上是被调用的模块 因此,对于pam,您的规则行如下:
auth [POLICY] pam_python.so pam_hotp.py [OPTIONS]
可用选项有:
- file: path to file that store user login - secret seeds mapping (default to /etc/hotp).
示例:
auth sufficient pam_python.so pam_hotp.py file=/etc/hotp_ssh
注意:本模块只提供auth mecanism。
三。种子文件:
种子文件存储用户登录名和机密种子代码之间的映射 用户的令牌。
此文件的每一行都是一个关联,每个字段由 “:”字符。前三个字段是必需的:
- User login
- Secret seed code (encoded in hexadecimal form)
- The number of seconds for a period (see your token datasheet)
您可以添加两个附加字段:
- The maximum allowed number of drift periods
- An hash, used to prompt an additionnal password to the user.
散列用salt编码,格式如下:salt$hash, 哈希函数是sha1(concat(password,salt))。
示例:
下面是一个完整的用户stallman示例,带有一个标记周期 30秒,最大漂移3个周期,以及附加密码 “理查德”:
stallman:11223344556677889900AABBCCDDEEFF:30:3:6jsd3$1b6a67161e1cca2b1cd014c59b5bc907435cf8e7