我有 RHEL 6.3 系统,其中 PAM 的 access.conf 已正确配置并正在运行。但是,在分析了一次 root 黑客攻击尝试后,它似乎处于不太理想的状态,我想知道是否可以采取任何措施。
我使用 authconfig 添加 access.conf,然后添加我的规则。但是,看起来 PAM 在运行 access.conf 规则之前会运行密码检查。我想逆转这种情况,甚至不允许某人检查密码,除非他们首先通过 access.conf 规则。
我认为,当前的行为代表着一种安全风险,因为尽管 access.conf 随后可能会拒绝成功的密码猜测,但有一些特征会告诉黑客他们猜对了。那就是:
密码尝试失败:
[ivo@pioneer:~]$ ssh root@mysecuresystem
root@mysecuresystem's password:
Permission denied, please try again.
root@mysecuresystem's password:
Permission denied, please try again.
root@mysecuresystem's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
成功的密码尝试:
[ivo@pioneer:~]$ ssh root@mysecuresystem
root@mysecuresystem's password:
Connection closed by 10.10.10.65
行为并不能明确地告诉他们他们得到了密码,但它与失败的猜测不同,因此值得注意。(此外,日志仍然显示 unix_chkpw,这会导致安全 IDS/日志分析器出现误报)。
虽然改变这种行为会导致 PAM 源改变,从而变得复杂,但改变 PAM 中的检查顺序可能很容易?
那么,如何让 PAM 在密码检查之前使用 access.conf?
(注意:我们需要使用 access.conf,因为我们需要停止大多数机器上的 root 用户,但允许任何地方的用户使用。因此 sshd 配置不是一个解决方案,也不是我们需要完成的任务的包装器)
谢谢!
答案1
这不是一个解决方案,但它似乎是一个合理的解决方法,修改 /etc/pam.d/sshd,移动“pam_access.so”行,使其位于“auth”部分,例如:
身份验证需要 pam_access.so
而不是
帐户需要 pam_access.so
这样,即使使用了有效的密码,登录尝试也会产生“拒绝访问”消息,从而避免让黑客知道正确的猜测。