pam_tally2将有效尝试视为促进Do​​S攻击的失败

问题描述

我们有一个基于gRPC的客户端和服务器。而且我们使用gRPC调用身份验证。也就是说,在从客户端到服务器的每个gRPC调用中,我们都使用(用户名,密码)。我们有一个每分钟都会被调用的RPC。

问题是这样的:

在服务器上:

/etc/pam.d$ grep unlock *
login:auth    required        pam_tally2.so file=/var/log/tallylog deny=3 unlock_time=300
sshd:auth    required        pam_tally2.so file=/var/log/tallylog deny=3 unlock_time=300

如果有人使用(用户名)手动登录服务器 3次,则该用户将被锁定。此时,gRPC调用开始失败,原因是未授权。此后,使用权限(用户名,密码)的gRPC调用也将被pam_tally2.so计数,从而导致用户永远不会被解锁。

唯一的出路就是做

pam_tally2 -r

这是为gRPC服务创建DOS攻击的非常简单的方法

  1. 无论如何,当用户被锁定时,是否有办法使pam_tally不能解释有效的登录尝试。
  2. 有没有办法在仍然使用呼叫级别凭据的情况下仍然保护gRPC服务?

感谢您的时间。

解决方法

我认为gRPC没有使用pam的内置身份验证模块,因此它更有可能是定制插件。我的猜测是,您可能需要查看有关其锁的pam配置; https://man7.org/linux/man-pages/man8/pam_tally2.8.html