![openconnect 无法使用 -g 连接到 Anyconnect VPN 组](https://linux22.com/image/681177/openconnect%20%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20-g%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Anyconnect%20VPN%20%E7%BB%84.png)
我正在使用openconnect
连接到 VPN。以 身份启动客户端时sudo openconnect -v -u anaphory vpn-gw1.somewhere.net
,输入组和密码后即可连接。
# openconnect -v -u anaphory vpn-gw1.somewhere.net
[…]
XML POST enabled
Please enter your username and password.
GROUP: [Anyconnect-VPN|CLUSTER-DLCE|Clientless]:CLUSTER-DLCE
POST https://vpn-gw1.somewhere.net
Got HTTP response: HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
[…]
但是,当我在命令行上指定相同的组名时,连接失败并显示“无效的主机条目”消息。
# openconnect -v -g CLUSTER-DLCE -u anaphory vpn-gw1.somewhere.net
[…]
XML POST enabled
Please enter your username and password.
Password:XML POST enabled
Invalid host entry. Please re-enter.
Failed to obtain WebVPN cookie
我是否需要对组名进行一些神奇的操作,或者我如何找到使其发挥作用的方法?
答案1
尝试--authgroup
代替-g
openconnect -v --authgroup CLUSTER-DLCE -u anaphory vpn-gw1.somewhere.net
问候
答案2
事实上,用户2000606给出的“不回答”却导致了成功。
发送到 ASA 的 HTTP 消息会有所不同,具体取决于您如何选择组,并且 VPN 网关可能会对此挑剔。
这是我的基本呼吁openconnect
openconnect -v --printcookie --dump-http-traffic \
--passwd-on-stdin \
-u johnsmith \
vpn.ssl.mydomain.tld
发出此命令并在提示后提供我想要的 VPN 组将导致以下 HTTP 聊天(我仅包含 XML 文档中看似相关的部分):
[Certificate error, I tell openconnect to continue]
Me >> ASA: POST / HTTP/1.1
[...]<group-access>https://vpn.ssl.mydomain.tld</group-access>
ASA << ME: HTTP/1.1 200 OK
Me >> ASA: POST / HTTP/1.1
[...]<group-access>https://vpn.ssl.mydomain.tld/</group-access><group-select>AnyConnect-MyGroup</group-select>
ASA << ME: HTTP/1.1 200 OK
Me >> ASA: POST / HTTP/1.1
[...]<auth><username>johnsmith</username><password>secret</password></auth><group-select>AnyConnect-MyGroup</group-select>
ASA << ME: HTTP/1.1 200 OK
请注意group-select
-groups 和所有请求都是 。通过提供对 的基本调用POST / HTTP/1.1
可实现相同的结果。--authgroup AnyConnect-MyGroup
openconnect
当使用-g AnyConnect-MyGroup
而不是 时, --authgroup AnyConnect-MyGroup
会发生以下情况:
Me >> ASA: POST /AnyConnect-MyGroup HTTP/1.1
[...]<group-access>https://vpn.ssl.mydomain.tld/AnyConnect-MyGroup</group-access>
ASA << ME: HTTP/1.1 200 OK
[...] <error id="91" param1="" param2="">Invalid host entry. Please re-enter.</error>
请注意,这次我们没有告诉服务器,而只是将我们的组名和 HTTP 请求group-select
挤进去。将组名添加到网关地址时也会产生相同的负面结果,即使用作为基本调用的最后一行。group-access
vpn.ssl.mydomain.tld/AnyConnect-MyGroup
openconnect