实验环境
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