linux – 为什么sshd还在使用PAM?

前端之家收集整理的这篇文章主要介绍了linux – 为什么sshd还在使用PAM?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
背景/行为是:如果您通过ssh到Box并且GSSAPI / Kerberos成功并且您在/ etc / passwd中有一个本地用户,那么您可以在PAM配置下登录.一切都很好.

但是如果您在/ etc / passwd中没有本地用户但是您可以获得主机/ XXXXXX服务票证(GSSAPI正常工作),则sshd无法登录并且永远不会获得SecurID的提示(我们的pam半径指向SecurID).我明白那个.由于服务器“已验证”用户和pam_unix知道用户不在/ etc / passwd中,因此无需使用任何其他auth方法.

但是,我的问题是为什么如果我第一次运行kdestroy(故意让GSSAPI失败),(并且仍然不存在于/ etc / passwd中)我是否突然得到一个Securid提示(即PAM参与)?

运行sshd与调试显示:推迟键盘交互为无效用户用户”.首先,为什么它不会简单地失败?为什么延迟? pam_radius是’必需’,而不是’必需’.

我希望也会失败,因为即使我没有经过身份验证,我也永远不会超过pam_unix.

文件

的/ etc / SSH / sshd_config中

....  
ChallengeResponseAuthentication yes  
GSSAPIAuthentication            yes  
HostbasedAuthentication         no  
KerberosAuthentication          no  
PasswordAuthentication          no  
PubkeyAuthentication            yes  
RhostsRSAAuthentication         no  
RSAAuthentication               yes  
UsePAM                          yes      
....

上将/etc/pam.d/sshd

auth       requisite        pam_radius_auth.so conf=pam_radius_auth.conf debug retry=3  
auth       required     pam_nologin.so  
auth     required     pam_krb5.so.1  
account  sufficient      pam_radius_auth.so conf=pam_radius_auth.conf  
account    required     pam_stack.so service=system-auth  
password   required     pam_stack.so service=system-auth  
session    required     pam_stack.so service=system-auth  
session    required     pam_limits.so  
session    optional     pam_console.so

将/etc/pam.d/system-auth

auth        required      pam_env.so  
auth        sufficient    pam_krb5.so.1  
auth        sufficient    pam_unix.so  
auth        required      pam_deny.so  
account     required      pam_unix.so  
password    required      pam_cracklib.so retry=3  
password    sufficient    pam_unix.so use_authtok md5 shadow  
password    required      pam_deny.so  
session     required      pam_limits.so  
session     required      pam_unix.so

解决方法

PAM不处理GSSAPI身份验证.用于kerberos的PAM模块用于用户的密码认证,使用kerberos协议来获得有效的票证.

GSSAPI身份验证有3种结果.

>身份验证失败,因为凭据已发送但凭据无效.
>使用提供的凭据验证成功.
>忽略身份验证,因为未提供凭据.

如果结果为1,则在发送令牌但是失败时,请求将被彻底拒绝. SSHD不会尝试其他身份验证方法.

如果结果为3,则sshd将接下来尝试其他身份验证方法,其中包括PAM身份验证部分.

我不熟悉pam_radius,但我认为无论用户是否因安全原因而存在,它都会请求身份验证令牌.让它失败会立即向用户/攻击者表明这样的用户不存在,因此从消除过程中您可以枚举用户.

至于“必需”选项,在堆栈设置中给出“必需”和“必需”具有相同的效果. pam_krb无法在没有有效用户的情况下请求票证,因此最终会立即失败.

对于给定的配置,pam_unix不用于身份验证而是授权,这是在身份验证之后发生的步骤.澄清;身份验证处理证明您就是您所说的人,而授权处理您具有正确的权限来执行您想要做的事情(在这种情况下是登录).

原文链接:https://www.f2er.com/linux/397632.html

猜你在找的Linux相关文章