个人服务器开放ssh上网风险有多大?

个人服务器开放ssh上网风险有多大?

标题延续为“对互联网安全了解有限”。

我最近用一台运行 Debian 的低端电脑设置了一个小型服务器,目的是将其用作个人 git 存储库。我启用了 ssh,但对它遭受暴力攻击等的速度之快感到非常惊讶。然后我读到这是相当常见并了解了抵御这些攻击的基本安全措施(serverfault 上有很多问题和重复内容,请参见这个或者这个)。

但现在我想知道这一切是否值得付出努力。我决定建立自己的服务器主要是为了好玩:我可以依靠第三方解决方案,例如 gitbucket.org、bettercodes.org 等提供的解决方案。虽然乐趣的一部分是学习互联网安全,但我没有足够的时间专注于成为专家,并几乎确定我采取了正确的预防措施。

为了决定是否继续玩这个玩具项目,我想知道这样做到底有什么风险。例如,连接到我的网络的其他计算机在多大程度上也构成威胁?其中一些计算机的使用者对 Windows 的了解程度甚至比我的还要低。

如果我遵循基本准则,例如强密码、禁用 ssh 的 root 访问权限、ssh 的非标准端口以及可能禁用密码登录并使用 fail2ban、denyhosts 或 iptables 规则之一,那么我陷入真正麻烦的可能性有多大?

换句话说,我是否应该害怕一些大灰狼,或者这主要是为了赶走脚本小子?

答案1

我认为 SSH 是开放互联网上最安全的东西之一。如果你真的担心,可以让它监听非标准的高端端口。我仍然会在您的机器和实际互联网之间设置(设备级)防火墙,只使用端口转发来使用 SSH,但这是针对其他服务的预防措施。SSH 本身非常可靠。

有人偶尔会攻击我家的 SSH 服务器(向时代华纳有线电视开放)。从未造成实际影响。

为使 SSH 更安全,你还可以采取一些其他措施,例如防止家用机器从同一 IP 地址反复尝试,例如

MaxStartups 2:30:10

在 /etc/ssh/sshd_config 中,它将限制在成功登录之前可以连续创建多少个连接。

您可以使用以下方法提高安全性失败2ban这将帮助你发现并拒绝屡教不改的人

答案2

使用 SSH 设置公钥认证系统实际上非常简单,大约需要 5 分钟即可完成设置

如果您强制所有 SSH 连接都使用它,那么它将使您的系统尽可能地具有弹性,而无需在安全基础设施上投入大量资金。坦率地说,它非常简单有效(只要您没有 200 个帐户 - 否则会变得混乱),不使用它应该是一种公共罪行。

答案3

我也运行一个通过 SSH 向全世界开放的个人 git 服务器,我也遇到了和你一样的暴力破解问题,所以我能理解你的处境。

FiddlerWins 已经解决了在可公开访问的 IP 上打开 SSH 的主要安全隐患,但我认为应对暴力破解的最佳工具是失败禁止- 监控您的身份验证日志文件、检测入侵尝试并将防火墙规则添加到计算机本地iptables防火墙的软件。您可以配置禁止前尝试的次数以及禁止时间长度(我的默认值为 10 天)。

答案4

处理此问题的另一种方法是设置 VPN。您无需直接连接到家庭服务器上的 SSH 端口,而是先连接到 VPN,然后通过加密的安全连接运行所有流量。

处理此问题的理想方法是使用包含 VPN 端点的防火墙,但您也可以设置 Windows 计算机充当 VPN 服务器。

以下是一个例子:

http://www.howtogeek.com/135996/

现在请记住恰当的安全配置将涉及与您的内部网络隔离的公共(或半公共)计算机。 Web 服务器或任何托管公开可用服务的计算机都应位于您的家庭或办公室的安全网络之外。您可以使用 2 个路由器在您和 Internet 之间创建一个安全区域或 DMZ。

这样,如果您的服务器被黑客入侵,它就不能被用作攻击其他计算机的媒介。

因此设置如下:

DMZ 配置

相关内容