![Linux 上的 Juniper Network Connect ncsvc:“主机检查器失败,错误 10”](https://linux22.com/image/541939/Linux%20%E4%B8%8A%E7%9A%84%20Juniper%20Network%20Connect%20ncsvc%EF%BC%9A%E2%80%9C%E4%B8%BB%E6%9C%BA%E6%A3%80%E6%9F%A5%E5%99%A8%E5%A4%B1%E8%B4%A5%EF%BC%8C%E9%94%99%E8%AF%AF%2010%E2%80%9D.png)
我正在尝试从无头 Linux 客户端使用 Network Connect 登录 Juniper VPN。我按照说明操作并使用了http://mad-scientist.us/juniper.html。使用 switch 运行脚本时,--nogui
最终执行的命令是$HOME/.juniper_networks/network_connect/ncsvc -h HOST -u USER -r REALM -f $HOME/.vpn.default.crt
。系统要求我输入密码,打印一行“正在连接到…”,但随后程序默默停止。-L 5
在命令行中添加(最详细的日志记录)时,这些是打印到日志中的最后消息:
dsclient.info state: kStateCacheCleaner (dsclient.cpp:280)
dsclient.info --> POST /dana-na/cc/ccupdate.cgi (authenticate.cpp:162)
http_connection.para Entering state_start_connection (http_connection.cpp:282)
http_connection.para Entering state_continue_connection (http_connection.cpp:299)
http_connection.para Entering state_ssl_connect (http_connection.cpp:468)
dsssl.para SSL connect ssl=0x833e568/sd=4 connection using cipher RC4-MD5 (DSSSLSock.cpp:656)
http_connection.para Returning DSHTTP_COMPLETE from state_ssl_connect (http_connection.cpp:476)
DSHttp.debug state_reading_response_body - copying 0 buffered bytes (http_requester.cpp:800)
DSHttp.debug state_reading_response_body - recv'd 0 bytes data (http_requester.cpp:833)
dsclient.info <-- 200 (authenticate.cpp:194)
dsclient.error state host checker failed, error 10 (dsclient.cpp:282)
ncapp.error Failed to authenticate with IVE. Error 10 (ncsvc.cpp:197)
dsncuiapi.para DsNcUiApi::~DsNcUiApi (dsncuiapi.cpp:72)
什么是主机检查失败意思是?我如何才能知道它尝试检查了什么以及哪些检查失败了?HostChecker配置指南提到 Linux 上安装了 $HOME/.juniper_networks/tncc.jar,但我的安装中不包含这样的文件。由此我得出结论,Linux 上的 VPN 禁用了 HostChecker?POST 到 /dana-na/cc/ccupdate.cgi 和“主机检查失败”是相互关联的还是独立的?通过 SSL 代理运行连接,我发现 POST 数据是status=NOTOK
(有趣的旁注:非常安全的 VPN 的客户端不验证服务器的 SSL 证书,因此很容易受到 MITM 攻击……)。因此,似乎是客户端关闭了连接,而不是服务器。
答案1
Host Checker is still not supported for Linux nclauncher (ncsvc) in any version at this time.
那里的说明似乎表明 Juniper 设备上的管理员需要设置单独的身份验证领域,并关闭主机检查器。
这只是我对该页面的完全天真的解读,我对 Juniper VPN 一无所知。
答案2
是的,我确认,我创建了另一个注册页面(https://my.vpn.url/linux/) 指向另一个不使用主机检查器的 REALM,对我来说它工作正常。
答案3
我花了很多时间尝试使用 JNC、MSJNC 工具与 Juniper junos pulse VPN 建立连接,它在我家的网络环境中运行,但在公司和 3g 环境中失败,我认为这是由证书问题引起的。
最后,我找到了一种方法来做到这一点,使用“openconnect --juniper --no-cert-check your.vpn.server.com/realm-or-blank”
您可以查看以下链接。
https://wiki.archlinux.org/index.php/Juniper_VPN
http://wangpidong.blogspot.jp/2015/02/how-to-use-junos-pulse-vpn-client-on.html?m=1