如何使用 XML 文件配置 OpenConnect?

如何使用 XML 文件配置 OpenConnect?

我不太熟悉 VPN,而且使用 连接到 VPN 服务时遇到了困难OpenConnect

我购买的 VPN 服务使用Cisco AnyConnect,我无法在 Linux 上使用,但该OpenConnect应用程序应该可以做同样的事情。我已OpenConnect为其安装了 GUI。

在其他操作系统(例如 Android)上,VPN 服务只需让我将Cisco AnyConnect客户端链接到 XML 文件,AnyConnect然后使用该文件连接到服务器即可。除了提供此 XML 文件外,客户端软件中无需进行任何其他配置,这让我认为此 XML 文件包含连接到所有这些 VPN 服务器所需的所有信息 - 无需配置复选框、无需下载证书等。

一旦我提供了 XML 文件,AnyConnect就会生成 VPN 服务器列表,我会选择一个,然后在随后的弹出框中填写我的用户名和密码,就这样。

<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="false">false</UseStartBeforeLogon>
<StrictCertificateTrust>false</StrictCertificateTrust>
<RestrictPreferenceCaching>false</RestrictPreferenceCaching>
<RestrictTunnelProtocols>IPSec</RestrictTunnelProtocols>
<BypassDownloader>true</BypassDownloader>
<WindowsVPNEstablishment>AllowRemoteUsers</WindowsVPNEstablishment>
<CertEnrollmentPin>pinAllowed</CertEnrollmentPin>
<CertificateMatch>
<KeyUsage>
<MatchKey>Digital_Signature</MatchKey>
</KeyUsage>
<ExtendedKeyUsage>
<ExtendedMatchKey>ClientAuth</ExtendedMatchKey>
</ExtendedKeyUsage>
</CertificateMatch>
<BackupServerList>
<HostAddress>localhost</HostAddress>
</BackupServerList>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>server 1</HostName>
<HostAddress>japan.examplevpn.com</HostAddress>
</HostEntry>
<HostEntry>
<HostName>server 2</HostName>
<HostAddress>amsterdam.examplevpn.com</HostAddress>
</HostEntry>  
</ServerList>
</AnyConnectProfile>

OpenConnect在 Linux 上似乎没有任何规定可以导入 XML 文件。

OpenConnect根据 XML 文件的内容,我需要做什么来配置每个连接?

在此处输入图片描述 在此处输入图片描述

答案1

您应该将 xml 转换为 base 64 编码 config.xml | tr -d '\n' > config.xml.base64

然后在 /etc/NetworkManager/system-connections/ 中使用编辑器手动打开连接

您的 xml 配置文件应作为 base64 值保存在 [vpn-secrets] 配置部分中:

[vpn-secrets] xmlconfig=

答案2

这不是您想要的答案,但不幸的是,OpenConnect 无法原生支持任何有用的 XML 文件。它只能从中读取主机名和用户组,但不能读取其他内容。

源代码清楚地表明:https://github.com/openconnect/openconnect/blob/master/xml.c

实际上,这意味着你最多可以这样做:

<openconnect>
    <ServerList>
        <HostEntry>
            <HostName>vpn.example.com</HostName>
            <HostAddress>vpn.example.com</HostAddress>
            <UserGroup>test123</UserGroup>
        </HostEntry>
    </ServerList>
</openconnect>

相关内容