OpenVPN源码部署

文章目录
  1. 软件下载
  2. 安装依赖组件
  3. 创建程序目录
  4. 编译安装
  5. 证书配置
  6. 权限及变量
  7. 设置开机启动
  8. OpenVPN客户端
  9. 问题汇总
  10. 发表评论

软件下载

服务端及组件:
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

安装依赖组件

[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

创建程序目录

执行命令 目录说明
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

编译安装

[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个方向,测试完成后可以关闭

证书配置

[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/

权限及变量

[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
#说明:密码文件格式“用户名 密码”写在同一行上。

设置开机启动

[root@WEB1 ~]# vim /etc/systemd/system/openvpn.service

#---添加到开机启动项---
[root@WEB1 ~]# systemctl daemon-reload
[root@WEB1 ~]# systemctl enable openvpn.service

#---查看日志及状态---
[root@WEB1 ~]# systemctl status openvpn

#---防火墙开启NAT---
[root@WEB1 ~]# iptables -P FORWARD ACCEPT
[root@WEB1 ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
[root@WEB1 ~]# iptables -t nat -A POSTROUTING -s 172.25.254.29/32 -o eth0 -j MASQUERADE
[root@WEB1 ~]# iptables -t nat -nvL
[root@WEB1 ~]# service iptables save

OpenVPN客户端

  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程序,输入用户名和密码。

问题汇总

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

文章出自: 本站技术文章均为原创,版权归 "Desen往事 - 个人博客" 所有;部分图片来源于 Yandex ,转载本站文章请注明来源。
本文标题:OpenVPN源码部署

8 comments

clark进行回复 取消回复

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

Captcha Code

ˆ Top