无头式 Cisco AnyConnect 客户端的“远程用户已被禁用”

无头式 Cisco AnyConnect 客户端的“远程用户已被禁用”

在 Linux 机器上,我们尝试使用 Cisco AnyConnect 版本建立 VPN 连接,anyconnect-linux64-4.10.05085-predeploy-k9如下所示:

printf '<user>\n<password>\ny' | /opt/cisco/anyconnect/bin/vpn -s connect <host>

我们得到这个错误:

  >> state: Connecting
  >> notice: Establishing VPN session...
The AnyConnect Downloader is analyzing this computer. Please wait...
Initializing the AnyConnect Downloader...
The AnyConnect Downloader is performing update checks...
The AnyConnect Downloader updates have been completed.
  >> notice: The AnyConnect Downloader is performing update checks...
  >> notice: Checking for profile updates...
  >> notice: Checking for customization updates...
  >> notice: Performing any required updates...
  >> notice: The AnyConnect Downloader updates have been completed.
Please wait while the VPN connection is established...
  >> state: Connecting
  >> notice: Establishing VPN session...
  >> notice: Establishing VPN - Initiating connection...
  >> state: Disconnecting
  >> notice: Disconnect in progress, please wait...
  >> error: VPN establishment capability for a remote user is disabled.  A VPN connection will not be established.
  >> state: Disconnected

根据互联网上的评论,我们尝试添加/opt/cisco/anyconnect/profile/Profile.xml包含以下内容的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <LinuxVPNEstablishment>AllowRemoteUsers</LinuxVPNEstablishment>
  </ClientInitialization>
</AnyConnectProfile>

但无济于事。

允许远程用户建立 VPN 连接的正确方法是什么?

答案1

所以事实证明AllowRemoteUser必须进行设置在服务器端,而不是客户端。

添加

<LinuxVPNEstablishment>AllowRemoteUsers</LinuxVPNEstablishment>

VPN 服务器上的某些.xml文件中的错误消失。


很有趣地知道

  • 为什么 AnyConnect 首先区分 Windows 和 Linux 客户端
  • 为什么通过 AnyConnct macOS 二进制文件从 macOS 客户端建立连接确实有效- 它们是否被视为 Windows / 完全不受限制?

答案2

经过长时间的尝试,我终于找到了适合我的 Hyper-V 情况的解决方法。

  1. 我在想要初始化 Cisco AnyConnect VPN 的主机上启用了 PSRemoting。
  2. 我在“C:\temp”中创建了一个文件“login_info”,内容如下:

连接 {vpn_endpoint} {用户名} {密码}

  1. 我创建了一个 powershell 脚本“any.ps1”,内容如下:

cd“c:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client”Get-Content“C:\temp\login_info”|.\vpncli.exe -s

  1. 然后我通过 PS Remoting 从我的系统连接到主机:

$cred = 获取凭据 Enter-PSSession -计算机名称 {hostname_or_IP} -凭据 $cred

  1. 我运行了“.\any.ps1”脚本。此操作使我与 PS Remoting 断开连接,但 RDP 会话仍处于活动状态。
  2. 我使用目录“c:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client”内的命令“vpncli.exe status”检查了状态,连接处于活动状态。

相关内容