在 Ubuntu 16.04 上我收到以下错误:
$ openconnect -v vpn.com
POST https://vpn.com/
Attempting to connect to server 1.1.1.1:443
SSL negotiation with vpn.com
Connected to HTTPS on vpn.com
Got HTTP response: HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Cache-Control: no-cache
Pragma: no-cache
Connection: Keep-Alive
Date: Mon, 22 Aug 2016 00:04:14 GMT
X-Frame-Options: SAMEORIGIN
X-Aggregate-Auth: 1
HTTP body chunked (-2)
XML POST enabled
Error: Server asked us to run CSD hostscan.
You need to provide a suitable --csd-wrapper argument.
Failed to obtain WebVPN cookie
我尝试过--no-xmlpost post
,也遇到了错误。
以下是一些背景信息:
我使用的是 Ubuntu 14.04,并使用 openconnect 连接到 vpn 服务器。然后一周前,它因为这个问题停止工作了。我猜是 vpn 网站将其 Cisco vpn 服务器升级为 CSD 木马所需的服务器。无论如何,我决定升级到 16.04,但仍然遇到同样的问题。
答案1
我通过这篇文章找到了答案:
https://gist.github.com/l0ki000/56845c00fd2a0e76d688
我做了以下事情:
cd ~
mkdir .cisco
cd .cisco
wget https://gist.githubusercontent.com/l0ki000/56845c00fd2a0e76d688/raw/61fc41ac8aec53ae0f9f0dfbfa858c1740307de4/csd-wrapper.sh
chmod +x csd-wrapper.sh
使用 vpn 服务器编辑文件:
CSD_HOSTNAME=vpnserver.com
运行文件
./csd-wrapper.sh
运行 openconnect:
sudo openconnect --csd-user=YOURLINUXUSERNAME --csd-wrapper=/home/YOURLINUXUSERNAME/.cisco/csd-wrapper.sh vpnserver.com
答案2
我发现我还需要指定 --os=win。这似乎可以解决服务器在尝试下载 sfinst 时生成的 404 响应。
GET https://vpn.company.com/CACHE/sdesktop/install/binaries/sfinst
Got HTTP response: HTTP/1.1 404 Not Found (does not exist)
有关 sfinst 404 问题的信息可在 openconnect-devel 邮件列表上找到“当 CSD 可用时连接 Linux“ 邮政。
我成功使用了以下命令,该命令同时使用了 os 标志和 csd-wrapper 标志:
sudo openconnect \
--user <USERNAME> \
--cert-expire-warning=15 \
--certificate <CERTFILE> \
--os=win \
--csd-user=<USERNAME> \
--csd-wrapper=<PATHTO>/csd-wrapper.sh \
https://<VPNADDRESS e.g., vpn.company.com>