V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
windblueos
V2EX  ›  VPS

vps 上搭建 ocserv 并使用证书验证 anyconnect 客户端使用

  •  4
     
  •   windblueos · Oct 13, 2014 · 6273 views
    This topic created in 4219 days ago, the information mentioned may be changed or developed.
    经过这几周的折腾,我已经可以在digital ocean上搭建ocserv并在iPhone上使用证书登录,不需要再输入烦人的用户名/密码验证,具体操作看以下两篇教程

    1 http://imkevin.me/post/80157872840/anyconnect-iphone 阅读如何编译搭建ocserv,如何打开tcp转发以及iptable配置

    2 http://bao3.blogspot.com/2014/10/ocserv-085.html 参考如何配置ocserv 配置文件 路由列表以及证书生成使用

    注意:
    一: 使用教程二的版本 ocserv0.85/0.86皆可,教程一版本过老

    踩过的坑:
    教程二中配置文件ocserv.conf中 我建议是不需要使用
    user-profile = /usr/local/etc/ocserv/profile.xml,
    我之前因为这个出现过证书无法匹配的莫名bug。

    如果你之前有配置过这项,不管哪个平台,请先卸载anyconnect客户端并重装
    45 replies    2017-02-06 19:25:50 +08:00
    xieyingli
        1
    xieyingli  
       Oct 13, 2014
    赞一个,各方面都是走在最前沿啊,可学!
    hvsy
        2
    hvsy  
       Oct 13, 2014
    @windblueos 为什么我配置的oserv能够连上却不能上网,防火墙什么的都关闭了.使用的是plain密码验证.
    windblueos
        3
    windblueos  
    OP
       Oct 13, 2014
    tcp转发以及iptable是否正确,看第一篇教程
    gissimo
        4
    gissimo  
       Oct 13, 2014 via iPhone
    速度如何?听说anyconnect速度不快?

    另外传说anyconnect锁屏不断线?
    hvsy
        5
    hvsy  
       Oct 13, 2014
    @windblueos iptable关掉了.tcp转发是sysctl net.ipv4.ip_forward=1 ???
    windblueos
        6
    windblueos  
    OP
       Oct 13, 2014
    @gissimo 这个看你vps的速度,我这边手机上用的听可以

    @hvsy 你Google下吧,你基本设置都还没搞定
    sansam
        7
    sansam  
       Oct 13, 2014
    @windblueos 亲,介绍一下移动端的证书要怎么配置呢?或者哪有相关的文档介绍,iphone和android。
    windblueos
        8
    windblueos  
    OP
       Oct 13, 2014
    @sansam 吐血,第二篇教程不就是了啊!!!!!服务器生成ca server client证书,并把client证书转成p12格式 给android安装不就行了吗
    gissimo
        9
    gissimo  
       Oct 13, 2014 via iPhone
    @windblueos 我就是digital ocean sf2. 你感觉速度能到多少
    sansam
        10
    sansam  
       Oct 13, 2014
    @windblueos 多谢,已成功
    windblueos
        11
    windblueos  
    OP
       Oct 13, 2014
    @gissimo anyconnect速度比不上shadowsock,我只是用来刷twittering fb,youtube在家里维持在360p左右吧
    gissimo
        12
    gissimo  
       Oct 13, 2014 via iPhone
    @windblueos 我用来cisco ipsec
    pakto
        13
    pakto  
       Oct 13, 2014
    @windblueos 搞不定...
    10月 13 10:34:00 default.hostname ocserv[701]: worker: xxxxx:55650 no certificate...on
    10月 13 10:34:00 default.hostname ocserv[698]: main: xxxxx:55650 main-misc.c:414:...ed
    10月 13 10:34:04 default.hostname ocserv[698]: main: main-misc.c:743: cannot open: /sys/fs...ks
    10月 13 10:34:04 default.hostname ocserv[702]: GnuTLS error (at worker-vpn.c:732): A TLS f...te
    10月 13 10:34:04 default.hostname ocserv[698]: main: xxxxx:55661 main-misc.c:414:...ed
    10月 13 10:34:20 default.hostname ocserv[698]: main: main-misc.c:743: cannot open: /sys/fs...ks
    10月 13 10:34:20 default.hostname ocserv[703]: worker: xxxxx:55662 tlslib.c:282: ...d.
    10月 13 10:34:20 default.hostname ocserv[699]: sec-mod: received request from pid 703 and ...99
    10月 13 10:34:20 default.hostname ocserv[699]: sec-mod: cmd [size=309] sm: decrypt
    10月 13 10:34:20 default.hostname ocserv[698]: main: xxxxx:55662 main-misc.c:414:...ed
    Hint: Some lines were ellipsized, use -l to show in full.
    windblueos
        14
    windblueos  
    OP
       Oct 14, 2014
    请按照第二篇教程,除了那个user-profile = /usr/local/etc/ocserv/profile.xml,请完全跟它conf一模一样再试试,然后客户端卸载后重装
    @RoberMac
    jaminzhang
        15
    jaminzhang  
       Oct 15, 2014
    @windblueos
    这个证书认证每次连接的时候,会不会提示“不信任的服务器”?

    我按照教程2的来可以用证书连接上,但浏览器打不开网页。
    使用用户名密码认证可以正常打开网页。
    windblueos
        16
    windblueos  
    OP
       Oct 15, 2014
    @jaminzhang 自用证书 是会提示不信任的,自己关掉就可以

    上不了网页就不知道了,你具体看log 搜索下
    Jays
        17
    Jays  
       Oct 16, 2014 via iPad
    已有CA证书该怎么 配置客户端证书呢?
    kkxxxxxxx
        18
    kkxxxxxxx  
       Oct 17, 2014
    iOS版Anyconnect成功.
    android版Anyconnect不成功,是否一定要root?
    bitinn
        19
    bitinn  
       Oct 19, 2014
    ocserv搭了很久,但一直没搞客户端证书验证,今晚试了下,很简单的几步结果搞了一晚,最后才发现是certtool生成的p12无法导入AnyConnect的iOS客户端。

    换成openssl果然就好了,特此提醒下各位。

    用这个通过:openssl pkcs12 -export -inkey user-key.pem -in user-cert.pem -certfile ca-cert.pem -out user.p12

    用这个被拒:certtool --to-p12 --load-ca-certificate ca-cert.pem --load-privkey user-key.pem --load-certificate user-cert.pem --outfile user.p12
    bitinn
        20
    bitinn  
       Oct 19, 2014
    顺道问下:iOS的AnyConnect有什么办法信任自己建立的CA证书签名的服务器证书吗?或者说有啥办法导入自己建的CA证书?
    bitinn
        21
    bitinn  
       Oct 19, 2014
    @bitinn 自我解答,server-cert生成的时候template必须要写对cn(公用名),如果是ip地址的要写ip,否则无法在第一次连接时导入。
    thank243
        22
    thank243  
       Nov 8, 2014 via Android
    @bitinn 我用certtool生成的P12直接就是0字节
    lj0014
        23
    lj0014  
       Nov 19, 2014
    @windblueos 请教下教程二的.tmpl文件里的域名一定要是有效的吗,我现在直接用教程提供的文件里面的域名,然后客户端连接时报错如下:
    Failed to get configuration from secure gateway. Contact your system administrator.
    lj0014
        24
    lj0014  
       Nov 19, 2014
    @lj0014 将.tmpl文件修改成我的有效域名后,windows可以用证书登录了,但是android手机依然不行,提示:Connection attempt has failed.
    fzss
        25
    fzss  
       Nov 24, 2014
    你好这个搭好之后,有新版本出来了,应该怎么更新啊?
    fzss
        26
    fzss  
       Nov 24, 2014
    @fzss 直接装新版本就行了
    dynfeisu
        27
    dynfeisu  
       Nov 27, 2014
    我想请问一下PAM+FREERADIUS 怎么设置?


    网上教程看了很多都弄不好
    dynfeisu
        28
    dynfeisu  
       Nov 27, 2014
    Message from syslogd@localhost at Nov 27 22:49:40 ...
    ocserv[2621]:PAM-auth pam_auth_pass: Authentication service cannot retrieve authentication info


    /etc/pam.d/ocserv:

    # PAM Configuration for OpenConnect Server
    # Created by tony, 11/13/13
    # This is designed to work with RADIUS PAM Module
    auth required /lib/security/pam_radius_auth.so
    tankren
        29
    tankren  
       Dec 20, 2014
    证书不可信的问题怎么解决?本地自签名,还是根本无解?
    xmvagrant
        30
    xmvagrant  
       Dec 23, 2014
    @tankren 导入服务器证书就好。
    Yien
        31
    Yien  
       Dec 25, 2014 via iPhone
    我用的是商业的通配证书,请问如何生成客户端证书?
    kxjhlele
        32
    kxjhlele  
       Dec 27, 2014
    @Yien 商业证书,客户端不需要设置,直接就可以连接上
    kxjhlele
        33
    kxjhlele  
       Dec 27, 2014
    @Yien PS 要生成客户端证书,必须要私钥,这个是不可能给你的,
    root证书,rootkey,客户端key,客户端请求文件 这4个缺一不可,
    Yien
        34
    Yien  
       Dec 27, 2014
    @kxjhlele 尝试了一下,不成功。是不是需要修改什么设置?
    hrbwaxdoll
        35
    hrbwaxdoll  
       Dec 28, 2014
    hrbwaxdoll
        36
    hrbwaxdoll  
       Dec 28, 2014
    先搞通了,再搞定制化,这个是默认密码登录,我正在修改具体的证书登录的方式,看贴学习ing...
    hrbwaxdoll
        37
    hrbwaxdoll  
       Dec 28, 2014
    Job for ocserv.service failed. See 'systemctl status ocserv.service' and 'journalctl -xn' for details

    我按照教程,启动后提示上面的错误。。。。郁闷 啊。
    hrbwaxdoll
        38
    hrbwaxdoll  
       Dec 28, 2014
    ocserv.service - OpenConnect SSL VPN server
    Loaded: loaded (/usr/lib/systemd/system/ocserv.service; enabled)
    Active: failed (Result: exit-code) since 六 2014-12-27 21:01:39 EST; 1min 20s ago
    Docs: man:ocserv(8)
    Process: 28584 ExecStart=/usr/local/sbin/ocserv --pid-file /var/run/ocserv.pid --config /usr/local/etc/ocserv/ocserv.conf (code=exited, status=1/FAILURE)
    Main PID: 27981 (code=exited, status=0/SUCCESS)

    12月 27 21:01:39 myhost systemd[1]: Starting OpenConnect SSL VPN server...
    12月 27 21:01:39 myhost ocserv[28584]: The option 'listen-clear-file' cannot be combined with 'aut...ate'
    12月 27 21:01:39 myhost systemd[1]: ocserv.service: control process exited, code=exited status=1
    12月 27 21:01:39 myhost systemd[1]: Failed to start OpenConnect SSL VPN server.
    12月 27 21:01:39 myhost systemd[1]: Unit ocserv.service entered failed state.
    hrbwaxdoll
        39
    hrbwaxdoll  
       Dec 28, 2014
    解决了,注释了 listen-clear-file

    不过客户端连接的时候是提示:
    VPN客户端未通建立连接~
    lesswest
        40
    lesswest  
       Dec 30, 2014
    @bitinn cn我设置了我的VPS的IP地址也不好用,改成localhost或者127.0.0.1或者0.0.0.0也不好用,是什么原因啊,求帮助。
    alexe
        41
    alexe  
       Jan 17, 2015
    你好,按照教程2中的方法撤销证书后还是可以用被撤销的证书拨通vpn,楼主知道怎么能够真正的注销证书吗,谢谢!
    alexe
        42
    alexe  
       Jan 20, 2015
    做了更多测试,撤销证书后还需要在配置文件中加入crl = /path/crl.cert才能开启ocserv的证书确认功能。但是我在开启了crl选项后,不但被侧小的证书不能用了,没有被撤销的证书也不能用了,控制台提示在client xml文件中找不到group设置。可是我的配置文件中没有设置xml文件。请帮忙,谢谢!
    alexe
        43
    alexe  
       Jan 21, 2015
    按照另外一篇教程解决了撤销一个证书后所有证书统统失效的情况,仔细对比后发现是用户证书模板的问题。用下面教程的用户模板即可解决。
    http://blog.ltns.info/linux/vps_debian_ocserv_support_anyconnect_certificate/
    ghovik
        44
    ghovik  
       Mar 22, 2015
    小白一枚,原理一知半解,照着这个(http://bitinn.net/11084/)搭建的ocserv,一开始没有设置iptables规则,安卓anyconnect可以连接成功,但是不能上网.
    然后按照教程把iptables规则设置好了,anyconnect直接连接不上了,显示连接超时.求大神给个指点,多谢!
    p.s.用的是用户名密码登陆.
    JenghongLee
        45
    JenghongLee  
       Feb 6, 2017
    作者 你好。我想请问 iphone 怎么将证书导入 anyconnect ?好像只能通过 URL 你写的上面的两个连接都已经失效了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   750 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    ♥ Do have faith in what you're doing.