保护web服务器免受ssh暴力破解攻击



我有一个服务器作为反向代理直接连接到互联网。我通过非标准端口上的ssh访问这台计算机。看起来不太安全。如果有人找到了ssh端口,他们就可以暴力破解并访问计算机。

是否有更安全的方法来配置这个?

从设计上讲,暴力强制SSH非常缓慢且耗时。使用OpenSSH(大多数实现都是类似的),在提交错误的密码后会有几秒钟的延迟。三次失败后,连接将被断开。这使得即使是中等熵的密码也难以置信地慢。一般来说,只要你的服务器没有大量的线程接受连接,并且你的密码足够复杂,SSH的暴力破解就不是问题。

尽管如此,@demure建议使用denyhosts或sshguard不仅可以让您放心,而且可以帮助您检测攻击并在必要时采取行动。@Steve建议使用公钥认证也是一个很好的预防措施。如果您真的很偏执,可以考虑添加密码和公钥身份验证来实现双因素身份验证。你有的东西和你知道的东西

我建议使用denyhosts或sshguard之类的工具,它们会监视您的日志中失败的登录,并根据您设置的规则自动禁止ip。

我使用fail2ban并在c#中使用mono编写了一个实用程序来添加任何攻击我的SSHD的IP,并将它们添加到/etc/hosts.deny中。现在我看到有一些顽固的黑客,他们的IP地址一直被拒绝。不过,他们总会在第二天回来。Digital Ocean有一个设置fail2ban的很好的教程。

编辑:我将我的日志记录从用户名密码更改为基于证书的身份验证,这似乎减少了大多数攻击,但有些人甚至使用暴力破解证书。我现在根据新的日志修改了我的代码。

暴力SSH攻击,可以从服务器吸取资源。在处理器(CPU)和内存(RAM)数量最少的低功耗服务器上,这个问题尤其令人恼火。

我们开发了一个解决方案,下载已知SSH攻击者的IP地址黑名单,并将它们添加到/etc/hosts.deny文件中。

该解决方案在GitHub上作为一个名为am-deny-hosts的开源项目发布。该项目由一组shell脚本组成,这些脚本可以在不占用大量时间、CPU或内存的情况下完成任务。

最新更新