我是一名程序员,我曾为一些客户工作过,他们的网络会阻止端口 22 上的传出连接。考虑到程序员经常需要使用端口 22 进行 ssh,这似乎是一种适得其反的程序。最好的情况是,它迫使程序员向公司收取 3G 互联网费用。最坏的情况是,这意味着他们无法有效地完成工作。
考虑到由此造成的困难,有经验的系统管理员能否解释一下这种看似双输的行动所期望的利益?
答案1
我没有看到任何人详细说明 SSH 端口转发的具体风险。
如果您在防火墙内,并且具有对公共互联网上某台机器的出站 SSH 访问权限,则您可以通过 SSH 连接到该公共系统,并在此过程中创建隧道,以便公共互联网上的人们可以通过 ssh 连接到您网络内的系统,完全绕过防火墙。
如果 fred 是您的桌面,barney 是您公司的一个重要服务器,而 wilma 是公共的,则在 fred 上运行:
ssh -R*:9000:barney:22 威尔玛
登录后,攻击者可以通过 ssh 连接到 wilma 的 9000 端口,与 barney 的 SSH 守护进程通信。
您的防火墙永远不会将其视为传入连接,因为数据是通过最初在传出方向建立的连接传递的。
这很烦人,但却是一项完全合法的网络安全政策。
答案2
如果他们阻塞了一大堆端口,让某些东西通过,而随机阻塞其他东西(我喜欢 Paul Tomblin 讲述的那些阻塞 SSH 并允许 Telnet 的人的悲惨故事),那么他们要么在保护网络边界方面存在非常奇怪的极端情况,要么他们的安全政策(至少从外部来看)显然是经过深思熟虑的。你无法理解这样的情况,所以就按照那些让人头疼的人的正常费率收费,然后继续你的一天吧。
如果他们封锁了所有端口除非有特定的商业理由允许流量通过该端口,此时需要对其进行仔细管理他们这么做是因为他们有能力胜任自己的工作。
当您尝试编写一个安全的应用程序时,您是否让其他进程可以随意读取和写入信息,或者您是否有一些经过仔细记录的 API,您希望人们调用这些 API,并且您会仔细地对其进行清理?
风险管理 - 如果您认为进出网络的流量进入互联网存在风险,那么您可以尝试将流量进入互联网的方式(无论是路由数量还是方法数量)降至最低。然后,您可以监控和过滤这些选定的“受保护”网关和端口,以尝试确保通过它们的流量符合您的预期。
这是一个“默认拒绝”防火墙策略,通常被认为是一个好主意,但有几个注意事项,我会谈到。这意味着除非有特定原因需要解除阻止,并且原因的好处大于风险,否则所有内容都会被阻止。
编辑:我应该澄清一下,我不仅仅是在谈论允许一种协议而阻止另一种协议的风险,我还在谈论允许信息以不受控制的方式流入或流出网络对业务造成的潜在风险。
现在来看看注意事项,以及可能的释放计划:
当你被某些事情挡在门外时,你可能会感到很烦躁,而这正是你与某些客户打交道时所处的境地。很多时候,负责防火墙的人认为他们的工作就是说“不”,而不是“这里有风险,现在有什么好处,让我们看看我们能做些什么”。
如果您与负责管理客户网络安全的人员交谈,他们可能会愿意为您设置一些东西。如果您能确定您需要访问的他们那边的几个特定系统,和/或保证您只从特定 IP 地址连接,他们可能更乐意为这些特定条件的 SSH 连接创建防火墙例外,而不是直接打开与整个互联网的连接。或者他们可能有一个 VPN 设施,您可以使用它来穿越防火墙。
答案3
我工作的时候,纽约州罗切斯特市的一家大型公司曾经制作过很多电影,他们封锁了传出的 ssh,但允许远程登录!当我询问时,他们说 ssh 是一个安全漏洞。
换句话说,公司有时会做出愚蠢的决定,然后编造有关安全的荒谬借口而不是承认错误。
答案4
这可能是一个监管/合规问题。您的雇主希望能够阅读/存档所有通信。这通常是银行等行业的要求。