![我该如何抵御这些暴力攻击?](https://linux22.com/image/660391/%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E6%8A%B5%E5%BE%A1%E8%BF%99%E4%BA%9B%E6%9A%B4%E5%8A%9B%E6%94%BB%E5%87%BB%EF%BC%9F.png)
我有 3 台专用服务器,全部运行 CentOS,物理位于加拿大。
在最新的服务器上,cPHulk 开始检测(并将)失败的登录尝试列入黑名单。从服务器上线的那天起,它就开始了。从那时起,我每天都会收到 15-30 封来自 cPHulk 的电子邮件,告知我“大量登录尝试失败”。
我注意到所有的攻击都来自中国,所以我安装了 csf 并完全屏蔽了中国。几天后,攻击又回来了,但来自不同的国家。到目前为止,我出于绝望屏蔽了四个国家,但我知道这不是一个合法的解决方案。现在它们来自我无法承受屏蔽的国家,因为我可以预期来自这些国家的合法流量。
我还收到了来自似乎与国家/地区无关的 IP 的攻击,如下图所示:
由于我使用的密码非常强,所以我不担心他们能够猜出密码。
我的问题是,他们为什么瞄准我的服务器?他们是如何如此迅速地找到我的服务器的?我该如何缓解这些登录尝试而不封锁整个国家?屏幕截图中的 IP 来自哪里?我唯一的猜测是,不知何故我被分配了一个声誉很差的 IP,但是我的服务器管理经验和知识有点有限,所以我甚至不知道这种说法是否可信。
答案1
就像迈克尔·汉普顿所说的那样,他们 [TM] 对每个人都这样做。他们的脚本检测到一个正在监听端口的 IP 地址,然后向其输入用户名和密码,看看是否有任何效果。 这这是一张实时攻击的地图。
如果这些电子邮件让您感到困扰,您可以将允许登录的 IP 列入白名单,当有人从不在白名单上的网站登录时,它会向您发送电子邮件。
至于截图中的IP,0.42.0.0:
0.0.0.0 地址仅可在计算机了解应使用哪个 IP 地址时用作传出数据包的地址。它绝不会用作目标地址。以“0.”开头的地址有时用于向直接连接的设备进行广播。
如果您在日志中看到以“0”开头的地址,它们可能正在您的网络上使用,该网络可能小到与连接到家庭网关的计算机一样。
该块由制定互联网协议的组织 IETF 在标准文档 RFC 1122 中分配,并在最佳当前实践文档 RFC 6890 中进一步记录。IANA 被列为注册人,以明确表示该网络未分配给任何单个组织。
这些文档可以在以下位置找到: http://datatracker.ietf.org/doc/rfc1122 http://datatracker.ietf.org/doc/rfc6890
答案2
我很惊讶没有人提到这一点,但摆脱这些非常常见的暴力攻击的一个极端方法是设置一个端口敲击守护进程,如knockd
。因此,除非攻击者以正确的顺序使用特定端口序列扫描您的机器,否则它甚至找不到开放的 SSH 端口。对于合法用户,许多 SSH 客户端都支持此功能,并且能够在连接到 ssh 服务器之前触发正确的端口序列。
但显然,在几乎所有情况下,通过运行 fail2ban jail 和适当的查找和禁止时间进行非平凡的身份验证就足够了。
答案3
如果只是关于sshd
- 看这里https://unix.stackexchange.com/questions/21639/internet-ssh-server-security-considerations。
我必须依靠用户名和密码,而不是密钥。为了更安全,我sshd
从一个非标准端口启动,这似乎可以阻止大约 99% 左右的攻击。然后,LoginGraceTime
在您的 sshd 配置中设置为,假设10
这意味着,在 3 次尝试失败后,下一次尝试只能在 10 秒后进行,这使得任何身份验证尝试在关闭连接前有 10 秒的时间。所以,暴力破解不再是那有力:)。还要确保设置PermitRootLogin no
。