在 C# 桌面应用程序中使用 Open*** 实现拆分和隧道

Posted

技术标签:

【中文标题】在 C# 桌面应用程序中使用 Open*** 实现拆分和隧道【英文标题】:Implement Split and Tunneling using Open*** in C# desktop application 【发布时间】:2021-10-26 03:54:14 【问题描述】:

我创建了使用Open*** Community 连接到*** 服务器的应用程序,它工作正常并且可以正确连接和断开*** 服务器,这里我有另一个要求。

使用我想要拆分和隧道 *** 连接的相同代码,我搜索了很多,但没有得到任何解决方案。

这里是使用 Open*** 连接 *** Server 的代码:

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo

    WindowStyle = ProcessWindowStyle.Hidden,
    FileName = @"C:\Program Files\Open***\bin\open***.exe",
    Arguments = "--config server.o*** --auth-user-pass o***pass.txt",
    Verb = "runas"
;
process.StartInfo = startInfo;
process.Start();

我想使用 *** 是特定的应用程序。

【问题讨论】:

看看here和here 【参考方案1】:

虚拟专用网络 (***) 拆分隧道让您可以通过加密的 *** 路由您的一些应用程序或设备流量,而其他应用程序或设备可以直接访问互联网。这将它与 full tunnell 区分开来,其中所有流量都来自 ***,没有区别。

Open*** 中的拆分隧道还在基础设施/配置级别设置中实现,而不是在运行时使用代码进行过滤。

Open***Setting up IP Whitelisting with Split Tunneling for SaaS using Open*** Access Server有一篇很好的文章

根据链接,

1.如果您还没有 Open*** 访问服务器,请先设置。您可以在 AWS、Google Cloud、Oracle、Azure 或 DO 上轻松启动新映像: - AWS - Azure - Google Cloud - Digital Ocean - Oracle Cloud

2。确保静态 IP 地址

3.在 Access Server 中配置访问规则: 我们希望通过配置实现两个目标:

由于此 *** 专用于 SaaS 安全性,我们只希望流向特定 SaaS 应用程序的流量通过 ***,而来自用户的所有其他互联网流量不使用 ***。

我们希望使用 *** 在允许登录的 SaaS 上设置源 IP 地址白名单。因此,我们需要授予对可以使用 NAT 机制访问 SaaS 应用程序的 IP 地址的访问权限。这样一来,来自 *** 客户端的流量似乎来自访问服务器的公共 IP 地址。

i) 设置NAT

ii) 登录到您的 Open*** 访问服务器的管理 Web UI 并进行以下配置更改:

通过转到配置 > *** 设置打开 NAT,然后在“路由”部分单击是,使用 NAT。 在字段中仅指定您的 SaaS 帐户的 IP 地址或 IP 范围,“指定应授予所有客户端访问权限的私有子网(每行一个): 为是否应通过 *** 路由客户端 Internet 流量选择否 不要推送 DNS,因为客户端只会获得由 NAT 子网定义的路由。为此,请将不更改客户端的 DNS 服务器设置设置为是。 最后,点击保存设置并更新运行服务器。

4.为 SaaS 帐户设置白名单访问权限

通过 IP 白名单增强 SaaS 安全性 例如,这里所有其他流量都将流经互联网,但您的应用程序从白名单 IP 的 *** 隧道流出的应用程序将被允许访问您的 SAAS(例如 Salesforce)

请参阅 Open*** https://open***.net/***-server-resources/setting-up-ip-whitelisting-with-split-tunneling-for-saas-using-open***-access-server/ 的链接以获取完整文档,其中大部分内容是直接抽象出来的。

【讨论】:

以上是关于在 C# 桌面应用程序中使用 Open*** 实现拆分和隧道的主要内容,如果未能解决你的问题,请参考以下文章

C# 编写 Windows 动态桌面软件实现之桌面交互功能

有没有人使用过嵌入在 .NET 桌面应用程序中的 Open Office?

C# Open/SaveFileDialog 使用不同的文件系统

如何在 C# 中有效地在桌面上绘图?

在 Windows 10 上具有多个虚拟桌面的 C# UI 自动化 API

将 C# 桌面应用程序移植到 Web