OpenConnect Server源码部署

文章目录
  1. 软件下载

  2. 服务端:wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.11.8.tar.xz
    客户端:ftp://ftp.infradead.org/pub/openconnect/openconnect-7.08.tar.gz
    http://frodo.sca.com/downloads/VPN-Clients/anyconnect-win-4.4.03034-core-vpn-predeploy-k9.msi

  3. 安装依赖组件

  4. [root@WEB1 ~]# yum install libnl3-devel libseccomp-devel lz4-devel tcp_wrappers-devel \
    autogen-libopts-devel libev-devel nettle-devel gnutls-devel

  5. 创建程序目录

  6. 执行命令 目录说明
    groupadd ocserv
    useradd -r -g ocserv -s /bin/false ocserv
    mkdir -p /usr/local/ocserv/etc
    mkdir -p /usr/local/ocserv/keys
    mkdir -p /data/ocserv/run
    OCSERV程序安装目录:/usr/local/ocserv
    OCSERV配置文件目录:/usr/local/ocserv/etc
    OCSERV密钥证书目录:/usr/local/ocserv/keys
    OCSERV运行文件目录:/data/ocserv/run
  7. 编译安装

  8. [root@WEB1 ~]# yum -y install protobuf-c-devel
    [root@WEB1 ~]# tar Jxvf ocserv-0.11.8.tar.xz
    [root@WEB1 ~]# cd ocserv-0.11.8 && mkdir bld && cd bld
    [root@WEB1 bld]# ../configure --prefix=/usr/local/ocserv --without-radius
    [root@WEB1 bld]# make && make check && make install
    [root@WEB1 bld]# cp ../doc/sample.config /usr/local/ocserv/etc/ocserv.conf
    [root@WEB1 bld]# cp ../doc/systemd/standalone/ocserv.service /etc/systemd/system/
    编译检查:make check时出错“fatal error: protobuf-c/protobuf-c.h: No such file or directory”
    解决方法:yum -y install protobuf-c-devel

  9. 证书配置

  10. [root@WEB1 ~]# yum -y install gnutls-utils
    [root@WEB1 ~]# cd /usr/local/ocserv/keys/
    [root@WEB1 keys]# vim ca.tmpl

    #---生成CA密钥---
    [root@WEB1 keys]# certtool --generate-privkey --outfile ca-key.pem

    #---生成CA证书---
    [root@WEB1 keys]# certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
    [root@WEB1 keys]# vim server.tmpl

    #---生成Server密钥---
    [root@WEB1 keys]# certtool --generate-privkey --outfile server-key.pem

    #---生成Server证书---
    [root@WEB1 keys]# certtool --generate-certificate --load-privkey server-key.pem \
    --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem \
    --template server.tmpl --outfile server-cert.pem

    [root@WEB1 keys]# vim user.tmpl

    #---生成Client密钥---
    [root@WEB1 keys]# certtool --generate-privkey --outfile user-key.pem

    #---生成Client证书---
    [root@WEB1 keys]# certtool --generate-certificate --load-privkey user-key.pem \
    --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem \
    --template user.tmpl --outfile user-cert.pem

    #---将Client密钥和证书转换为PKCS12---
    [root@WEB1 keys]# certtool --to-p12 --load-privkey user-key.pem --pkcs-cipher 3des-pkcs12 \
    --load-certificate user-cert.pem --outfile user.p12 --outder

  11. 权限及变量

  12. #---更改环境变量---
    [root@WEB1 ~]# vim /etc/profile

    #---配置OpenConnect Server服务端---
    [root@WEB1 ~]# vim $OCSERV_HOME/etc/ocserv.conf

    #---创建OpenConnect登陆帐号---
    [root@WEB1 ~]# ocpasswd -c /usr/local/ocserv/etc/ocpasswd desen

    #---设置应用目录及数据目录权限---
    [root@WEB1 ~]# chown -R root:ocserv /usr/local/ocserv
    [root@WEB1 ~]# chmod -R o-rx /usr/local/ocserv
    [root@WEB1 ~]# chmod -R g+r /usr/local/ocserv
    [root@WEB1 ~]# chown -R ocserv:ocserv /data/ocserv

  13. 设置开机启动

  14. 隐藏内容:此处内容需要评论本文通过后才能查看!
  15. OpenConnect

  16. vpnc-script自行下载:http://git.infradead.org/users/dwmw2/vpnc-scripts.git
    [root@WEB1 ~]# mkdir /usr/local/openconnect
    [root@WEB1 ~]# tar zxvf openconnect-7.08.tar.gz
    [root@WEB1 ~]# cd openconnect-7.08 && mkdir bld && cd bld
    [root@WEB1 bld]# ../configure --prefix=/usr/local/openconnect/ \
    --with-vpnc-script=/usr/local/openconnect/vpnc-script \
    --with-openssl --without-openssl-version-check

    [root@WEB1 bld]# make && make install
    [root@WEB1 ~]# chown 0:0 /usr/local/openconnect/vpnc-script
    [root@WEB1 ~]# chmod -R o-rx /usr/local/openconnect
    [root@WEB1 ~]# chmod u+x /usr/local/openconnect/vpnc-script
    [root@WEB1 ~]# export PATH=$PATH:/usr/local/openconnect/sbin
    [root@WEB1 ~]# iptables -A INPUT -s web2 -p tcp --sport 1194 -j ACCEPT
    [root@WEB1 ~]# iptables -A OUTPUT -d web2 -p tcp --dport 1194 -j ACCEPT
    [root@WEB1 ~]# service iptables save

    #---后台日志方式连接服务器---
    [root@WEB1 ~]# openconnect -b -l -u desen web2:1194

    #---非交互式连接,开机自动加载---
    [root@WEB1 ~]# vim /usr/local/ocserv/sbin/str-openconnect

    [root@WEB1 ~]# chmod u+x /usr/local/ocserv/sbin/str-openconnect
    [root@WEB1 ~]# echo "/usr/local/ocserv/sbin/str-openconnect" >>/etc/rc.local

  17. 问题汇总

  18. 问题描述:如何获得servercert的SHA1值?
    隐藏内容:此处内容需要评论本文通过后才能查看!

    问题描述:Windows客户端认证后无法连接,提示“AnyConnect was not able to establish a connection to the specified secure gateway.”
    解决方法:关闭本地网卡的Internet连接共享设置或者Internet Connection Sharing (ICS)服务,以管理员身份执行sc stop sharedaccessnet stop sharedaccess

    问题描述:openconnect连接中提示'vpnc-script' returned error 126.”
    解决方法:vpnc-script脚本没有执行权限,chmod u+x来赋予执行权限

    问题描述:连接后默认DNS服务器为VPN线路配置的DNS服务器.”
    解决方法:搭建自定义DNS服务器,添加解析记录.

2 thoughts on “OpenConnect Server源码部署

  1. I'm not certain where you're getting your information, but great topic.
    I needs to spend some time learning more or understanding
    more. Thank you for excellent info I used to be
    in search of this information for my mission.

发表评论

电子邮件地址不会被公开。 必填项已用*标注