如何停止/防止 SSH 暴力破解

25 remote-access linux ssh brute-force-attacks

我对网络管理很陌生,所以请注意我还没有那么有经验。

我有一个带有 plesk 面板的 Ubuntu 根服务器。

昨天我和我的朋友注意到我们 TS3 的语音质量非常糟糕。我向服务器发送了一些 ping,发现丢包率很高。在那之后,我用谷歌搜索了一下,发现有一个auth.log. 我下载了它并滚动了一下,然后我发现了这个:

May 13 10:01:27 rs204941 sshd[9351]: input_userauth_request: invalid user student [preauth]
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): check pass; user unknown
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=112.220.198.102 
May 13 10:01:29 rs204941 sshd[9351]: Failed password for invalid user student from 112.220.198.102 port 39806 ssh2
May 13 10:01:29 rs204941 sshd[9351]: Received disconnect from 112.220.198.102: 11: Bye Bye [preauth]
May 13 10:01:31 rs204941 sshd[9353]: Invalid user student from 112.220.198.102
Run Code Online (Sandbox Code Playgroud)

似乎有人多次尝试通过 SSH 登录。我滚动了一下,看到有人试图使用许多不同的用户名:student, tech, psi, news,...

文件中显示了数百个这样的登录。

我在我的数据中心的网站上查看了流量统计数据。每小时只有 17MB。我有一个 100Mbit Backbone,所以数据传输本身似乎不是问题。

目前我无法以任何方式访问服务器。

我的问题是:我怎样才能再次获得访问权限,我怎样才能抑制这种攻击并防止后续攻击?

Dre*_*ury 40

如何获得访问权限?

目前尚不清楚为什么您无法访问您的帐户。

如果您的机器受到攻击或高负载,您应该与您的提供商讨论限制访问(IP 限制)或使服务器脱机(与 Internet 断开连接)。

您可能还需要带外访问,您的提供商可能会提供帮助。

如果有人破坏了您的服务器,您可能需要从备份中恢复或使用恢复映像。

如何防止对您的服务器的攻击,尤其是 SSH

防止暴力登录的最佳方法?

首先不要让他们进入您的机器!有很多方法可以在暴力尝试到达您的主机之前,甚至在 SSH 级别阻止它们。

话虽如此,使用fail2ban之类的东西保护您的操作系统是一个好主意。http://en.wikipedia.org/wiki/Fail2ban

Fail2ban 类似于 DenyHosts ...但与专注于 SSH 的 DenyHosts 不同,fail2ban 可以配置为监控任何将登录尝试写入日志文件的服务,而不是仅使用 /etc/hosts.deny 来阻止 IP 地址/主机,fail2ban 可以使用 Netfilter/iptables 和 TCP Wrappers /etc/hosts.deny。

您应该考虑许多重要的安全技术来帮助防止暴力登录:

SSH:

  • 不允许root登录
  • 不允许使用 ssh 密码(使用私钥认证)
  • 不要监听每个接口
  • 为 SSH 创建一个网络接口(例如 eth1),这与您提供请求的接口(例如 eth0)不同
  • 不要使用常见的用户名
  • 使用允许列表,并且只允许需要 SSH 访问的用户
  • 如果您需要 Internet 访问...限制访问一组有限的 IP。一个静态 IP 是理想的,但是将其锁定到 xx0.0/16 比 0.0.0.0/0 更好
  • 如果可能,找到一种无需 Internet 访问即可连接的方法,这样您就可以拒绝 SSH 的所有 Internet 流量(例如,使用 AWS,您可以获得绕过 Internet 的直接连接,这称为 Direct Connect)
  • 使用像fail2ban这样的软件来捕捉任何蛮力攻击
  • 确保操作系统始终是最新的,尤其是安全和 ssh 包

应用:

  • 确保您的应用程序始终是最新的,尤其是安全包
  • 锁定您的应用程序“管理”页面。上面的许多建议也适用于您的应用程序的管理区域。
  • 密码保护您的管理区域,例如用于 Web 控制台的 htpasswd 将投射任何潜在的应用程序漏洞并创建额外的进入障碍
  • 锁定文件权限。“上传文件夹”因成为各种令人讨厌的东西的入口点而臭名昭著。
  • 考虑将您的应用程序置于私有网络之后,并且只公开您的前端负载均衡器和 Jumpbox(这是 AWS 中使用 VPC 的典型设置)

  • 配置 openssh 以侦听 22 以外的端口,并配置 iptables 以丢弃任何到达端口 22 的内容。如果您不希望从您的祖国以外的任何其他国家/地区通过 ssh 进入,请在 https://www 上创建一个阻止列表。 countryipblocks.net/country_selection.php 并将其与 iptables 一起使用。 (3认同)