我的雇主要求我先登录VPN,然后才能通过SSH进入服务器。但是,鉴于SSH的安全性,VPN是否会过时?

如果我已经在使用SSH,VPN在安全性方面有什么用途?

评论

VPN将具有更广泛的范围-没有它,您可能根本无法在公司网络内部访问。

我有点困惑,因为我并没有真正承认不使用SSH的原因,除非出于某种疯狂的原因而无法使用它。

@Shadur:问题中考虑的选择是1)VPN + SSH,2)仅SSH,但不是3)VPN。 OP面临的选择都涉及SSH。

如果他们的局域网使用IPSEC,那么我想您可以使用rsh

#1 楼

当前设置背后的原因可能是以下三个原因的组合。

VPN是公司网络外部的安全解决方案(请参阅下面的#1)。但是,SSH可能是公司网络外部的第二层安全性……但是它的主要目的是保护公司网络内部的通信安全(请参阅下面的第2点)。如果您要SSH进入的设备正在使用公司网络上的私有地址(请参阅下面的第3个),则VPN也是必要的。您推送数据。因此,没有人看到您与公司网络之间的流量,实际上看不到您要发送的内容。他们所看到的只是隧道。这样可以防止公司网络外部的人以有用的方式拦截您的流量。
SSH是一种加密的方法,用于连接到网络上的设备(与Telnet(明文)相反)。为了安全起见,公司甚至在公司网络上也经常需要SSH连接。如果我已经在网络设备上安装了恶意软件,并且您通过该设备远程登录(即使您通过VPN隧道-由于VPN隧道通常终止于公司网络的边界),则可以看到您的用户名和密码。如果您使用的是SSH,那么我将无法使用。通过VPN隧道进行连接就像您是直接连接到办公室一样,因此您将使用公司网络外部无法访问的公司网络内部路由。


评论


如果恶意软件在目标设备上,则与telnet相比,SSH确实没有帮助。 (如果恶意软件在网络中的其他设备上,则将有所帮助。)

–PaŭloEbermann
2015年11月1日23:53



#2 楼

SSH是蛮力尝试的极受欢迎的目标。如果您直接在Internet上拥有SSH服务器,则在几分钟之内,您会看到使用各种用户名(和密码)的登录尝试-即使在小型服务器上,每天也经常登录数千次。

现在可以强化SSH服务器(主要的三种机制是:需要SSH密钥,拒绝对SSH的根访问,并在可能的情况下限制甚至允许连接的IP地址)。尽管如此,强化SSH服务器的最佳方法就是根本不在Internet上使用它。

为什么重要?毕竟,SSH从根本上是安全的,对吗?是的,但是,它的安全性仅与用户使用的安全性相同-您的雇主可能会担心密码太弱以及SSH密钥被盗。是在公司级别进行控制的,而不是像SSH那样在个人服务器级别进行的控制。

总而言之,我要赞扬您的雇主在此处实施一些良好的安全做法。当然,以便利为代价(安全通常是以便利为代价)。

评论


机制#4称为fail2ban,我强烈建议使用它。

– Shadur
2015年11月2日,13:26

优点。另一个类似的工具是denyhosts。附带说明一下,某些版本的fail2ban中存在一个漏洞,攻击者可以利用该漏洞阻止任意主机-基本上,这些版本可以用作拒绝服务攻击的媒介。

–凯文·基恩(Kevin Keane)
2015年11月8日,凌晨3:45

#3 楼

VPN使您可以连接到雇主的专用网络并获取该专用网络的IP地址。连接到VPN后,就好像您正在使用公司内部的一台计算机一样,即使您身处世界另一端。

很可能是您的雇主要求您首先通过VPN连接,因为服务器无法从Internet访问(即它们没有公共IP地址),这是一个好主意。 VPN增加了另一层安全性,就像服务器可以通过SSH公开访问一样,它们很容易受到一系列攻击。

#4 楼

SSH是一种用于多种用途的加密协议。在VPN隧道中加密流量就是其中之一。您的流量是使用SSH加密的,但随后需要包装在有效的IP数据包(隧道)中,以穿越Internet等网络。该隧道就是VPN。

基本上,您的雇主为了安全起见会阻止外部网络通信,除非该通信通过由雇主控制的VPN。 VPN可能会也可能不会加密隧道的内容。使用SSH将加密VPN隧道中承载的流量。

评论


简而言之:VPN保护网络,SSH保护单个服务器。

–瑞奇
2015年11月2日,下午3:43

#5 楼

您需要VPN才能进入本地网络。

然后您无需保护与各个服务器的连接,因为VPN连接已经对其进行了加密。

但是,您还如何连接它们? SSH是远程服务器的事实上的控制台访问协议。安装和配置不安全的设备将带来额外的管理开销,并降低本地网络内的安全性(可能会或可能不会造成问题)。完全可以访问每台服务器,并且即使在本地网络中也可以使用基于密钥的加密功能,网络管理员可以轻松安全地确保只有表面上知道自己在做什么的人,即使在公司内部也可以触摸服务器。

#6 楼

您也可以通过VPN推动其他安全层。例如设备标准检查,2要素认证等。

#7 楼

典型的原因是您希望尽可能减少暴露和可能的攻击媒介。

如果您从同时需要SSH和VPN(出于其自身目的)的前提出发,面向外部意味着攻击者有两条进入您环境的潜在途径。如果您将SSH设为仅本地,则它将为服务器的安全性增加一个额外的层。请考虑以下情形:外部使用SSH + VPN。攻击者只需破坏SSH即可破坏服务器。
SSH外部。功能与以前的方案相同。
VPN外部(内部为SSH)。安全性加倍。攻击者必须先突破两者,然后才能对服务器执行任何操作。 。

#8 楼

我可能会以为,答案很简单,就是涉及到NAT,并且(正如许多其他人所说的那样)将最终目标服务器暴露给世界会引起另一个攻击点。除非您使用大密钥进行大量数据传输,否则SSH通常不会妨碍您。瓶颈几乎总是网络。 (几乎!=总是)。

如果您足够“幸运”到拥有IPv6,那么这不太可能成为问题,但是对于IPv4和可用的地址空间有限,NAT是(IMO )最终,我认为此“政策”背后的原因比任何其他“偶然”或“有目的”的安全性都重要。

#9 楼

根据我目前的理解,SSH-因为它仅使用tcp密钥交换来验证客户端用户是否具有访问服务器中用户ID的正确凭据,因此容易受到中间人攻击,而ISP或受感染的路由器可能拦截握手请求并充当发送身份验证的请求,实际上是劫持了连接。这允许将命令注入流中,然后在输出到达初始真实客户端之前将其过滤掉,从而使该人处于向服务器ssh shell注入任意命令的中间。 VPN隧道允许ssh不允许的东西。另一个预先约定的对称加密密钥。这意味着两台计算机之间的流量不容易受到中间人的攻击,因为如果为了控制ssl加密层代表真实客户端拦截并转发该流量,则该流量将无法通过vpn加密密钥要求,因为第三方将无法以与他们能够控制中间人转发ssh tcp ssl连接的方式相同的方式欺骗​​vpn密钥。阻止中间层从需要客户端通过以连接到服务器的ISP或受损的路由器进入中间。