Linux CentOS安装配置OpenVPN 2.4.0最新版教程

Linux CentOS安装配置OpenVPN 2.4.0最新版教程


2016.12.27 官方发布了OpenVPN 2.4.0版本,相比之前的版本变化不大,新版引入了一个更快的数据压缩算法叫 lz4(旧版用的是 lzo),新版不再支持Windows XP。

1. 准备工作

下载OpenVPN源码包,下载地址:
https://swupdate.openvpn.org/community/releases/openvpn-2.4.0.tar.gz
下载OpenVPN证书制作工具EasyRSA,下载地址:
https://github.com/OpenVPN/easy-rsa/releases/download/3.0.1/EasyRSA-3.0.1.tgz

2. 安装OpenVPN

安装依赖的软件包

yum -y install openssl openssl-devel pam pam-devel

解压并安装OpenVPN 2.4.0

tar zxf openvpn-2.4.0.tar.gz
cd openvpn-2.4.0
./configure --prefix=/usr/local/openvpn --disable-lzo
make && make install
mkdir /etc/openvpn # 创建配置文件存放目录 
cp sample/sample-config-files/server.conf /etc/openvpn/server.conf # 从模板复制一份配置文件

3. 制作证书

制作根证书

tar zxf EasyRSA-3.0.1.tgz
cp -rf EasyRSA-3.0.1 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki # 初始化证书目录pki
./easyrsa build-ca nopass # 创建根证书,提示输入Common Name,名称随意,但是不能和服务端证书或客户端证书名称相同
./easyrsa gen-dh # 生成Diffle Human参数,它能保证密钥在网络中安全传输

制作服务端证书

./easyrsa build-server-full server nopass # server是服务端证书名称,可以用其它名称

制作客户端证书

./easyrsa build-client-full barry nopass # barry是客户端证书名称,可以用其它名称

4. 服务端配置

修改服务端配置文件/etc/openvpn/server.conf内容如下:
local a.b.c.d # 填服务器真实IP
port 1194
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0 # 给客户端分配的IP段
ifconfig-pool-persist ipp.txt # 记录客户端和虚拟ip的映射关系,当客户端重新连接时依然被分配断开之前的IP地址
push "redirect-gateway def1 bypass-dhcp" # 重定向客户端网关
push "dhcp-option DNS 8.8.8.8" # 选择一个DNS,这里用Google的DNS示例
client-to-client
keepalive 10 120
compress lz4-v2
push "compress lz4-v2"
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3 # 日志等级

开启路由转发支持,用 vi 编辑/etc/sysctl.conf文件,修改以下参数
net.ipv4.ip_forward = 1
执行下面命令使sysctl.conf配置文件生效并添加iptables转发规则

sysctl -p
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
service iptables save

启动OpenVPN服务

/usr/local/openvpn/sbin/openvpn --config /etc/openvpn/server.conf &

5. Windows PC客户端配置

下载OpenVPN GUI客户端,64位下载地址:
http://build.openvpn.net/downloads/snapshots/openvpn-install-2.4.0-I602-pr80v18.exe
下载好后按默认设置安装即可。

扫描二维码关注公众号,回复: 4371902 查看本文章

将以下3个文件下载下来并放到C:\Program Files\OpenVPN\config目录下
/etc/easy-rsa/pki/private/barry.key
/etc/easy-rsa/pki/issued/barry.crt
/etc/easy-rsa/pki/ca.crt

新建客户端配置文件C:\Program Files\OpenVPN\config\client.opvn,写入如下内容:
client
dev tun
proto tcp
remote a.b.c.d 1194 # 填服务器真实IP
persist-key
persist-tun
ca ca.crt
cert barry.crt
key barry.key
verb 3 # 日志等级

双击桌面的OpenVPN GUI图标启动连接,不出意外的话连接成功,如果失败的话右键桌面右下角的OpenVPN GUI小图标点击view log查看错误日志,找到具体报错原因并解决。连接成功后在浏览器地址栏输入ip.cn,此时可以看到本地IP已变成OpenVPN服务器的IP。

* 额外教程:配置VPN分流

虽然把OpenVPN服务器搭建好了,但是有一个问题,客户端所有应用的网络都走VPN通道了,有时只是想访问某个站点或连接某个服务走VPN通道而已,其它的还是使用本地网络,也就是实现VPN分流效果。实现方法如下:
注释/etc/openvpn/server.conf里的以下两行:
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 8.8.8.8"
添加推送到客户端的路由规则,比如:
push "route 192.168.100.0 255.255.255.0"
假设192.168.100.0是VPN服务器所在的局域网的网段,那么添加这条规则后,客户端也能访问与VPN服务器同一网段的其它机器了,上面的路由规则可以是具体IP,可以是网段,只要能符合路由表的规范。配置好后重新启动OpenVPN服务,客户端重新连接,此时可以发现只有访问192.168.100.0网段时才会走VPN通道。

猜你喜欢

转载自blog.csdn.net/yq90125/article/details/79487445