每天发生数百次入侵尝试是正常的吗?

每天发生数百次入侵尝试是正常的吗?

我刚刚检查了我的服务器/var/log/auth.log,发现每天收到超过 500 条密码失败/入侵尝试通知!我的网站很小,而且 URL 很模糊。这是正常的吗?我应该采取什么措施吗?

答案1

不幸的是,在当今的互联网中,这种情况很常见。有成群的僵尸网络试图登录他们在整个 IP 网络中找到的每个服务器。通常,他们会对知名帐户(如 root 或某些应用程序帐户)使用简单的字典攻击。

攻击目标不是通过 Google 或 DNS 条目找到的,而是攻击者会尝试特定子网(例如,已知根服务器托管公司)中的每个 IP 地址。因此,您的 URL(因此 DNS 条目)比较模糊并不重要。

这就是为什么以下做法如此重要:

  • 禁止 SSH 中的 root 登录(如何
  • 在任何地方(包括在你的网络应用程序中)使用强密码
  • 对于 SSH,尽可能使用公钥身份验证并完全禁用密码身份验证(如何

此外,您还可以安装失败2ban它将扫描 authlog,如果发现某个 IP 有一定数量的登录尝试失败,它将继续将该 IP 添加到/etc/hosts.denyiptables/netfilter,以便将攻击者锁定几分钟。

除了 SSH 攻击外,扫描 Web 服务器以查找易受攻击的 Web 应用程序(某些博客应用程序、CMS、phpmyadmin 等)也变得越来越常见。因此,请确保保持这些应用程序的更新和安全配置!

答案2

几百次就够了……上个月我发现我的一台服务器有 4 万次失败尝试。我费了好大劲才把它们画出来:地图

一旦我更改了 ssh 端口并实施了端口敲击,这个数字就下降到了 0 :-)

答案3

我除了只允许公钥认证和禁止根登录外,还使用“tarpit”。

其中netfilter有一个recent模块,您可以将其与(INPUT链)一起使用:

iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT

这样做的目的是,模块会将连接到端口 22 的每一次尝试recent以及 IP 和一些其他内容列在名称“tarpit”下(如果您感兴趣,请查看/proc/net/xt_recent/tarpit)。显然,您可以使用其他名称。

要列出或删除 IP,请使用:

echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit

此速率限制将尝试次数限制为 300 秒内 5 次。请注意,具有现有连接的用户不受此限制的困扰,因为他们已经建立了连接并被允许创建更多连接(甚至超过速率限制)。

根据您的喜好调整规则,但确保按该顺序添加它们(即,添加时按此顺序使用它们,插入时按相反顺序使用它们)。

这极大地减少了噪音。它还提供了实际的安全性(防止暴力破解),这与更改端口的感知安全性不同。但是,如果在您的环境中可行,我仍然建议更改端口。它也会大大降低噪音水平...

您仍然可以将它与 fail2ban 结合使用,尽管我没有它并且只有上述规则也运行得很好。

编辑:

这样做可能会导致自己被锁定,因此您可以添加类似下面的内容,通过敲击特定端口来清除禁令:

iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove

答案4

是的。这现在很正常。

如果可能,请仅将公钥身份验证用于管理目的。在您的工作站上生成私钥:

$ ssh-keygen -t dsa

复制粘贴内容〜/.ssh/id_dsa.pub到你的服务器〜/.ssh /授权密钥(以及 /root/.ssh/authorized_keys,如果您需要直接 root 登录)。

配置服务器/etc/ssh/sshd_config仅接受公钥认证:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin without-password

如果你有太多服务器,你可以使用木偶运行公钥和配置。

调查拒绝主机失败2ban阻止重复的 SSH 登录尝试,并查看呼噜如果您需要完整的 IDS/IPS。

相关内容