我已经寻找答案,并找到了有关更改 SSH 登录时输入错误密码后的延迟的资源,但无法解决我的具体问题。
我的问题是延迟是在我输入用户名,而不是密码,延迟大约为 20 秒。我不介意密码错误时的延迟,但如果我输入用户名,我想立即输入密码。
如果这对任何人有帮助,同样的延迟也会发生在 FTP 连接上。但是,一旦我连接(SSH 或 FTP),那么所有交互都会非常快。只有登录很慢。
我查看了 /etc/ssh/sshd_config 并看到了以下条目:
UsePam yes
但是我对 PAM 以及它的配置位于何处一无所知。
[编辑:这是来自 /var/log/auth.log 的日志文件(最后一个)]
Mar 17 14:27:29 rel2015 sshd[26206]: Failed password for root from 218.65.30.107 port 57695 ssh2
Mar 17 14:27:30 rel2015 sshd[26206]: Received disconnect from 218.65.30.107: 11: [preauth]
Mar 17 14:27:30 rel2015 sshd[26206]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.65.30.107 user=root
Mar 17 14:27:42 rel2015 sshd[26208]: Received disconnect from 218.65.30.107: 11: [preauth]
Mar 17 14:28:08 rel2015 proftpd: pam_unix(proftpd:session): session closed for user rbase
Mar 17 14:28:23 rel2015 proftpd: pam_unix(proftpd:session): session opened for user rbase by (uid=0)
Mar 17 14:29:25 rel2015 proftpd: pam_unix(proftpd:session): session closed for user cpm303
Mar 17 14:29:41 rel2015 proftpd: pam_unix(proftpd:session): session opened for user cpm303 by (uid=0)
Mar 17 14:35:01 rel2015 CRON[26318]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 17 14:35:01 rel2015 CRON[26318]: pam_unix(cron:session): session closed for user root
显然,使用 PAM,但我还是不知道 PAM 位于何处。
答案1
在您的日志文件中有条目显示Failed password for root
。如果是由于合法管理员输入了错误的密码,则会导致登录成功,但这并不是您所期望的。
这很可能是一次密码暴力破解尝试。而且这些尝试发送的请求远不止两个。因此,我认为,如果您查看日志文件中的更多上下文,就会发现有很多来自 的失败密码218.65.30.107
。
我自己也见过这样的密码猜测尝试。有时它们会有效地对 sshd 发起 DoS 攻击,使得合法用户难以登录。任何已登录的连接均不受影响,并且响应速度与往常一样快。
遇到这种情况我的做法是:
- 继续尝试登录直到成功。
- 在我工作时插入 iptables 规则来阻止有问题的 IP
iptables -I -s 218.65.30.107 -p tcp -j REJECT --reject-with tcp-reset
- 编辑
sshd_config
以禁用密码验证PasswordAuthentication no
。 - 重新加载 sshd。
- 打开另一个与服务器的 ssh 连接以验证我是否仍然可以登录。
执行上述步骤后,我再也没有看到过密码暴力破解尝试对服务进行 DoS 攻击。
如果PasswordAuthentication no
您确实需要某些用户使用密码登录,那么这不是一个好的选择,还有其他几个选择。使用它将Match
密码验证限制为需要它的特定用户名/IP 组合。或者使用 fail2ban 在几次密码尝试失败后阻止 IP 地址。
答案2
218.65.30.107 正在试图攻击您。他们来自中国。