6.32. pam_tally-登录计数器(统计)模块

pam_tally.so [file = * +2+ *] [onerr = [* +3+ * | * +4+ *]] [magic_root] [even_deny_root_account] [deny = * +5+ *] [lock_time = * +6+ *] [unlock_time = * +7+ *] [per_user] [no_lock_time] [no_reset] [审核] [静音] [no_log_info]

pam_tally [--file * +9+ *] [--user * +10+ *] [--reset [= * +11+ *]] [--quiet]

6.32.1. DESCRIPTION

此模块维护尝试访问的次数,可以重置成功访问次数,如果太多尝试失败则可以拒绝访问。

pam_tally 有几个限制,可以通过 pam_tally2 解决。因此,不建议使用 pam_tally,并将在以后的版本中将其删除。

pam_tally 有两部分:* pam_tally.so *和 pam_tally 。前者是 PAM 模块,后者是一个独立程序。 pam_tally 是一个(可选)应用程序,可用于查询和操作计数器文件。它可以显示用户计数,设置单个计数或清除所有计数。人为地设置高计数可能对阻止用户而不更改其密码很有用。例如,可能会发现在每个午夜从 Cron 作业中清除所有计数很有用。可以使用 faillog(8)命令代替 pam_tally 来维护计数器文件。

通常,失败的尝试访问* root 不会不会*导致 root 帐户被阻止,以防止拒绝服务:如果未为您的用户提供 shell 帐户,并且 root 只能通过 su 或在机器控制台(不是 telnet/rsh 等)上,这是安全的。

6.32.2. OPTIONS

  • GLOBAL OPTIONS

    • 可以用于* auth account *模块类型。
  • onerr=[fail|succeed]

    • 如果发生奇怪的事情(例如无法打开文件),请返回 PAM_SUCCESS(如果给出了onerr=succeed),否则返回相应的 PAM 错误代码。

    • file=/path/to/counter

      • 归档保留计数的位置。默认值为/var/log/faillog
    • audit

      • 如果找不到用户,将用户名登录到系统日志中。
    • silent

      • 不要打印信息性消息。没有使用* silent *选项打印的消息会泄漏系统上的帐户,因为它们不为不存在的帐户打印。
    • no_log_info

      • 不要通过 syslog(3)记录信息性消息。
  • AUTH OPTIONS

    • 身份验证阶段首先检查是否应拒绝用户访问,否则应增加尝试登录计数器的次数。然后,在调用 pam_setcred(3)时,它将重置尝试计数器。
  • deny=n

    • 如果该用户的计数超过* n *,则拒绝访问。

    • lock_time=n

      • 尝试失败后,请始终拒绝* n *秒。
    • unlock_time=n

      • 尝试失败后* n *秒后允许访问。如果使用此选项,则超过最大允许尝试次数后,用户将被锁定指定的时间。否则,帐户将被锁定,直到系统 Management 员手动干预解除锁定为止。
    • magic_root

      • 如果模块由 uid = 0 的用户调用,则计数器不会递增。 sysadmin 应该将此用于用户启动的服务,例如 su ,否则应忽略此参数。
    • no_lock_time

      • 请勿为此用户使用/var/log/faillog中的.fail_locktime 字段。
    • no_reset

      • 成功 Importing 时不要重置计数,只能递减。
    • even_deny_root_account

      • 根帐户可能不可用。
    • per_user

      • 如果/var/log/faillog包含该用户的非零.fail_max/.fail_locktime 字段,请使用它代替deny=n/lock_time=n参数。
    • no_lock_time

      • 请勿为此用户使用/var/log/faillog中提交的.fail_locktime。
  • ACCOUNT OPTIONS

    • 如果用户不是“魔根”,则帐户阶段将重置尝试计数器。此阶段可以选择用于无法正确调用 pam_setcred(3)的服务,或者无论其他模块的帐户阶段是否失败,都应执行重置操作。
  • magic_root

    • 如果模块由 uid = 0 的用户调用,则计数器不会递增。 sysadmin 应该将此用于用户启动的服务,例如 su ,否则应忽略此参数。

    • no_reset

      • 成功 Importing 时不要重置计数,只能递减。

6.32.3. 提供的模块类型

提供了authaccount模块类型。

6.32.4. 返回值

  • PAM_AUTH_ERR

    • 提供的选项无效,模块无法检索用户名,找不到有效的计数器文件或登录失败太多。
  • PAM_SUCCESS

    • 一切都成功了。
  • PAM_USER_UNKNOWN

    • 用户未知。

6.32.5. EXAMPLES

在登录失败过多后,将以下行添加到/etc/pam.d/login以锁定帐户。允许失败的次数由/var/log/faillog指定,并且需要在之前使用 pam_tally 或 faillog(8)进行设置。

auth     required       pam_securetty.so
auth     required       pam_tally.so per_user
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.32.6. AUTHOR

pam_tally 由 Tim Baverstock 和 Tomas Mraz 撰写。