看来我的一台服务器正在经历一个复杂的ssh字典攻击,因为我看到一大堆用户名按字母顺序排列,并且密码失败。
关于这个不寻常的事情是:
你能帮我理解如何从不同的IP地址做到这一点吗, 它可以被有效地阻止吗? 而且攻击缓慢持续(可能需要几个月的时间才能通过字母表)意味着什么具体的?
我也有兴趣知道是否有其他人正在他们的公共ssh服务器上看到类似的活动(例如,我们是一个特定的目标,还是这个攻击者用这个攻击来掩盖成千上万的ssh服务器?)
另外,有什么方法可以让我揭示什么是密码(甚至哈希)正在尝试 ? 我注意到,每个名字只被尝试一次或两次。 我假设他们正在尝试“密码”或用户的用户名 – 但我可以validation这一点?
简单的答案是不要使用密码!
您可以:
如果你必须使用密码,只允许他们从你信任的子网,而不是整个互联网。 另外,它有助于在22以外的端口上运行你的ssh守护进程。通常我不build议这样的事情,但是如果它减less了你看到的攻击量,那就更好了。
在回答你的具体问题:
下面是对2008年开始的“慢蛮虎”僵尸networking攻击的一些讨论和分析: 慢蛮荒最终综述
在这个网站的同一时间的其他讨论build议
Fail2ban只是提高服务器安全性的一个工具。 当然,第一步是避免使用密码,而使用serverkeyauthentication。 此外,限制允许的stream量到某些IP,禁止IP范围,使用IP表,使用黑名单(如rsync-mirrors.uceprotect.net)更新已知的SSH黑客起源和原始networking的iptables。 有关上述3级黑名单的详细信息,请参阅uceprotect.net。
我见过的其他build议涉及到这种尝试build议监视失败的尝试和阻止源IP – 最终相同的IP将用于另一个探测,所以通过检测和黑名单尝试login后不存在的帐户您将以增加的防火墙规则处理为代价逐渐减less威胁。 此外,最好不要阻止后,只有一个连接尝试 – 错别字确实发生。
最好的答案是,不要做任何事情。 只要您的用户拥有8个或更多的强密码,那么就很可能需要大约3千万年的时间才能将其暴力破解!
我不确定你的实际执行情况,但是这里有一些一般的build议:
审核你的密码(用john ripper或类似的),看看你是否可以增加login超时。
安装denyhosts或fail2ban – 经过一定次数的攻击后,它会被IP阻止。 denyhosts在/etc/hosts.deny上运行,我相信fail2ban在iptables规则上运行。