coolcfan
V2EX  ›  问与答

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

  •  1
     
  •   coolcfan · Feb 25, 2015 · 10570 views
    This topic created in 4119 days ago, the information mentioned may be changed or developed.

    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呢?

    Supplement 1  ·  Feb 25, 2015
    看了眼代码(表示已经看不懂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;
    Supplement 2  ·  Feb 25, 2015
    补充下,这个 rpm 自带的 ocserv.conf 里,

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

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

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