实验环境

 服务器外网ip:192.168.189.132

vpn服务器内网ip: 192.168.110.132

Openvpn服务器安装配置及客户端调试_客户端使用

 系统需支持tun模块:

Openvpn服务器安装配置及客户端调试_客户端使用_02

 


 

服务器端:

一,下载所需软件包,并解压。

# cd /usr/local/src/
# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
# wget http://openvpn.net/release/openvpn-2.0.9.tar.gz
# tar -zxvf lzo-2.03.tar.gz
# tar -zxvf openvpn-2.0.9.tar.gz

 


二,编译安装lzo。

#cd lzo-2.0.3
#./configure -prefix=/usr/local/lzo && make && make install

 


三,编译安装openvpn。

 安装openvpn需要openssl库支持,若没有,安装openssl:

# yum -y install openssl*
# cd ../openvpn-2.0.9
# ./configure --prefix=/usr/local/openvpn --with-lzo-headers=/usr/local/lzo/include --with-lzo-lib=/usr/local/lzo/lib --with-ssl-headers=/usr/include/openssl--with-ss-lib=/usr/lib
# make && make install



四,openvpn配置前准备。

 创建openvpn配置目录与文件:

# mkdir /usr/local/openvpn/etc
# cp -r /usr/local/src/openvpn-2.0.9/easy-rsa/ /usr/local/openvpn/etc/
# cp /usr/local/src/openvpn-2.0.9/sample-config-files/server.conf /usr/local/opevpn/etc/

 

 编辑vars文件,并使之生效(以个人配置为准):

# tail -n 5 /usr/local/openvpn/etc/easy-rsa/2.0/vars
  export KEY_COUNTRY="CN"
  export KEY_PROVINCE="FJ"
  export KEY_CITY="FZ"
  export KEY_ORG="hui.com"
  export KEY_EMAIL=root@hui.com
  
# cd /usr/local/openvpn/etc/easy-rsa/2.0/
# source ./vars
  NOTE: If you run ./clean-all, I will bedoing a rm -rf on /home/usr/local/openvpn/etc/easy-rsa/2.0/keys

# ./clean-all

 

 生成CA证书,用于服务器与客户端ca验证:Openvpn服务器安装配置及客户端调试_客户端使用_03

 

 生成dh1024.pem文件:

 #./build-dh

 

 生成服务器证书文件:

Openvpn服务器安装配置及客户端调试_客户端使用_04Openvpn服务器安装配置及客户端调试_客户端使用_05

 生成客户端证书文件:

Openvpn服务器安装配置及客户端调试_客户端使用_06 

 创建key文件路径

# mkdir /usr/local/openvpn/etc/keys/
# cd /usr/local/openvpn/etc/easy-rsa/2.0/keys/
# cp ca.crtcmhserver.crt cmhserver.key dh1024.pem /usr/local/openvpn/etc/keys/


 

五:openvpn简单配置。

# vi/usr/local/openvpn/etc/server.conf
local 192.168.189.132
port 1194
proto tcp
dev tun
ca /usr/local/openvpn/etc/keys/ca.crt
cert/usr/local/openvpn/etc/keys/cmhserver.crt
key/usr/local/openvpn/etc/keys/cmhserver.key 
dh /usr/local/openvpn/etc/keys/dh1024.pem
server 10.2.2.0 255.255.255.0           ----vpn分配的地址段
ifconfig-pool-persist ipp.txt
push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3


 

六,启动服务并验证。

打开服务器的ip路由转发功能,并生效:
# grep ipv4 /etc/sysctl.conf 
net.ipv4.ip_forward=1
# sysctl -p 
net.ipv4.ip_forward=1
  
开启openvpn服务:
# /usr/local/openvpn/sbin/openvpn--daemon --config /usr/local/openvpn/etc/server.conf


 验证openvpn是否开启:

Openvpn服务器安装配置及客户端调试_客户端使用_07 

 检测tun端口是否启用:

Openvpn服务器安装配置及客户端调试_客户端使用_08

 iptables防火墙配置,允许vpn地址转换:

# iptables -F
# iptables -Z
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -t nat -A POSTROUTING -s 10.2.2.0/24 -o eth0 -j MASQUERADE
  (这里的网卡,指定为外网接口:-o eth0,转发10.2.2.0/24网段)
# service iptables save

 检查iptablesnat规则

Openvpn服务器安装配置及客户端调试_客户端使用_09

 

 

客户端:(windows

 

一:下载客户端软件,地址:http://openvpn.se/files/install_packages/,客户端软件需与服务器端匹配。

 

二:将服务器端/usr/local/openvpn/etc/easy-rsa/2.0/keys/目录下的ca.crtcmhclient.crtcmhclient.key三个文件拷贝到C:\ProgramFiles\Open×××\config路径下。将服务器端/usr/local/src/openvpn-2.0.9/sample-config-files/目录下的client.conf文件拷贝到C:\ProgramFiles\Open×××\config路径下。将client.conf文件更名为client.ovpn

 

三:修改client.ovpn配置文件,内容如下:

Openvpn服务器安装配置及客户端调试_客户端使用_10

 

四:拨号前观察测试。

 检查虚拟网卡是否建立(使用ipconfig /all查看):

Openvpn服务器安装配置及客户端调试_客户端使用_11

 

 这时候,客户端ping服务器外网地址,可以ping通。ping服务器vpn内网地址,ping不通。

Openvpn服务器安装配置及客户端调试_客户端使用_12

Openvpn服务器安装配置及客户端调试_客户端使用_13

 

五:拨号连接,验证openvpn拨号是否成功。

 检查虚拟网卡是否获取vpn地址:

Openvpn服务器安装配置及客户端调试_客户端使用_14


 ping服务器外网地址与vpn内网地址:

Openvpn服务器安装配置及客户端调试_客户端使用_15

 这时发现虚拟网卡的地址变为10.2.2.6。跟之前不同,ping 服务器外网地址,ping不通。ping服务器vpn内网地址,可ping通。

 以上现象说明vpn拨号成功。

 

 

 

-------------------------------------------------------------------------- 

问题:

每次重启系统后,当想重新生成客户端key时,就会报以下错误

  Please edit the vars script to reflect your configuration,

  then source it with "source./vars".

  Next, to start with a fresh PKI configurationand to delete any

  previous certificates and keys, run"./clean-all".

  Finally, you can run this tool (pkitool) tobuild certificates/keys.

 

需重新运行一次 source ./vars