我使用基于证书/密钥的ssh身份validation,在非标准端口上运行sshd。
我是否还需要安装denyhosts / fail2ban或基于日志分析的检测? 我有什么优势吗?
你真的需要从互联网上的任何地方访问ssh吗? 如果你可以把它缩小到几个固定的IP范围,比如工作或者家庭,并且只限于SSH访问,那么你就会变得更好。
我意识到,如果你不在身边,并且需要随机访问一个随机IPnetworking, 这就是vpn的意义,比如openvpn和两个因素auth(其中之一是一个签名的客户端证书),来到一个你可以通过SSH访问你的机器的环境。
两个因素vpn,会给你比基于证书的SSH更多的安全性,如果发现Openssl有一个巨大的漏洞,那么你只有一个地方需要做紧急安全更新。 然后,您可以更新您的openvpn服务器,而不是一个恐慌,赶紧修复所有运行ssh的主机。
如果您已经完全禁用基于密码的login(密码validation= no在sshd_config中),那么暴力攻击变得更难(如果不是不可能的话) – 客户端将不得不提供大量密钥,其中没有一个与帐户相关或对彼此。
尽pipe如此,您仍然可能想阻止源自大量无效loginstream量的IP – 一个可能的DoS攻击媒介。
Denyhosts是“基于日志分析的检测”解决scheme; 它扫描sshdauthentication日志进行login尝试。 这适用于密码和公共密钥。
Fail2ban更进一步,允许您使用这些结果更新防火墙规则; 它比拒绝主机更适合防止DoS攻击。