阻止对IPv6的SSH蛮力攻击


10

最近,我不得不与一些具有IPv6连接的服务器一起工作,但我惊讶地发现fail2ban不支持IPv6,denyhosts也没有。在Google上搜索时,我发现人们通常建议:

  • 通过IPv6停用SSH登录(对我而言不是解决方案)
  • 仅在服务器上使用私钥/公钥身份验证,而没有密码身份验证(可行,但是很多攻击可能会耗费服务器大量的处理能力,或者甚至可能由于DDoS使其无法使用)
  • 使用ip6tables阻止来自同一IP的连续攻击
  • 使用具有IPv6支持的sshguard

从目前为止我收集到的信息来看,IPv6中的地址禁止与IPv4上的有所不同,因为ISP不会为用户提供单个地址(/ 128),而是为整个子网提供一个地址(我目前拥有/ 48)。因此,禁止单个IPv6地址将无法有效抵抗攻击。我已经在攻击检测方面对ip6tables和sshguard阻止子网进行了严格的搜索,但是我没有找到任何信息。

有谁知道sshguard是否禁止子网进行IPv6攻击?
有谁知道如何制作ip6tables配置来禁止子网进行IPv6攻击?
还是有人知道比我已经发现的更好的缓解攻击的方法?

PS:我在系统上使用CentOS 7。


3
有关fail2ban添加IPv6支持的更多信息,请访问:github.com/fail2ban/fail2ban/issues/39。看来他们正面临子网阻塞的问题,这延迟了进一步的实现(实际上似乎离我们越来越远了……)。
约翰·史密斯

iptables中的速率限制/禁止规则。更改您的问题,几个代表应该准确回答。

这是一个假设的问题吗?我一直在查看来自几台服务器的暴力破解尝试日志,并且其中每一个都是通过IPv4尝试的。当在服务器端禁用密码身份验证时,我还没有看到任何服务器由于此类尝试而承受过多的负载。
kasperd 2015年

1
@kasperd我每天在IPv6上进行了数千次尝试,所以,这不是一个假设的问题。服务器地址是公共的,因为它托管一个站点,因此这是一个非常现实的问题。
DarthRevan13年

@ user123418我现在将保留问题的标题,因为与ip6tables中的规则相比,我确实更喜欢sshguard之类的东西,因为它可以控制。如果下周没有人回答,那么我将更改我的问题。
DarthRevan13年

Answers:


4

为了攻击服务器,攻击者必须首先知道其IP地址。使用IPv6,您将有很多地址可供选择,以致无法通过扫描IP范围来找到正确的地址。

这意味着您可以简单地为接口分配两个不同的IPv6地址。您让站点的域名始终指向同一IP地址,而让sshd仅侦听新分配的IP地址。

进行此更改后,知道站点的域名和IP地址将不会使攻击者无法访问您的sshd。

使用ssh连接时,您当然需要使用辅助主机名。该主机名可能比IPv6地址具有更多的熵。如果您使用63个字母数字字符,就会有人猜出ssh的主机名是不可想象的。

如果有人找到用于sshd的IPv6地址,则只需将sshd移至新的IPv6地址并更新AAAA记录。然后,他们必须重新开始。

如果您担心合法的ssh用户可能泄漏主机名和/或IP地址,则可以为每个用户创建一个不同的主机名,以使用ssh进行访问。最初,我会将所有CNAME命名为一个主机名,以便仅更新一个AAAA记录。


听起来比我目前拥有的要好,但与我一直在寻找的不一样。不管怎么说,还是要谢谢你。
DarthRevan13年

0

好消息是fail2ban最近发布了对IPv6的支持。

对于Debian IPv6服务器,我建议您遵循本教程

对于CentOS IPv6服务器,我建议在这里下载它,然后执行以下命令,相应地替换版本号:

tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install

确保在/etc/fail2ban/jail.local中为sshd启用了监狱,例如:

[sshd]
enabled=1

1
尽管我很欣赏fail2ban上的家伙所做的一切,但这还远远不够!根据其更改日志github.com/fail2ban/fail2ban/blob/0.10/ChangeLog,IPv6协议并非支持所有功能,并且仍然不支持禁止子网github.com/fail2ban/fail2ban/issues/927,这对于IPv6,因为任何ISP都不会仅向客户提供一个IPv6地址,而是向整个子网提供。只要这是真的,现在任何生产机器都不应使用fail2ban!请更改您的答案以反映这一点,因为此页面有很多人访问。
DarthRevan13年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.