On this page
6.33. pam_tally2-登录计数器(统计)模块
pam_tally2.so
[file = * +2+
*] [onerr = [* +3+
* | * +4+
*]] [magic_root] [even_deny_root] [deny = * +5+
*] [lock_time = * +6+
*] [unlock_time = * +7+
*] [root_unlock_time = * +8+
*] [序列化] [审核] [沉默] [no_log_info] [调试]
pam_tally2
[--file * +10+
*] [--user * +11+
*] [--reset [= * +12+
*]] [--quiet]
6.33.1. DESCRIPTION
此模块维护尝试访问的次数,可以重置成功访问次数,如果太多尝试失败则可以拒绝访问。
pam_tally2 分为两部分:* pam_tally2.so *和 pam_tally2 。前者是 PAM 模块,后者是一个独立程序。 pam_tally2 是一个(可选)应用程序,可用于查询和操作计数器文件。它可以显示用户计数,设置单个计数或清除所有计数。人为地设置高计数可能对阻止用户而不更改其密码很有用。例如,可能会发现在每个午夜从 Cron 作业中清除所有计数很有用。
通常,失败的尝试访问* root 不会不会*导致 root 帐户被阻止,以防止拒绝服务:如果未为您的用户提供 shell 帐户,并且 root 只能通过 su 或在机器控制台(不是 telnet/rsh 等)上,这是安全的。
6.33.2. OPTIONS
GLOBAL OPTIONS
- 可以用于* auth 和 account *模块类型。
onerr=[fail|succeed]
如果发生奇怪的事情(例如无法打开文件),请返回 PAM_SUCCESS(如果给出了
onerr=succeed
),否则返回相应的 PAM 错误代码。file=/path/to/counter
- 归档保留计数的位置。默认值为
/var/log/tallylog
。
- 归档保留计数的位置。默认值为
audit
- 如果找不到用户,将用户名登录到系统日志中。
silent
- 不要打印信息性消息。没有使用* silent *选项打印的消息会泄漏系统上的帐户,因为它们不为不存在的帐户打印。
no_log_info
- 不要通过 syslog(3)记录信息性消息。
debug
- 当将计数计数作为调试级别消息增加到系统日志时,请始终记录该计数。
AUTH OPTIONS
- 身份验证阶段首先增加尝试登录的次数,并检查是否应拒绝用户访问。如果用户通过了身份验证,并且登录过程 continue 调用 pam_setcred(3),它将重置尝试计数器。
deny=n
如果该用户的计数超过*
n
*,则拒绝访问。lock_time=n
- 尝试失败后,请始终拒绝*
n
*秒。
- 尝试失败后,请始终拒绝*
unlock_time=n
- 尝试失败后*
n
*秒后允许访问。如果使用此选项,则超过最大允许尝试次数后,用户将被锁定指定的时间。否则,帐户将被锁定,直到系统 Management 员手动干预解除锁定为止。
- 尝试失败后*
magic_root
- 如果模块由 uid = 0 的用户调用,则计数器不会递增。 sysadmin 应该将此用于用户启动的服务,例如 su ,否则应忽略此参数。
even_deny_root
- 根帐户可能不可用。
root_unlock_time=n
- 此选项暗含
even_deny_root
选项。尝试失败后,请在n
*秒后允许访问 root 帐户。如果使用此选项,则超级用户在超出其最大允许尝试次数后将被锁定指定的时间。
- 此选项暗含
serialize
- 使用锁序列化对理货文件的访问。此选项可能仅用于非多线程服务,因为它取决于提示文件的 fcntl 锁定。另外,最好仅在身份验证阶段与帐户或 setcred 阶段之间的时间不依赖于身份验证 Client 端的这种配置中使用此选项。否则,通过简单地人为地延长文件记录锁定的保存时间,身份验证 Client 端将能够防止同一用户进行同时身份验证。
ACCOUNT OPTIONS
- 如果用户不是“魔根”,则帐户阶段将重置尝试计数器。此阶段可以选择用于无法正确调用 pam_setcred(3)的服务,或者无论其他模块的帐户阶段是否失败,都应执行重置操作。
magic_root
- 如果模块由 uid = 0 的用户调用,则计数器不会更改。 sysadmin 应该将此用于用户启动的服务,例如 su ,否则应忽略此参数。
6.33.3. 提供的模块类型
提供了auth
和account
模块类型。
6.33.4. 返回值
PAM_AUTH_ERR
- 提供的选项无效,模块无法检索用户名,找不到有效的计数器文件或登录失败太多。
PAM_SUCCESS
- 一切都成功了。
PAM_USER_UNKNOWN
- 用户未知。
6.33.5. NOTES
pam_tally2 与旧的 pam_tally 故障日志文件格式不兼容。这是由于在多体系结构系统上 32 位和 64 位体系结构之间的 tallylog 文件格式的兼容性要求所致。
没有 setuid 包装器可以访问数据文件,例如从 xscreensaver 调用* pam_tally2.so *模块时。因为这将使得无法与此类服务共享 PAM 配置,所以使用以下解决方法:如果由于权限不足(EACCES)而无法打开数据文件,则模块返回 PAM_IGNORE。
6.33.6. EXAMPLES
在 4 次登录失败后,将以下行添加到/etc/pam.d/login
以锁定帐户。根帐户也将被锁定。帐户将在 20 分钟后自动解锁。在帐户阶段不必调用该模块,因为 login 可以正确调用 pam_setcred(3)。
auth required pam_securetty.so
auth required pam_tally2.so deny=4 even_deny_root unlock_time=1200
auth required pam_env.so
auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_limits.so
session required pam_unix.so
session required pam_lastlog.so nowtmp
session optional pam_mail.so standard
6.33.7. FILES
/var/log/tallylog
- 故障计数日志文件
6.33.8. AUTHOR
pam_tally2 由 Tim Baverstock 和 Tomas Mraz 编写。