在几个系统上我有这个 sshd_config
Port 22
Protocol 2
PermitRootLogin no
StrictModes yes
PasswordAuthentication no
ChallengeResponseAuthentication no
MaxStartups 2
AllowUsers john joe
Run Code Online (Sandbox Code Playgroud)
谁能解释键盘交互和密码身份验证之间的区别?我如何测试我的 sshd 服务器的这些功能?
这些系统可通过互联网使用 SSH(防火墙端口转发)进行访问。尽管关闭了密码身份验证,我仍然看到无效用户的系统日志记录和无效密码被 sshd 拒绝 - 显然一些僵尸网络正在尝试暴力猜测密码。
如果我在没有设置公钥的情况下尝试通过 ssh 登录,那么在我有机会输入用户名之前,我的会话就会关闭,并显示一条消息“权限被拒绝(公钥)”。所以我不明白这些密码尝试是如何发生的。
以下是 syslog 中的示例(所有行都以“Oct 12 08:40:49 host sshd[14790]:”为前缀)
Could not reverse map address 203.0.113.1.
User root not allowed because not listed in AllowUsers
input_userauth_request: illegal user root
Failed password for illegal user root from 203.0.113.1 port 35902 ssh2
Received disconnect from 203.0.113.1: 11: Bye Bye
Run Code Online (Sandbox Code Playgroud)
这些无效密码是如何通过的?服务器是否仍然容易受到暴力破解密码的攻击?
AFAIK 使用PasswordAuthentication 客户端会提示您输入用户名和密码,然后将两者发送到服务器。在键盘交互中,客户端询问您的用户名,将其发送到服务器,然后服务器以密码提示进行响应,该密码提示又通过客户端转发给您。
所做的一切都是为了能够实施进一步的安全措施,以确保您(用户)实际上以交互方式键入密码,并且密码不会以某种方式存储然后仅输入。
| 归档时间: |
|
| 查看次数: |
5304 次 |
| 最近记录: |