如何更改输入错误密码后发生的延迟?

Sha*_*off 36 login pam hardening

在登录提示输入错误密码后,会有大约 3 秒的延迟。如何在带有 PAM 的 Linux 系统上更改它?

Ulr*_*gel 22

我假设您使用的是 Linux 和 pam。延迟可能是由 引起的pam_faildelay.so。在/etc/pam.d使用中检查您的 pam 配置pam_faildelay,例如:

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000
Run Code Online (Sandbox Code Playgroud)

要更改时间调整延迟参数。如果您想摆脱延迟,您可以删除/评论整行。

延迟的另一个来源可能是pam_unix.so。要禁用由pam_unix.so添加nodelay参数引起的延迟,并可选择添加一行调用pam_faildelay.so以添加(变量)延迟,例如:

auth       optional   pam_faildelay.so  delay=100000
Run Code Online (Sandbox Code Playgroud)

  • `/etc/pam.d/*` 中的任何地方都没有提到延迟。我看到的最接近的是`pam_tally.so`,它允许在多次尝试后锁定。但是我确实有n个`/etc/login.defs`,这可能是我需要的。 (3认同)
  • 运行 fedora 23,我不得不禁用 `pam_unix.so` 延迟并开始使用 @ShawnJ.Goff 所说的 `pam_faildelay.so` 延迟。但是,大多数`pam.d` 配置都有“*此文件是自动生成的。下次运行authconfig 时将破坏用户更改。*” 那么我在哪里可以永久配置延迟? (2认同)

phe*_*mer 13

您需要将nodelay参数传递给auth pam_unix.so.

根据您的身份验证方式,您需要在哪里设置参数会有所不同。然而,大多数linux distrubtions 都有类似的东西/etc/pam.d/system-auth,它包含在所有不同的文件中。

因此,例如,/etc/pam.d/system-auth您可能有一条如下所示的行:

auth            sufficient      pam_unix.so try_first_pass nullok
Run Code Online (Sandbox Code Playgroud)

这应该改为:

auth            sufficient      pam_unix.so try_first_pass nullok nodelay
Run Code Online (Sandbox Code Playgroud)

pam_unix.so模块用于对/etc/passwd和执行身份验证/etc/shadow。如果您使用的是 LDAP 或其他一些密码后端,您可能仍然应该设置nodelay它,pam_unix.so因为它是控制提示的内容(当pam_unix.so身份验证失败时,它通常只是将获得的密码传递给下一个模块)。

你可以阅读更多关于pam_unix.soman pam_unix