V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolcfan
V2EX  ›  问与答

AnyConnect 客户端连接 ocserv 的时候提示无法下载配置文件有人遇到过否?

  •  1
     
  •   coolcfan · 2015-02-25 17:25:40 +08:00 · 9849 次点击
    这是一个创建于 3544 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Fedora 21 Server,ocserv版本0.9.2,是用从Fedora网站下载的rpm安装的;SELINUX已关闭,由于rpm安装的ocserv默认用443,直接在firewalld里开了https service。

    2月 25 17:15:04 SERVER_HOST_NAME ocserv[1017]: GnuTLS error (at worker-vpn.c:349): A TLS fatal alert has been received.: Unknown certificate
    2月 25 17:15:04 SERVER_HOST_NAME ocserv[959]: main: CLIENT_IP:33001 main-misc.c:506: command socket closed
    2月 25 17:15:30 SERVER_HOST_NAME ocserv[1020]: worker: CLIENT_IP:32915 cannot load config file '/var/lib/ocserv/profile.xml'
    2月 25 17:15:30 SERVER_HOST_NAME ocserv[959]: main: CLIENT_IP:32915 main-misc.c:506: command socket closed
    2月 25 17:15:31 SERVER_HOST_NAME ocserv[959]: main: CLIENT_IP:32844 main-misc.c:506: command socket closed
    

    上面是我用systemctl status看到的ocserv的输出。

    那个profile.xml明明是存在的,而且权限方面也是可读的,为何会无法load呢?

    第 1 条附言  ·  2015-02-25 18:07:31 +08:00
    看了眼代码(表示已经看不懂c了……)

    ret = stat( ws->config->xml_config_file, &st);
    if (ret == -1) {
    oclog(ws, LOG_INFO, "cannot load config file '%s'", ws->config->xml_config_file);
    cstp_printf(ws, "HTTP/1.%u 404 Not found\r\n", http_ver);
    return -1;
    }

    所以 stat() 函数返回的值是 -1;
    第 2 条附言  ·  2015-02-25 18:49:30 +08:00
    补充下,这个 rpm 自带的 ocserv.conf 里,

    run-as-user = ocserv
    run-as-group = ocserv

    而那个 profile.xml 的所属者也是 ocserv:ocserv (我改的……)
    9 条回复    2015-08-13 19:50:01 +08:00
    sdysj
        1
    sdysj  
       2015-02-25 18:10:18 +08:00
    证书格式有问题?
    coolcfan
        2
    coolcfan  
    OP
       2015-02-25 18:13:26 +08:00
    @sdysj 前面那步的报错,不管是用rpm自动生成的还是我自己生成的证书都会出现;但是我不明白的是,为什么 stat(path-to-xml-file, &st) 会返回 -1……
    zk8802
        3
    zk8802  
       2015-02-25 19:49:50 +08:00   ❤️ 1
    1. 我的配置文件中没开 user-profile,Cisco AnyConnect 也可以连接。
    2. 你要不要试一下 strace,看看 stat 具体为什么发生错误?
    coolcfan
        4
    coolcfan  
    OP
       2015-02-25 20:36:49 +08:00
    @zk8802 我不开 user-profile,思科的客户端会报错;strace 看起来会很有用,一会儿试试~

    我贴的那段代码之前的一段是判断,如果 user-profile 没有设置而客户端请求了这个文件,就报错并给客户端返回一个 404;也就是说,你的客户端没有请求这个文件?是 iOS 还是 Android,什么版本?
    zk8802
        5
    zk8802  
       2015-02-26 00:50:54 +08:00
    iOS, Cisco AnyConnect Secure Mobility Client 3.0.12119.
    hap8875
        6
    hap8875  
       2015-02-26 23:22:34 +08:00
    我也遇到了同样的问题,Cisco AnyConnect iOS 客户端上可以连上也上不了网,日志一直在显示没办法识别MTU,不断地降低MTU值,最后握手失败
    tyang
        7
    tyang  
       2015-06-23 14:30:05 +08:00
    我也碰到了同样的问题,请问LZ后来有找到解决方案么?
    coolcfan
        8
    coolcfan  
    OP
       2015-06-23 15:59:28 +08:00
    @tyang 编译安装了一个,那配置文件里user-profile这部分设置默认是注释掉的,但是好用。我之前用从源安装的版本,把这部分注释掉,却不好用……
    tmqhliu
        9
    tmqhliu  
       2015-08-13 19:50:01 +08:00
    今天遇到了同样的问题。 看到注释里说 profile.xml 必须对 chroot 后的 worker process 可见。发现使用默认的 user-profile = profile.xml 即可。 profile.xml 和上层目录的所有者都是 ocserv:ocserv 这样就可以连上了,使用的是 anyconnect 4.1.02011
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.