vps 上搭建 ocserv 并使用证书验证 anyconnect 客户端使用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
windblueos
V2EX    VPS

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

  •  4
     
  •   windblueos 2014-10-13 12:42:35 +08:00 5869 次点击
    这是一个创建于 4018 天前的主题,其中的信息可能已经有所发展或是发生改变。
    经过这几周的折腾,我已经可以在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 条回复    2017-02-06 19:25:50 +08:00
    xieyingli
        1
    xieyingli  
       2014-10-13 13:05:53 +08:00
    赞一个,各方面都是走在最前沿啊,可学!
    hvsy
        2
    hvsy  
       2014-10-13 14:30:49 +08:00
    @windblueos 为什么我配置的oserv能够连上却不能上网,防火墙什么的都关闭了.使用的是plain密码验证.
    windblueos
        3
    windblueos  
    OP
       2014-10-13 14:40:08 +08:00
    tcp转发以及iptable是否正确,看第一篇教程
    gissimo
        4
    gissimo  
       2014-10-13 14:42:26 +08:00 via iPhone
    速度如何?听说anyconnect速度不快?

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

    @hvsy 你Google下吧,你基本设置都还没搞定
    sansam
        7
    sansam  
       2014-10-13 14:56:29 +08:00
    @windblueos 亲,介绍一下移动端的证书要怎么配置呢?或者哪有相关的文档介绍,iphone和android。
    windblueos
        8
    windblueos  
    OP
       2014-10-13 14:58:42 +08:00
    @sansam 吐血,第二篇教程不就是了啊!!!!!服务器生成ca server client证书,并把client证书转成p12格式 给android安装不就行了吗
    gissimo
        9
    gissimo  
       2014-10-13 15:26:32 +08:00 via iPhone
    @windblueos 我就是digital ocean sf2. 你感觉速度能到多少
    sansam
        10
    sansam  
       2014-10-13 16:43:23 +08:00
    @windblueos 多谢,已成功
    windblueos
        11
    windblueos  
    OP
       2014-10-13 17:37:37 +08:00
    @gissimo anyconnect速度比不上shadowsock,我只是用来刷twittering fb,youtube在家里维持在360p左右吧
    gissimo
        12
    gissimo  
       2014-10-13 18:32:12 +08:00 via iPhone
    @windblueos 我用来cisco ipsec
    pakto
        13
    pakto  
       2014-10-13 22:36:32 +08:00
    @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
       2014-10-14 09:17:04 +08:00
    请按照第二篇教程,除了那个user-profile = /usr/local/etc/ocserv/profile.xml,请完全跟它conf一模一样再试试,然后客户端卸载后重装
    @RoberMac
    jaminzhang
        15
    jaminzhang  
       2014-10-15 15:51:16 +08:00
    @windblueos
    这个证书认证每次连接的时候,会不会提示“不信任的服务器”?

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

    上不了网页就不知道了,你具体看log 搜索下
    Jays
        17
    Jays  
       2014-10-16 01:07:48 +08:00 via iPad
    已有CA证书该怎么 配置客户端证书呢?
    kkxxxxxxx
        18
    kkxxxxxxx  
       2014-10-17 09:08:13 +08:00
    iOS版Anyconnect成功.
    android版Anyconnect不成功,是否一定要root?
    bitinn
        19
    bitinn  
       2014-10-19 00:30:00 +08:00
    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  
       2014-10-19 00:37:47 +08:00
    顺道问下:iOS的AnyConnect有什么办法信任自己建立的CA证书签名的服务器证书吗?或者说有啥办法导入自己建的CA证书?
    bitinn
        21
    bitinn  
       2014-10-19 01:15:35 +08:00
    @bitinn 自我解答,server-cert生成的时候template必须要写对cn(公用名),如果是ip地址的要写ip,否则无法在第一次连接时导入。
    thank243
        22
    thank243  
       2014-11-08 08:09:31 +08:00 via Android
    @bitinn 我用certtool生成的P12直接就是0字节
    lj0014
        23
    lj0014  
       2014-11-19 13:15:33 +08:00
    @windblueos 请教下教程二的.tmpl文件里的域名一定要是有效的吗,我现在直接用教程提供的文件里面的域名,然后客户端连接时报错如下:
    Failed to get configuration from secure gateway. Contact your system administrator.
    lj0014
        24
    lj0014  
       2014-11-19 14:02:24 +08:00
    @lj0014 将.tmpl文件修改成我的有效域名后,windows可以用证书登录了,但是android手机依然不行,提示:Connection attempt has failed.
    fzss
        25
    fzss  
       2014-11-24 09:35:20 +08:00
    你好这个搭好之后,有新版本出来了,应该怎么更新啊?
    fzss
        26
    fzss  
       2014-11-24 10:09:42 +08:00
    @fzss 直接装新版本就行了
    dynfeisu
        27
    dynfeisu  
       2014-11-27 20:57:09 +08:00
    我想请问一下PAM+FREERADIUS 怎么设置?


    网上教程看了很多都弄不好
    dynfeisu
        28
    dynfeisu  
       2014-11-27 22:52:57 +08:00
    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  
       2014-12-20 15:10:49 +08:00
    证书不可信的问题怎么解决?本地自签名,还是根本无解?
    xmvagrant
        30
    xmvagrant  
       2014-12-23 17:05:11 +08:00
    @tankren 导入服务器证书就好。
    Yien
        31
    Yien  
       2014-12-25 11:54:08 +08:00 via iPhone
    我用的是商业的通配证书,请问如何生成客户端证书?
    kxjhlele
        32
    kxjhlele  
       2014-12-27 13:52:42 +08:00
    @Yien 商业证书,客户端不需要设置,直接就可以连接上
    kxjhlele
        33
    kxjhlele  
       2014-12-27 16:14:29 +08:00
    @Yien PS 要生成客户端证书,必须要私钥,这个是不可能给你的,
    root证书,rootkey,客户端key,客户端请求文件 这4个缺一不可,
    Yien
        34
    Yien  
       2014-12-27 16:26:29 +08:00
    @kxjhlele 尝试了一下,不成功。是不是需要修改什么设置?
    hrbwaxdoll
        35
    hrbwaxdoll  
       2014-12-28 09:17:31 +08:00
    hrbwaxdoll
        36
    hrbwaxdoll  
       2014-12-28 09:18:36 +08:00
    先搞通了,再搞定制化,这个是默认密码登录,我正在修改具体的证书登录的方式,看贴学习ing...
    hrbwaxdoll
        37
    hrbwaxdoll  
       2014-12-28 10:01:14 +08:00
    Job for ocserv.service failed. See 'systemctl status ocserv.service' and 'journalctl -xn' for details

    我按照教程,启动后提示上面的错误。。。。郁闷 啊。
    hrbwaxdoll
        38
    hrbwaxdoll  
       2014-12-28 10:04:48 +08:00
    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  
       2014-12-28 10:24:16 +08:00
    解决了,注释了 listen-clear-file

    不过客户端连接的时候是提示:
    VPN客户端未通建立连接~
    lesswest
        40
    lesswest  
       2014-12-30 15:32:11 +08:00
    @bitinn cn我设置了我的VPS的IP地址也不好用,改成localhost或者127.0.0.1或者0.0.0.0也不好用,是什么原因啊,求帮助。
    alexe
        41
    alexe  
       2015-01-17 07:57:30 +08:00
    你好,按照教程2中的方法撤销证书后还是可以用被撤销的证书拨通vpn,楼主知道怎么能够真正的注销证书吗,谢谢!
    alexe
        42
    alexe  
       2015-01-20 08:06:51 +08:00
    做了更多测试,撤销证书后还需要在配置文件中加入crl = /path/crl.cert才能开启ocserv的证书确认功能。但是我在开启了crl选项后,不但被侧小的证书不能用了,没有被撤销的证书也不能用了,控制台提示在client xml文件中找不到group设置。可是我的配置文件中没有设置xml文件。请帮忙,谢谢!
    alexe
        43
    alexe  
       2015-01-21 06:19:29 +08:00
    按照另外一篇教程解决了撤销一个证书后所有证书统统失效的情况,仔细对比后发现是用户证书模板的问题。用下面教程的用户模板即可解决。
    http://blog.ltns.info/linux/vps_debian_ocserv_support_anyconnect_certificate/
    ghovik
        44
    ghovik  
       2015-03-22 01:12:25 +08:00
    小白一枚,原理一知半解,照着这个(http://bitinn.net/11084/)搭建的ocserv,一开始没有设置iptables规则,安卓anyconnect可以连接成功,但是不能上网.
    然后按照教程把iptables规则设置好了,anyconnect直接连接不上了,显示连接超时.求大神给个指点,多谢!
    p.s.用的是用户名密码登陆.
    JenghongLee
        45
    JenghongLee  
       2017-02-06 19:25:50 +08:00
    作者 你好。我想请问 iphone 怎么将证书导入 anyconnect ?好像只能通过 URL 你写的上面的两个连接都已经失效了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3549 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 00:38 PVG 08:38 LAX 17:38 JFK 20:38
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86