问题标签 [vpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4632 浏览

ssl - HAProxy 可以在一个 IP 和端口上同时处理 Web 服务器和 SSL VPN 吗?

我需要一个反向代理,通过坐在一个 IP/端口上来支持 Lablz Web 服务器和 SSL VPN Adito(SSL Explorer 分支)。使用 Nginx 无法实现这一点。未能将 Adito 用作通用反向 HTTP 代理。

如果 HAProxy 无法感知 HTTP 流量,它是否可以回退为 TCP 代理?换句话说,如果它的第 7 层检查确定这不是 HTTP 流量,它是否可以退回到第 4 层?

这是我的设置

  • 具有一个公共 IP(弹性 IP)的 EC2 机器。
  • 只有一个端口是开放的——443。
  • Stunnel 位于 443 并将流量传递给 HAProxy(我不喜欢使用 Stunnel,但 HAProxy 还没有完全支持 SSL,这与 Nginx 不同)。
  • HAProxy 必须配置为将一些 HTTP 流量传递到一台服务器(位于 SVN 服务器前面的 Apache 服务器),并将其余 HTTP 流量传递到我们的 Lablz Web/App 服务器。
  • 所有非 HTTP 流量都必须转发到 Adito VPN。
    • 这个流量是:
      • VNC、NX、SMB
      • ...以及 Adito 支持的所有其他协议

我不能依赖源 IP 地址或端口将流量拆分为 HTTP 和非 HTTP。

那么,这样的配置可以在 HAProxy 中完成吗?可以为此使用任何其他反向代理吗?如果我对 HAProxy 的想法不正确,请告诉我,并且可以使用替代方法。

顺便说一句,Adito SSL VPN 很棒,如果此设置有效,我们将能够为 Lablz 开发人员提供出色的一键式单点登录安全 VNC-over-HTTPS 访问他们在云中的盒子。

没有解决方案,但通过 Adito - 请证明我错了。但请不要说 VNC over SSH 更好。是的,VNC-over-SSH 更快、更安全,但也更难(对于我们的目标用户群)设置并假定用户位于允许端口 22 上的出站流量的防火墙后面(并非总是如此)。

此外,Adito 不仅仅是远程访问网关——它是一个成熟的浏览器内 VPN、一个软件分发平台等等。我与 Adito 的人没有联系 - 请参阅我们 Lablz 博客上的 Adito 帖子

0 投票
2 回答
2363 浏览

wmi - 在 Vista 上通过 WMI 获取 VPN IP 地址

我们如何枚举所有网络连接以便使用 WMI 提取 VPN 连接的 IP 地址?在 XP 上,Win32_NetworkAdapterConfiguration 工作正常,但在 Vista 上,它似乎只枚举物理连接......

0 投票
2 回答
2481 浏览

c# - 以编程方式隐形连接 Windows VPN

如何编写代码以通过 Windows VPN 客户端进行连接?

我希望这个过程在登录期间不可见地发生。

0 投票
1 回答
4795 浏览

asp.net - 仅当 VPN 进入我的办公室网络时,开发网站上的 ExceptionHandling 错误

我在 ASP.NET Web 应用程序中使用企业库异常处理块。我昨天刚在工作中使用这个应用程序(非 VPN),一切正常。我今天在家工作,一旦我将表单验证到应用程序中,我就会收到此错误:

为 exceptionHandling 创建配置节处理程序时出错:无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.ExceptionHandling,Version=4.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)(C:\Projects\ThesaurusSME\ThesaurusSME\web.config 第 5 行)

此错误在c:\EntLib41Src\Blocks\Common\Src\Configuration\SystemConfigurationSourceImplementation.cs中发生,在此方法中:

我检查了 bin 文件夹中的所有文件,都是 4.1.0.0。

引用这些部分的 web.config 的所有其他部分也显示 4.1.0.0。

如果有帮助,InnerException/FusionLog 会说:

/Users/heckacr1/AppData/Local/Temp/Temporary ASP.NET Files/root/ac718580/56b7f71/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。日志:尝试下载新 URL 文件:///C:/Users/heckacr1/AppData/Local/Temp/Temporary ASP.NET Files/root/ac718580/56b7f71/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling/Microsoft.Practices.EnterpriseLibrary .ExceptionHandling.DLL。日志:正在尝试下载新的 URL 文件:///C:/Projects/ThesaurusSME/ThesaurusSME/bin/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。EnterpriseLibrary.ExceptionHandling/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。日志:正在尝试下载新的 URL 文件:///C:/Projects/ThesaurusSME/ThesaurusSME/bin/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。EnterpriseLibrary.ExceptionHandling/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。日志:正在尝试下载新的 URL 文件:///C:/Projects/ThesaurusSME/ThesaurusSME/bin/Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.DLL。 警告:比较程序集名称导致不匹配:公钥令牌错误:无法完成程序集设置(hr = 0x80131040)。探测终止。"

为什么只有当我离开有线 Intranet 并使用 VPN 时才会发生这种情况?

0 投票
3 回答
38305 浏览

java - 在不安装客户端软件的情况下连接到 VPN

有时我必须编写软件来与位于 Cisco VPN 中的特定服务器建立套接字。我只是像没有 VPN 一样编写我的软件(使用标准套接字库)。当需要运行该程序时,我使用计算机上安装的客户端软件手动连接到 VPN,然后运行该程序本身。

但是,最好编写软件以利用能够通过 VPN 直接通信的专用套接字库,而无需使用任何已安装的客户端软件。

这是一些说明我想要的功能的Java代码:

是否可以在不安装任何客户端软件的情况下与 VPN 建立这样的连接?

0 投票
6 回答
3609 浏览

c# - 是否有 SOAP 代理服务器之类的东西,还是我必须自己动手?

免责声明:我试过谷歌搜索可以做我想做的事情,但没有运气。我希望这里有人可以伸出援手。

背景

我有一个使用 WSE 2.0 库访问安全 Web 服务的 .NET 类库。Web 服务为中央数据库提供了一个前端(它实际上是跨越多个客户的数据共享网络的一部分),并且类库提供了一个简单的 Web 服务调用包装器,以使其可以从旧版 VB6 应用程序中访问。遗留应用程序使用类库来检索信息并将其发布到 Web 服务。目前,应用程序和类库 DLL 都安装在多个工作站的客户端。

问题

问题是我们正在访问的 Web 服务使用 HTTPS,并且需要向 Web 服务提供有效的 X509 客户端证书才能访问它。由于我们所有的组件都存在于客户端机器上,这导致了部署问题。例如,我们必须在每台客户端机器上下载并安装每个用户的证书,每个用户可能需要通过我们的应用程序访问 Web 服务。此外,Web 服务器本身必须通过 VPN(尤其是 OpenVPN)访问,这意味着必须在每台客户端计算机上安装和配置 VPN 客户端。这是一个主要的痛苦(我们的一些客户有几十个工作站)。

建议的解决方案

建议的解决方案是将所有这些逻辑移动到客户站点上的中央服务器。在这种情况下,我们的遗留应用程序将与本地服务器通信,然后该服务器将关闭并将请求转发到真正的 Web 服务。此外,作为简化和集中部署工作的一部分,所有 X509 证书都将安装在服务器上,而不是安装在每台单独的客户端计算机上。

到目前为止,我们提出了三个选项:

  • 找到一个现成的 SOAP 代理服务器,它可以接收基于 HTTP 的 SOAP 请求,修改HostSOAP 消息的标头和路由相关部分(因此它们指向真实的 Web 服务器),打开到真实 Web 的 SSL 连接服务器,向服务器提供正确的客户端证书(基于用户名到证书的映射),转发修改后的请求,读取响应,将其转换回纯文本,然后将其发送回客户端。
  • 手动编写一个代理服务器来完成我刚才提到的所有事情。
  • 想出完全不同的、有希望更好的方法来解决这个问题。

基本原理

尝试查找和/或编写 SOAP 代理服务器的基本原理是根本不需要修改我们现有的 .NET 包装库。我们只需将其指向代理服务器而不是真正的 Web 服务端点,使用普通的 HTTP 连接而不是 HTTPS。代理服务器将处理请求,修改它以使真正的 Web 服务接受它(即更改SOAPAction标头以使其正确),处理 SSL/证书握手,并将原始响应数据发送回客户。

然而,这对我来说充其量是一个可怕的黑客攻击。那么,我们在这里的选择是什么?

  • 我是否咬紧牙关编写自己的 HTTP/SSL/SOAP/X509 感知代理服务器来完成这一切?
  • 或者...是否有一个具有足够可扩展 API 的现成解决方案,我可以轻松地让它做我想做的事
  • 或者……我应该采取完全不同的方法吗?

我们试图解决的关键问题是 (a) 集中存储证书的位置以简化证书的安装和管理,以及 (b) 进行设置以便 VPN 连接到 Web 服务器只发生在单台机器上,而不是需要每个客户端都安装了 VPN 客户端软件。

请注意,我们不控制托管 Web 服务的 Web 服务器。

编辑:为了澄清,我已经在 C# 中实现了一个(相当糟糕的)代理服务器,它确实满足了要求,但是我对这个问题的整个方法感觉根本上是错误的。所以,最终,我正在寻找让我确信我在正确的轨道上的保证,或者有用的建议告诉我我正在以完全错误的方式解决这个问题,以及以更好的方式做这件事的任何提示(如果有的话,我怀疑有)。

0 投票
1 回答
5607 浏览

windows - 从主机操作系统访问来宾虚拟 PC 上的 VPN 连接

我作为我的主机操作系统运行 - Win 7 x64 并运行 Virtual PC XP 的一个实例。我在 Guest XP VPC 操作系统上运行 Cisco ISPec VPN 客户端,并且可以成功连接到我公司的企业网络。

我无法在主机上运行 Cisco IPSec 客户端 sw,因为它是 64 位的,Cisco 在其 IPSec 客户端产品上不支持 64 位,而且我目前在迁移到 Cisco 方面没有太多选择SSL VPN 客户端 (AnyConnect)。

XP VPC Guest OS 使用的不是NAT 网络适配器,而是机器的物理适配器。

当 Cisco 客户端未在 XP VPC 来宾操作系统上运行时,我可以从来宾操作系统 ping 主机,反之亦然。

几个问题:

  1. 当 Cisco 客户端运行并连接时,来宾操作系统无法再看到主机。

  2. 当 XP VPC 来宾连接到 VPN 时,我希望能够从主机访问 VPN。

对于#2,我尝试了至少一种技术,描述为:xenomorph.net/use-cisco-vpn-under-vista-x64/

此技术打开 Cisco 伪网络适配器上的 ICS。

我无法让它工作。但是,我可能错误地遵循了说明。

我也看过: http: //www.pringle.net.nz/blog/PermaLink,guid,12ee0de7-f998-4084-8b06-537b3dbd5d9a.aspx

...这涉及使用环回适配器并在主机和来宾操作系统之间进行桥接。我没有遵循这一点,因为说明并不完全清楚。

最后,我在网上看到了有关 OpenVPN x64 构建的参考资料,但我犹豫是否要朝那个方向发展。

任何人都可以引导我朝着正确的方向前进吗?

0 投票
1 回答
489 浏览

java - 来自 Java 小程序的安全 Oracle 连接

我编写了一个连接到托管服务器上的 Oracle 的 Java 小程序。我一直在通过 VPN 连接到我的托管服务并连接到 Oracle 数据库来测试它。我已经这样做了,因此我不必将 Oracle 数据库暴露给外部连接,但现在我需要能够连接到 Oracle 而无需在 VPN 上。有什么方法可以设置安全证书或其他东西,以便 Oracle 只接受来自我的 java 小程序的外部连接?

0 投票
1 回答
6053 浏览

c# - 如何在 Windows 窗体应用程序中获取 VPN 用户的当前用户身份?

我们目前正在开发一个 Windows Smartclient,它需要使用其 AD 组成员身份对用户进行身份验证。

我们现在要求一些用户通过 VPN 连接。有什么方法可以从 VPN 登录中获取 AD 帐户身份和组?

WindowsIdentity.GetCurrent() 返回本地用户帐户而不是他们的 VPN 帐户信息。

本地帐户名称与用于 VPN 连接的 AD 帐户名称不同。即用户在他们的家用电脑上,并使用他们的工作 AD 帐户连接到办公室。

0 投票
3 回答
4241 浏览

mysql - 连接/隧道到远程服务器以绕过防火墙

我想在工作中开发的 MySQL Db 上试用一些 MySQL 软件,例如 Workbench。在多次尝试建立连接失败后,我终于询问了一位服务器管理员是否做错了什么,并被告知 Db 位于防火墙后面。所以我可以使用 phpMyAdmin,因为它安装在服务器端,而不是 Excel、Workbench 等(来自我的机器)。

所以我想知道是否有一种相当标准的方法可以与服务器建立类似 VPN 的连接。目前我使用 SSH 客户端连接没有问题。但显然这不是将我的本地应用程序链接到服务器。那么我能否以我的整个系统(可以这么说)被认为已登录到服务器的方式进行连接?VPN 是我能做的最接近的类比,但这不是一个选择。

和....

这被认为是相当“黑帽”还是只是我不知道该怎么做但所有酷孩子都在合法地做的事情?

谢谢