OpenVPN源码部署

文章目录
  1. 软件下载

  2. 服务端及组件:
    wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
    wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
    wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.3.tar.gz
    wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.2/EasyRSA-3.0.2.tgz
    wget http://openvpn.se/files/other/checkpsw.sh
    客户端程序:
    https://swupdate.openvpn.org/community/releases/openvpn-install-2.3.17-I601-x86_64.exe

  3. 安装依赖组件

  4. [root@WEB1 ~]# tar zxvf lzo-2.10.tar.gz
    [root@WEB1 ~]# mkdir /usr/local/lzo
    [root@WEB1 ~]# cd lzo-2.10; mkdir bld; cd bld
    [root@WEB1 bld]# ../configure --prefix=/usr/local/lzo && make
    [root@WEB1 bld]# make check && make test && make install
    [root@WEB1 ~]# echo '/usr/local/lzo/lib' >> /etc/ld.so.conf.d/local.conf && ldconfig
    [root@WEB1 ~]# ln -s /usr/local/lzo/include/lzo/ /usr/include/

    [root@WEB1 ~]# yum -y install zlib-devel
    [root@WEB1 ~]# tar zxvf openssl-1.0.2l.tar.gz
    [root@WEB1 ~]# mkdir /usr/local/openssl
    [root@WEB1 ~]# cd openssl-1.0.2l
    [root@WEB1 openssl-1.0.2l]# ./config --prefix=/usr/local/openssl shared zlib-dynamic
    [root@WEB1 openssl-1.0.2l]# make && make test && make install
    [root@WEB1 ~]# chown -R root:nginx /usr/local/openssl
    [root@WEB1 ~]# echo '/usr/local/openssl/lib' >> /etc/ld.so.conf.d/local.conf && ldconfig
    [root@WEB1 ~]# ln -s /usr/local/openssl/include/openssl/ /usr/include/
    [root@WEB1 ~]# modinfo tun; modprobe tun; lsmod | grep tun
    [root@WEB1 ~]# sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf; sysctl -p
    [root@WEB1 ~]# cat /proc/sys/net/ipv4/ip_forward

  5. 创建程序目录

  6. 执行命令 目录说明
    groupadd openvpn
    useradd -r -g openvpn -s /bin/false openvpn
    mkdir -p /usr/local/openvpn/config
    mkdir -p /data/openvpn/var
    mkdir -p /data/openvpn/run
    程序安装目录:/usr/local/openvpn
    配置文件目录:/usr/local/openvpn/config
    日志文件目录:/data/openvpn/var
    运行文件目录:/data/ocserv/run
  7. 编译安装

  8. [root@WEB1 ~]# yum -y install pam-devel
    [root@WEB1 ~]# ln -s /usr/local/openssl/lib/lib* /usr/lib64/
    [root@WEB1 ~]# tar zxvf openvpn-2.4.3.tar.gz
    [root@WEB1 ~]# cd openvpn-2.4.3; mkdir bld; cd bld
    [root@WEB1 bld]# ../configure --prefix=/usr/local/openvpn \
    CPPFLAGS="-I/usr/local/lzo/include -I/usr/local/openssl/include" \
    LDFLAGS="-L/usr/local/lzo/lib -L/usr/local/openssl/lib"

    [root@WEB1 bld]# make && make check && make install
    [root@WEB1 bld]# cp ../sample/sample-config-files/server.conf /usr/local/openvpn/config/

    编译检查:make check时出错
    解决方法:开启防火墙的UDP协议进出2个方向,测试完成后可以关闭

  9. 证书配置

  10. [root@WEB1 ~]# tar zxvf EasyRSA-2.2.2.tgz
    [root@WEB1 ~]# cd EasyRSA-2.2.2
    [root@WEB1 EasyRSA-2.2.2]# vim vars

    [root@WEB1 EasyRSA-2.2.2]# source ./vars
    [root@WEB1 EasyRSA-2.2.2]# ./clean-all

    #---生成CA证书和密钥---
    [root@WEB1 EasyRSA-2.2.2]# ./build-ca

    #---生成服务器证书和密钥---
    [root@WEB1 EasyRSA-2.2.2]# ./build-key-server server

    #---生成客户端证书和密钥---
    [root@WEB1 EasyRSA-2.2.2]# ./build-key client

    #---迪菲•赫尔曼交换密钥;文件名称为dh.pem---
    [root@WEB1 EasyRSA-2.2.2]# ./build-dh

    #---生成tls-auth所需的密钥文件---
    [root@WEB1 EasyRSA-2.2.2]# openvpn --genkey --secret keys/ta.key
    [root@WEB1 EasyRSA-2.2.2]# cp -r keys $OPENVPN_HOME/

  11. 权限及变量

  12. [root@WEB1 ~]# vim /etc/profile

    #---配置OpenVPN服务端---
    [root@WEB1 ~]# vim $OPENVPN_HOME/config/server.conf

    #---设置应用目录及数据目录权限---
    [root@WEB1 ~]# chown -R root:openvpn /usr/local/lzo/ /usr/local/openvpn
    [root@WEB1 ~]# chmod -R o-rx /usr/local/lzo/ /usr/local/openvpn
    [root@WEB1 ~]# chmod -R g+r /usr/local/lzo/ /usr/local/openvpn
    [root@WEB1 ~]# chown -R openvpn:openvpn /data/openvpn
    [root@WEB1 ~]# chmod g+x /usr/local/openvpn/config/checkpsw.sh
    #说明:密码文件格式“用户名 密码”写在同一行上。

  13. 设置开机启动

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

  16. 1. 安装openvpn-install-2.3.17-I601-x86_64.exe程序;
    2. 下载生成的client证书和密钥、CA证书、TLS-AUTH密钥,保存到OpenVPN\config目录中;
    3. 更改OpenVPN\config\client.ovpn配置文件,可以从OpenVPN\sample-config目录中复制;

    4. 打开OpenVPN程序,输入用户名和密码。

  17. 问题汇总

  18. 问题描述:部分网络可能受限,无法进行TLS协商
    解决方法:使用OpenConnect Server搭建VPN服务,OpenVPN连接受限或其它原因。

3 thoughts on “OpenVPN源码部署

发表评论

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