键盘交互式身份验证是否支持两个连续密码?

键盘交互式身份验证是否支持两个连续密码?

键盘交互验证(RFC 4256),它是ChallengeResponseAuthentication在 OpenSSH 配置文件中实现的,允许链接多种身份验证方法。例如密码和 TOTP。是否也可以链接多个密码,即当用户连接到服务器时,然后询问他password1然后询问password2?或者这仅取决于 PAM 模块和 PAM 配置?我问的原因是这样的设置会破坏大多数(如果不是全部)自动 SSH 暴力工具,同时仍然不需要用户任何事物。

答案1

答案是肯定的。你指向了正确的目标,但你错过了一些部分:

使用ChallengeResponseAuthentication,您可以定义更多身份验证方法,但为了确保用户请求它们,您需要在 中指定它们的列表AuthenticationMethods,例如sshd_config(执行 pam 两次只是尝试其工作原理的示例):

ChallengeResponseAuthentication yes
AuthenticationMethods keyboard-interactive:pam,keyboard-interactive:pam

但要注意,您只能在 PAM 中通过向/etc/pam.d/sshd.

作为脚注,是的。它可能会使大部分正常的 ssh扫描失败。但暴力攻击,如果有针对性的话,可以猜测一两个密码。没关系。但所有这些仍然会浪费您的计算机时间。如果您不想禁用它们,您仍然需要强密码(这应该是首选)。

答案2

理论上这是可能的,但是使用诸如 Radius 服务器之类的东西来进行两种身份验证之一。否则它应该为password2绘制第二个数据库。

但如果目的是避免使用自动化暴力工具,我认为最好的方法是通过默默无闻实现安全,或者很简单,将 ssh 的标准端口从 22 更改为 2233。对我来说,这个解决方案有效,并且“攻击”暴力完全消失了......

相关内容