我想为我的团队的开发人员提供远程工作解决方案。
虽然每个开发人员都运行自己的 Web 应用程序堆栈(服务器和工具),但 DB 和许多其他应用程序(如 sharepoint、project forge)都托管在我们公司网络内的虚拟机上,不对外部访问开放。为了工作,任何开发人员都需要访问本地公司网络(域?)。
我们的物理机器可以访问互联网(就像我现在正在问这个问题一样)。
我可以在我团队的一台物理机器(入口机)上安装某种反弹器、隧道端点,然后将接收到的流量作为自己的流量调度吗?
我想到了以下设置:
- 团队成员在家工作的远程机器:修改主机文件以将所有公司域调用重定向到入口机器 IP。
- 某种隧道连接,让流量从互联网进入到 EntryMachine(这里强制要求对传入流量进行安全保护,对吗?)
- 将流量调度到公司网络,就好像它是来自本地机器一样。
它可以工作吗?用什么工具?
现有的解决方案:
我们的支持提出了一种 VPN 解决方案(我认为),允许管理人员访问邮件和目录,但这只占开发人员需求的 15%。
还有通过 VPN 的远程桌面控制解决方案,但是在远程机器上进行开发的生活质量非常低,这不利于远程工作。
他们目前不愿意讨论更多解决方案。
抱歉,如果这是有史以来最愚蠢的问题,我自己还没有足够的知识来找到答案。
我真的想让我的团队有远程工作的可能性;谢谢您的任何指点。
答案1
你说 ”我想为团队中的开发人员提供远程工作解决方案“但看起来网络管理不是在你的直接控制之下,以及你无法直接将“你的”服务暴露给互联网(换句话说:你不能你的VM 直接暴露在互联网上)。从另一端来看,您的个人计算机/工作站做可以完全访问互联网。
如果以上内容正确(如果不正确,请“评论”),您的场景非常复杂,详细讨论肯定需要比此答案占用更多的空间。无论如何,由于您似乎对“指针”感兴趣(“...感谢您的任何指点...”),以下是我的建议。
“我想为团队中的开发人员提供远程工作解决方案”
VPN,当然,是继续前行。句号。
无论如何,你说:“我们的支持人员提出了一个 VPN 解决方案(我认为),允许管理人员访问邮件和目录,但这只占开发人员需求的 15%“
我可以清楚地看到您(“开发人员”)和网络管理员(“网络人员”)之间存在某种“协议不匹配”:你们(双方)使用的不是同一种语言,根本无法理解对方。这个问题很容易解决:
写下详细的列出您的员工在开发活动中需要访问的所有服务(虚拟机名称、IP 地址、TCP/UDP 端口),并明确说明这些服务是“强制性的”(必须)、“可取的”(可以)还是“有用的”(并非绝对必要)。请花时间填写这样的列表,尽量避免出现“我需要完全访问所有内容”的情况,因为这是不是解决我上面提到的协议不匹配问题;
尽力正确理解现有 VPN 服务提供的内容。作为初学者,您可以询问详细信息。请注意,您描述的是:“VPN 解决方案(我认为)允许管理人员访问邮件和目录“肯定是不够的,并且表明对现有服务的理解不够理想(这又是一个重大问题,就像前面提到的“协议不匹配”问题一样)。作为起点:
- 您和/或您的员工是否有资格被分配 VPN 访问权限以访问公司网络?如果没有,为什么?
- 如果是,通过 VPN 连接时可以访问哪些服务器/服务(IP 地址和端口)?
- 如果您的“必须”和“可以”服务器丢失,哪种方式才是要求在启用 VPN 的网络中添加新服务器/服务的正确方法?
一旦解决了上述两点...
- 尽力向网络管理员描述现代软件开发实践做需要访问团队之间需要共享的服务(问题/跟踪器;构建服务器;测试服务器;CI/CD 平台等),从而增强了这些服务应与开发团队紧密绑定的概念,因此,与任何其他公司网络/服务脱钩。显然,我假设您的开发人员确实这样做不是直接作用于“生产系统”,并且您已经建立了适当的开发链,其第一阶段正是由上述开发服务器/服务完成的(因此,完全与“生产”脱钩)。最终的“目标”是将此类系统“限制”在适当/专用的网络段内,以便此类网络能够获得 VPN 可达性。
如果在各种讨论中您被告知任何类型的“安全策略”可以有效“阻止”VPN 服务/策略所需的修改:
请记住,“ICT 安全”几乎是每个企业的关键组成部分。无论如何,它的应用并不是一般意义上的“是”或“否”:根据公司、业务和许多其他因素,“ICT 安全”可以(由网络和系统管理员)按照“软”<=>“硬”的尺度应用,中间有很多点。因此,如果面对因一般安全问题而提出的“危险信号”,则:
尝试说服其他部分,你需要远程访问应被视为“由 DEV 拥有”的系统,并且不会以任何方式影响 PROD。因此,如果它们是“共享的”,则需要将它们分开,无论访问权限如何(也就是说:如果存在安全问题,则适用)还在公司内部本地访问时)。因此,这可能是重新定义网络和安全边界的适当时间范围;
免责声明:以下是极具风险/困难的论点,涉及公司政策的几个关键问题。请:酌情处理!!如果前面的讨论都失败了,你可以讨论一下开发团队工作站已经提供的无限互联网访问所导致的问题:基本上,从技术角度来看(让我坚持技术的),每个开发人员都可以已经使用自己的电脑上的“远程连接”软件,远程访问该电脑(只需在您喜欢的搜索引擎上搜索“远程访问软件”即可)。实际上,如果您真的有无限互联网接入,你甚至可以托管你的VPN 服务器外部公司网络,构建100%托管的“VPN网络”外部公司,端点托管在您的工作站之一上。我不会深入讨论这个问题……因为我真的认为不是需要。但你需要知道:1)只要有无限的互联网连接,就可以做到;2)我敢打赌,这 100% 不符合公司政策因此,你还是应该避免这种情况。
我就讲到这里。正如我所说,这些只是一些“提示”,旨在帮助您实现目标,以协商正确访问现有的 VPN 服务
答案2
您不能将 VPN 服务器放在防火墙/NAT 内的“EntryMachine”上。相反,您应该使用防火墙/路由器/UTM 作为 VPN 服务器。
此外,如果您无法控制防火墙,或者您无法使用 VPN 连接公司网络,则不应尝试绕过它。通过建立从“EntryMachine”到具有公共 IP 的第三台机器的某种连接,可以实现这一点。创建这样的后门可能违反公司政策。它肯定会使内部网络更容易受到攻击,因为它绕过了所有防火墙和入侵防御控制。
答案3
在工作中,我们使用 Openvpn 创建了一个私有 vpn 网络,这样我们就可以在家工作,但可以连接到办公室网络。每个人都可以拥有自己的 vpn 配置文件,或者您可以创建一个需要个人凭据(例如 IPA 凭据)的通用配置文件。
在这种情况下,您需要在办公室安装一个 openvpn 服务器,该服务器可以访问互联网和办公室网络,但您需要锁定对该服务器的访问,以便阻止传入/传出连接(openvpn 连接端口除外)。您可能应该将端口 22 保持开放,以便服务器能够连接来自办公室网络内部的连接。
如果您在办公室设置了自己的 DNS 服务器,则无需修改主机文件。您只需修改网络设置以指向办公室的 DNS 服务器即可。
我认为站点到站点 IPsec 隧道可能不适合您要做的事情。它们通常用于将两个网络连接在一起。
希望这有所帮助。