保护Web服务器免受ssh暴力攻击

时间:2013-05-14 20:50:13

标签: security ssh webserver

我有一台服务器充当直接连接到互联网的反向代理。我通过ssh在非标准端口上访问此计算机。它似乎不太安全。如果有人找到了ssh端口,他们就可以强制它并获得对计算机的访问权。

有更安全的方法来配置吗?

4 个答案:

答案 0 :(得分:1)

我建议使用像denyhostssshguard这样的工具,它会根据您设置的规则监视登录失败的日志,并自动禁止IP。

答案 1 :(得分:1)

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

尽管如此,@ demure建议使用denyhosts或sshguard不仅会让你放心,但它会帮助你发现攻击并在必要时采取行动。 @ Steve建议使用公钥认证也是一种很好的预防措施。如果您真的是偏执狂,请考虑添加密码和公钥身份验证以实现two-factor authentication. Something you have and something you know.

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

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