linux下openvpn搭建

标签:vpn
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://304076020.blog.51cto.com/7503470/1605312

实验环境
system:centos 6.5
hostname:openvpn-server
ip:192.168.1.236

安装包地址:http://down.51cto.com/data/1976343 (免豆)

[root@openvpn-server ~]# yum -y install openssl openssl-devel gcc
1.安装lzo
注:lzo,用于压缩隧道通信数据以加快传输速度。
[root@vpn-server opt]# tar zxf lzo-2.03.tar.gz 
[root@vpn-server opt]# cd lzo-2.03
[root@vpn-server lzo-2.03]# ./configure --prefix=/usr
[root@vpn-server lzo-2.03]# make && make install
2.安装openvpn
[root@vpn-server opt]# tar zxf openvpn-2.0.9.tar.gz 
[root@vpn-server opt]# cd openvpn-2.0.9
[root@vpn-server openvpn-2.0.9]# ./configure --with-lzo-lib=/usr
[root@vpn-server openvpn-2.0.9]# make && make install
3.openvpn服务端配置
[root@openvpn-server openvpn-2.0.9]# vi /opt/openvpn-2.0.9/easy-rsa/2.0/vars 
export KEY_COUNTRY=CN                 #国家
export KEY_PROVINCE=GD                #所属省份
export KEY_CITY=Shenzhen              #所在城市
export KEY_ORG="Kimvpn"               #所属组织,CA证书也会根据这个生成
export KEY_EMAIL="[email protected]"        #邮箱,可任意填写
[root@openvpn-server openvpn-2.0.9]# source /opt/openvpn-2.0.9/easy-rsa/2.0/vars   #使修改的变量生效
NOTE: when you run ./clean-all, I will be doing a rm -rf on /root/keys
4.openvpn配置
[root@vpn-server ~]# cd /opt/openvpn-2.0.9/easy-rsa/2.0
[root@openvpn-server 2.0]# ./clean-all         #清除所有openvpn的证书文件
[root@openvpn-server 2.0]# ./build-ca          #生成ca证书

技术分享

[root@openvpn-server 2.0]# ls -lsart keys |grep ca
4 -rw------- 1 root root  916 Jan  8 12:12 ca.key
4 -rw-r--r-- 1 root root 1220 Jan  8 12:12 ca.crt
[root@openvpn-server 2.0]# ./build-dh           #生成 dh1024.pem  文件

技术分享

为服务器生成证书和密钥
[root@openvpn-server 2.0]# ./build-key-server Kimvpn

技术分享

技术分享

为客户端生成客户端证书文件,本文用到了client1和client2两个用户为例。
[root@openvpn-server 2.0]# ./build-key client1

技术分享

技术分享

[root@openvpn-server 2.0]# ./build-key client2  #操作同上
[root@openvpn-server 2.0]# ls -lsart keys

技术分享

修改openvpn服务器的配置文件/etc/server.conf
[root@openvpn-server 2.0]# cp -p /opt/openvpn-2.0.9/sample-config-files/server.conf /etc/server.conf
[root@openvpn-server 2.0]# vi /etc/server.conf   #修改配置为如下内容
proto tcp       #将proto udp改成 proto tcp,即启用tcp端口。
ca /opt/openvpn-2.0.9/easy-rsa/2.0/keys/ca.crt
cert /opt/openvpn-2.0.9/easy-rsa/2.0/keys/Kimvpn.crt
key /opt/openvpn-2.0.9/easy-rsa/2.0/keys/Kimvpn.key  
dh /opt/openvpn-2.0.9/easy-rsa/2.0/keys/dh1024.pem

log        /var/log/openvpn.log     #开启日志

server 192.168.2.0 255.255.255.0    #openvpn服务端为vpn客户端分配的网段,注意不要与公司真实网段发生冲突。
verb 5
[root@openvpn-server 2.0]# echo "1" > /proc/sys/net/ipv4/ip_forward   #开启ip转发,保证数据包在不同网段之间流通。
[root@openvpn-server ~]# /usr/local/sbin/openvpn --config /etc/server.conf &    #启动vpn,加入后台运行
[root@openvpn-server ~]# netstat -anpt |grep openvpn
tcp        0      0 0.0.0.0:1194                0.0.0.0:*                   LISTEN      51774/openvpn    

5.客户端配置

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

登陆到linux端openvpn服务器上,将/opt/openvpn-2.0.9/sample-config-files目录下的cleint.conf

文件下载到windows端vpn客户端机器上,放到C:\\Program Files (x86)\\OpenVPN\\config目录下,重命名为client.ovpn ,将/opt/openvpn-2.0.9/easy-rsa/2.0/keys目录下的ca.crt ,client1.crt ,client1.key三个文件下载到windows端vpn客户端机器上,放到C:\\Program Files (x86)\\OpenVPN\\config目录下。

技术分享

编辑C:\\Program Files (x86)\\OpenVPN\\config目录下的client.ovpn文件

proto tcp      #将proto udp改成proto tcp

remote 192.168.1.236 1194   

ca ca.crt
cert client1.crt
key client1.key

#comp-lzo   #注释comp-lzo

6.客户端连接vpn

点击windows右下角的OpenVPN GUI图标,选择connect。

技术分享

技术分享

技术分享

由上图可见,客户端已经获取到vpn-server分配的ip地址。

7.注销vpn用户

注:由于vpn用在企业中,vpn的服务端会为每个vpn客户端建立证书文件,如果有同事离职,需要注销用户,例client1用户:

[root@openvpn-server ~]# cd /opt/openvpn-2.0.9/easy-rsa/2.0/

[root@openvpn-server 2.0]# ./revoke-full client1

Please source the vars script first (i.e. "source ./vars")
Make sure you have edited it to reflect your configuration.

提示以上信息需做一下操作

[root@openvpn-server 2.0]# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /opt/openvpn-2.0.9/easy-rsa/2.0/keys

然后在执行注销

[root@openvpn-server 2.0]# ./revoke-full client1

技术分享

 注:出现以上错误正常,这是openvpn自身的bug,解决方法如下

[root@openvpn-server 2.0]# vi /opt/openvpn-2.0.9/easy-rsa/2.0/openssl.cnf

技术分享 再次执行注销

[root@openvpn-server 2.0]# ./revoke-full client1

技术分享

 如上图,出现error23字样,表示注销成功,不过你会发现这个证书任然能登陆,原因是上面的操作在keys下产生了crl.pem文件,里面就是注销掉的证书。也就是说相关证书还未完全注销,需做以下操作:

[root@openvpn-server 2.0]# vi /etc/server.conf

crl -verify /opt/openvpn-2.0.9/easy-rsa/2.0/keys/crl.pem      #添加本行内容

重启openvpn,发现客户端已经不能登陆vpn了。

 

本文出自 “Linux艺术(Q群:1991706)” 博客,请务必保留此出处http://304076020.blog.51cto.com/7503470/1605312

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。