许多教程告诉您像这样配置 ssh 服务器:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
Run Code Online (Sandbox Code Playgroud)
但是使用此设置,您无法使用 PAM,因为我计划将 2 Factor Auth 与 Google Authenticator(OTP 一次性密码)一起使用,我需要 PAM。
那么如何配置一个新的 debian jessie ssh 守护进程,如果我想阻止使用普通密码登录但仍然允许使用 PAM。
也许确切的问题是如何配置 pam 以禁止密码?
PAM 身份验证的详细信息
禁用基于 PAM 的密码身份验证相当不直观。几乎所有 GNU/Linux 发行版(Slackware 除外)以及 FreeBSD 都需要它。如果您不小心,您可以将 PasswordAuthentication 设置为“no”,并且仍然通过 PAM 身份验证仅使用密码登录。事实证明,您需要将“ChallengeResponseAuthentication”设置为“no”才能真正禁用 PAM 身份验证。FreeBSD 手册页有这样的说法,这可能有助于澄清情况:
请注意,如果 ChallengeResponseAuthentication 为“yes”,并且 sshd 的 PAM 身份验证策略包括 pam_unix(8),则无论 PasswordAuthentication 的值如何,都将允许通过质询-响应机制进行密码身份验证。
http://www.unixlore.net/articles/five-minutes-to-more-secure-ssh.html
And*_*w B 27
也许确切的问题是如何配置 pam 以禁止密码?
正确的。您已经偶然发现设置UsePAM no通常是不好的建议。它不仅会阻止任何形式的基于 PAM 的身份验证,还会禁用account和session模块。访问控制和会话配置是好事。
首先,让我们构建一个需求列表:
pam_google_authenticator.so. 这需要UsePAM yes和ChallengeResponseAuthentication yes。毕竟,您是在提示他们提供凭证!auth可能允许通过keyboard-interactive登录传输密码的模块。(我们必须为 OTP 启用)publickey身份验证,gssapi-with-mic如果您配置了 Kerberos。通常,使用密钥进行身份验证会完全跳过基于 PAM 的身份验证。这会阻止我们使用旧版本的 openssh,但 Debian 8 (jessie) 支持该 AuthenticationMethods指令。这允许我们需要多种身份验证方法,但仅适用于实现 SSHv2 的客户端。
以下是我建议的行/etc/ssh/sshd_config。确保您有办法访问此系统sshd,以防万一您破坏了某些东西!
# Require local root only
PermitRootLogin no
# Needed for OTP logins
ChallengeResponseAuthentication yes
UsePAM yes
# Not needed for OTP logins
PasswordAuthentication no
# Change to to "yes" if you need Kerberos. If you're unsure, this is a very safe "no".
GSSAPIAuthentication no
# Require an OTP be provided with key based logins
AuthenticationMethods publickey,keyboard-interactive
# Use this instead for Kerberos+pubkey, both with OTP
#
#AuthenticationMethods gssapi-with-mic,keyboard-interactive publickey,keyboard-interactive
Run Code Online (Sandbox Code Playgroud)
完成sshd这些更改后,不要忘记重新加载。
我们仍然需要配置 PAM。假设全新安装 Debian 8(根据您的问题):
@include common-auth来自/etc/pam.d/sshd。/etc/pam.d/sshd并确认不auth存在以开头的行。如果这是全新安装,则不应该存在,但最好是安全的。auth条目pam_google_authenticator.so。我们没有进行任何会影响通过本地控制台登录的更改,也没有阻止用户使用密码来升级他们的权限。sudo.这超出了问题的范围。如果您决定更进一步,请记住应该始终允许 root 通过密码在本地登录。否则,您可能会意外将自己锁定在系统之外。
| 归档时间: |
|
| 查看次数: |
35797 次 |
| 最近记录: |