我是一名程序员,而且我曾为几个客户端工作,他们的networking阻塞了端口22上的出站连接。考虑到程序员通常需要使用端口22来访问ssh,这看起来是一个适得其反的过程。 充其量,它迫使程序员为3G互联网收费。 最糟糕的是,这意味着他们无法有效地完成工作。
鉴于这种困难造成的,一个有经验的系统pipe理员能否解释一下,看起来像是一种双输的行动,这样的好处呢?
我没有看到有人详细说明了SSH端口转发的具体风险。
如果您位于防火墙内,并且可以通过SSH访问公共Internet上的计算机,则可以SSH连接到公共系统,并在此过程中创build隧道,以便公共Internet上的用户可以完全访问networking中的系统绕过防火墙。
如果fred是你的桌面,barney是你公司的重要服务器,而且wilma是公开的,则运行(在fred上):
ssh -R *:9000:barney:22 wilma
并且login会让攻击者ssh在wilma上端口9000,并与barney的SSH守护进程交谈。
您的防火墙永远不会将其视为传入连接,因为数据是通过最初build立在传出方向的连接传递的。
这是烦人的,但一个完全合法的networking安全策略。
如果他们阻止了一些混杂的端口,让一些东西通过并且随机地阻塞一些其他东西(我喜欢Paul Tomblin关于阻止SSH并允许Telnet的人的悲惨故事),那么他们或者有一个非常奇怪的边缘情况确保他们的networking外围,或者至less从外部看他们的安全政策,显然没有想到。 你无法理解这样的情况,只要向他们付出痛苦的代价,并随着你的一天继续下去。
如果他们阻止所有港口, 除非有一个特定的商业案例允许通过该港口的stream量,在这一点上,他们精心pipe理,然后他们这样做,因为他们在他们的工作能力。
当你试图编写一个安全的应用程序时,是否可以让其他进程轻松地读取和写入信息,或者是否有一些经过仔细logging的API,您希望人们打电话,哪些是您仔细清理的?
风险pipe理 – 如果您觉得进入或离开您的networking的stream量是一个风险,那么您可以尽量减lessstream量到达互联网的方式,无论是路由数量还是方法数量。 然后,您可以监视和过滤这些选定的“祝福”网关和端口,以确保通过它们的stream量符合您的期望。
这是一个“默认拒绝”的防火墙策略,通常被认为是一个好主意,有几个注意事项,我会来。 这意味着,除非有特定的理由来阻止它,否则所有的东西都被阻止,理由的好处大于风险。
编辑:我应该澄清,我不只是在谈论一个协议被允许和另一个被阻止的风险,我正在谈论的信息被允许stream入或stream出networking在一个不受控制的业务的潜在风险办法。
现在要注意的是,可能还有一个解决scheme:
当你被阻挡在某个东西之外时,这可能会令人讨厌,这是你在一些客户中所处的位置。 通常情况下,防火墙负责人认为自己的工作是说“不”,而不是“风险有多大,现在有什么好处,让我们看看我们能做些什么”。
如果你跟谁为你的客户pipe理networking安全,他们可能会为你设置一些东西。 如果你能识别一些特定的系统,你需要访问和/或保证你只能连接一个特定的IP地址,那么他们可能会更乐意为SSH连接创build一个防火墙例外,将是开放连接到整个互联网。 或者他们可能有一个VPN设施可以用来隧穿防火墙。
在纽约州罗切斯特的一家大公司,当我在那里工作时,曾经制作过很多电影屏蔽了传出的ssh,但允许telnet ! 当我问到这个问题时,他们说ssh是个安全漏洞。
换句话说,公司有时会做出愚蠢的决定,然后为了安全而弥补一些错误的借口,而不是承认自己的错误。
如果公司不允许外部login,我可以理解阻止入站SSH通信。 但是,这是我第一次听说有一个出站SSH块。
需要注意的是,这样的防火墙可能会限制偶然的SSH用户。 如果有人真的想在外面进行SSH(通常是通过企业networking之外的访问的服务器/机器),他们可以很容易地在除22(端口80)以外的端口上运行SSH服务器。 该块将被轻松绕过。
还有几个公共领域的工具可以让你通过HTTP(端口80或者HTTPS端口443)退出企业,并且提供代理让你连接到外部的端口22。
编辑:好吧,等一下,我有一个想法,为什么这可能是一个政策。
有时候,人们使用SSH隧道来绕过诸如IM和Bittorrent等协议的基本出站防火墙。 这//可能//已经触发了这样的策略。 不过,我仍然觉得这些隧道工具大部分都能够在22以外的端口上工作。
这种出站隧道可以阻塞的唯一方法是通过dynamic检测SSH通信并(dynamic)阻止这些TCP连接。
这可能是一个监pipe/合规问题。 您的雇主希望能够读取/存档所有通信。 这往往是银行业等行业的一个要求。
通常情况下,除非需要阻塞所有传出连接,直到尝试没有人请求端口22可用于传出连接(只有80,433等)时,情况更是如此。 如果是这种情况,那么解决scheme可能就像联系IS / IT一样简单,并告诉他们为什么需要添加exception,以便您的工作站可以与特定主机或一般情况下build立SSH连接。
有时候,人们可能会使用这个工具来使用SSH来设置代理(通过链接上的端口转发)来规避其他控制。 在一些受监pipe的行业(如银行),由于合法的原因需要监控/logging所有通讯(阻止内部交易,检测/阻止公司或个人数据的转移等等)或公司,那么这可能是一个非常重要的因素是内部泄漏泄漏,意外或以其他方式泄露商业机密的极大恐惧。 在这些情况下,使用3G链接(或者其他技术,例如通过HTTP隧道SSH)规避这些限制可能违反了您的合同,因此被解雇(或者可能更糟的是法律上的违法),所以要小心在尝试之前,请先达成一致。
另一个原因可能是,如果某件不利的事情能够将自己安装在公司运行的机器上,那么可以减less即将到来的占用空间(对于公司防火墙内的主机以及全世界的内部服务)。 如果在端口22上没有SSH连接是可能的,那么试图使用powershellSSHlogin作为其传播路由之一的许多简单的黑客将被阻止。 在这种情况下,您可能再次只能请求添加exception,以便您的机器可以build立SSH连接,如果这些连接可以被控制防火墙的人理解。
您的客户可能拥有他们希望保留的不重要的数据。 出站SSH对于整个networking来说是一件非常糟糕的事情。 绕过代理服务器,泄漏敏感数据,而且通常令人讨厌,这是相当简单的。
国际海事组织,任何通过networking/互联网周边的东西都应该被理解和控制。 如果一组开发人员需要通过ssh访问托pipe服务提供商的服务器,那很好,但也需要logging。 一般来说,在我工作过的地方,我们build立了专门的站点到站点的VPN连接到我们networking之外的地方(本质上扩展了我们的内部networking),并且通过互联网避免SSH等客户端协议。
在我看来,阻止22号出港的主要原因有两个。
首先,正如人们已经提到的,SSH端口转发可以用作代理或绕过其他端口和服务,以避免IT策略声明这种stream量是不允许的。
其次,许多恶意软件/僵尸networking将使用端口22,因为它经常被视为“安全”,因此被允许。 然后,他们可以从该端口启动进程,受感染的计算机也可能会启动SSH蛮力攻击。
我知道一些滥用SSHfunction的人通过SSH安装SOCKS代理,从而规避了一些网站的限制。
或者甚至是一些简单的端口转发( ssh -L ....
),如果由于网站限制,端口确实被阻塞,我会去:
让他们到一张桌子,让他们详细说明为什么这被阻止。 当然,为了开发一个内部产品需要访问一个外部SSH端口,你需要有充分的理由(内部存在:为什么当你为一家公司snakeoil.invalid工作时,你需要访问boxA.example.com)
但我还没有看到一家公司阻止传出的SSH 🙂
因为SSH可以用作VPN。 这是encryption的,所以networkingpipe理员几乎不知道什么是离开他们的networking(转储的客户数据库等)。 我在每月的专栏“秘密隧道”中报道了这个东西。 某些3G互联网的成本比不必担心将encryption协议引导出networking的成本要低很多。 此外,如果您默认阻止传出端口22和stream量检查,您可以轻松地在非标准端口上findSSH,从而find违反安全策略的人。
这不是特别阻塞端口22的情况,因为pipe理员有一个反对SSH的东西,更多的情况下只打开他们知道他们需要打开的端口。 如果您的pipe理员没有被告知需要SSH打开,您的pipe理员将会按照与在服务器上禁用未使用的服务相同的原则来阻止它。
很显然,一个出站的TCP / 22块很容易规避,除非networkingpipe理员认真的努力阻止特定的 SSHstream量。 更重要的是, 资产pipe理员需要足够的资金来运行足够的资产清查,以便抓取第二块网卡上的3G调制解调器和可疑IP地址。 我们在我们的地区有ClearWire服务,所以我们甚至把WiMax作为我们networking安全的terminalselect。
我们不是一个主要关心信息泄露的机构。 但是如果我们这样做的话,我们需要将严厉的networking安全政策与严厉的资产政策和审计相结合。 据我所知,我不认为现成的安全套件会closures某种资产的networkingsockets,而这些资产是通过某种外部networking连接进行的。 这可能是即将到来的。
在没有这样的一揽子计划的情况下,资产盘存过程是捕捉像3G或WiMax这样的最终运行networking连接的最佳方法之一。
最后,TCP / 22的盲阻塞只会阻断最终用户违反AUP的工作networking的意图。
当他们发现人们正在通过22号stream量的时候,我看到了22个被阻挡的地方。对于我们这些需要它的人来说,这是一个阻碍,但是这个组织站了稳。
所有明显的答案都已经说明了。 这是一个encryption的协议,可以用来通过创build隧道来避开策略(这是一种超越企业网页filter的好方法)以及未经授权的通信渠道(反向代理)所构成的威胁。
确实,telnet应该在任何现代networking中被破坏。 但是,我可以看到在禁止SSH的情况下允许远程loginnetworking。 Telnet的能力比ssh差,我可以随时通过我的嗅探器实时监控这个stream。 如果我的核心网中没有任何telnet设备,而某些用户想远程login,我该怎么处理。 我可以看到它,并确认这不是一个威胁。
当然,这一切都取决于默认的策略是阻止所有的出口,只允许特定的协议。 奖励点数,如果你在他们之前代理他们的边缘。
大多数较大的组织将阻止所有内容,只允许通过代理服务器访问HTTP / HTTPS。
听到任何公司允许从台式机或服务器直接外部连接,除非有特定的需要,我会非常惊讶。
没有什么能阻止你在端口80上运行远程sshd。ssh和sshd都有一个-p选项来设置端口。
当然,如果你的pipe理员很聪明,他们应该监视sshstream量,而不仅仅是端口22的stream量。 所以,这听起来像你有一个政策问题,而不是一个技术问题。
正如其他人指出的那样,encryption的协议可能会导致人们不得不担心各种合规性问题的胃灼热。