OpenVPN安装配置

2. 安装

2.1安装前准备

系统:centos5.4
i686 i686 i386 GNU/Linux

把系统的Forward打开,可以通过如下命令实现
echo 1 > /proc/sys/net/ipv4/ip_forward
或者使用
sysctl -w net.ipv4.ip_forward=1
或者修改/etc/sysctl.conf文件,增加
net.ipv4.ip_forward = 1

首先检查系统是否安装lzo实时压缩工具
$rpm -qa | grep lzo
如果没有安装可以在http://www.oberhumer.com/opensource/lzo/找到并安装,安装方法详见压缩包中的 INSTALL文件,当然也可以用rpm包安装,记住一定要安装lzo-devel开头的那个包,因为OpenVPN需要使用lzo的头文件。

2.2获取软件

Wget http://down1.chinaunix.net/distfiles/openvpn-2.0.7.tar.gz

Wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz

2.3安装

tar -xzvf lzo-2.03tar.gz

cd lzo-2.03

./configure

make

make install

安装openvpn

$tar -zxvf openvpn-2.07tar.gz
$cd openvpn-2.07

#./configure --with-lzo-lib=/usr/local/lib --with-lzo-headers=/usr/local/include

3.
配置

3.1创建证书配置文件

拷贝源码文件到/etc下(当然也可以生成完密钥后将kes拷过来也可)

Cd / openvpn-2.07

cp -ar easy-rsa/etc/openvpn

编辑vars文件

找到如下内容

# 定义你所在的国家,2个字符
export KEY_COUNTRY=CN
# 你所在的省份
export KEY_PROVINCE=bj
# 你所在的城市
export KEY_CITY=bj
# 你所在的组织
export KEY_ORG="OpenVPN ORG"
# 你的单位
export KEY_OU="OpenVPN"
# 你的邮件地址
export KEY_EMAIL="[email protected]"
-------------CUT Here-----------------
修改后保存,下面我们开始什成keys,以下为shell命令 "#" 为提示符

然后执行

. ./vars (注意. .之间有空格)

NOTE:when you run ./clean-all, I will be doing a rm -rf on/etc/openvpn/easy-rsa/keys(此为正确输出信息)

#./clean-all#初始化keys目录,创建所需要的文件和目录

#./build-ca#生成root CA证书。用于签发server和client证书
密匙跟openssl紧密结合.

如果没有修改的地方一路回车即可

# ls keys
ca.crt ca.key index.txt serial
我们可以看到ca.crt ca.key文件已经什成了。
下面我们为服务器生成 Diffie-Hellman 文件
# ./build-dh #TLS server 需要使用的一个文件
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
..+..............................................................+....................................................................+....+........+.........+....................................................+.+..................................................................................................................................................................+.......................................+.................................+.............+.................................................................................+.......................................................+.............................++*++*++*

创建并签发VPN Server使用的CA

3.2建立服务器的认证书和密匙

# ./build-key-server server # server
为创建后的文件名,分别为server.crtserver.key
Generating a 1024 bit RSA private key

输出我就不写了,其中有两个选择的地方,都选择y即可,如果报错comaname的错误时是你的输入的名字错误,或是重名了。修改文件名即可。

3.3建立客户端证书

如果以后要为其他Client颁发证书,直接使用build-key命令签发新证书。
# ./build-key client1
Generating a 1024 bit RSA private key
........++++++
....................++++++
writing new private key to ‘elm.key‘
-----
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(略)

Name(eg, your name or your server‘s hostname) []:client1#注意Common Name最好不要相同,如果相同[server要加duplicate-cn选项,那么Email地址也不能相同
Email Address [[email protected]]:

……………….

…………………(略,回车即可)

hecertificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

说明创建成功

为防止恶意攻击(如DOS、UDP port flooding),我们生成一个"HMAC firewall"
#openvpn --genkey --secret keys/ta.key (keys/ta.key是创建的目录和文件名)
生成证书吊销链文件,防止日后有人丢失证书,被非法用户接入VPN
#./make-crl vpncrl.pem
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf

到现在为止,一切准备就绪,下面开始写配置文件,为了缩小篇幅,把原有注释都去掉了。

3.4置服务端:

创建server.conf

可以直接将源码下的server.conf拷贝过来修改即可

如:

cp/opt/openvpn/openvpn-2.0.7/sample-config-files/server.conf

/etc/openvpn/

编辑server.conf文件

;locala.b.c.d ##申明本机使用的IP地址,也可以不说明

port1194 ##申明使用的端口,默认1194

;prototcp ##申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议

protoudp

devtap ##申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。#tun是ip层的点对点协议,限制稍微多一些,本人习惯使用TAP设备

;devtun

;dev-nodeMyTap

##OpenVPN使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法

ca
/etc/openvpn/easy-rsa/keys/ca.crt

#Server使用的证书文件

cert/etc/openvpneasy-rsa/keys/server.crt

#Server使用的证书对应的key,注意文件的权限,防止被盗

key/etc/openvpn/ easy-rsa/keys/server.key
#This file should be kept secret

#CRL文件的申明,被吊销的证书链,这些证书将无法登录
crl-verify vpncrl.pem

#上面提到的生成的Diffie-Hellman文件

dh/etc/openvpn /easy-rsa/keys/dh1024.pem

#用于记录某个Client获得的IP地址,类似于dhcpd.lease文件,

;server10.8.0.0 255.255.255.0

server192.168.98.0 255.255.255.0

#防止openvpn重新启动后“忘记”Client曾经使用过的IP地址

ifconfig-pool-persistipp.txt

#Bridge状态下类似DHCPD的配置,为客户分配地址,由于这里工作在路由模式,所以不使用

;server-bridge10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

#通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用(这一点很重要,这样其他服务器添加一下路由就可以登陆了,否则无效,这个最好和你的内网断一至,否则也不生效)

;push"route 192.168.10.0 255.255.255.0"

;push"route 192.168.20.0 255.255.255.0"

push"route 192.168.99.0 255.255.255.0"

;client-config-dirccd

;route192.168.40.128 255.255.255.248

route192.168.99.0 255.255.255.0

;client-config-dirccd

;route10.9.0.0 255.255.255.252

;learn-address./script

;push"redirect-gateway"

#如果可以让VPN Client之间相互访问直接通过openvpn程序转发,

;push"dhcp-option DNS 10.8.0.1"

;push"dhcp-option WINS 10.8.0.1"

#不用发送到tun或者tap设备后重新转发,优化Client to Client的访问效率

client-to-client

;duplicate-cn

#NAT后面使用VPN,如果VPN长时间不通信,NAT Session可能会失效,
#导致VPN连接丢失,为防止之类事情的发生,keepalive提供一个类似于ping的机制,
#下面表示每10秒通过VPN的Control通道ping对方,如果连续120秒无法ping通,
#认为连接丢失,并重新启动VPN,重新连接
#(对于mode server模式下的openvpn不会重新连接)。

keepalive10 120

#没有HMAC signature的控制信息不予处理,注意server端后面的数字肯定使用0,client使用1

;tls-authta.key 0 # This file is secret

#对数据进行压缩,注意Server和Client一致

comp-lzo

#定义最大连接数

max-clients100

#定义运行openvpn的用户

usernobody

groupnobody

#通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys

persist-key

#通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的,
#否则网络连接会先linkdown然后linkup

persist-tun

#定期把openvpn的一些状态信息写到文件中,以便自己写程序计费或者进行其他操作

statusopenvpn-status.log

#记录日志,每次重新启动openvpn后删除原有的log信息

log
openvpn.log

;log-append
openvpn.log

#相当于debug level,具体查看manual

verb3

;mute20

创建OpenVPN启动脚本,可以在源代码目录中找到,在sample-scripts目录下的openvpn.init文件,将其复制到/etc/init.d/目录中,改名为openvpn
然后运行:
#chkconfig --add openvpn
#chkconfig openvpn on
立即启动openenvpn
#/etc/init.d/openvpn start

(如果没有openvpn启动程序的话,将源码的拷过来,如:cp/opt/openvpn/openvpn-2.0.7/sample-scripts/openvpn.init /etc/init.d/openvpn)

3.5置client端

client

#dev tun

dev tap

proto udp

#proto tcp

remote ip(你的vpn的公网ip,就是用来连接服务端的ip) 1194 (服务端是什么端口这里就是什么端口)

remote-random

resolv-retry infinite

nobind

persist-key

persist-tun

ca ca.crt

cert client1.crt

key client1.key

#tls-auth ta.key 1

comp-lzo

verb 3

# Silence repeating messages

;mute 20

keepalive 5 10

3.6启动服务

/etc/init.d/openvpn start

cd /etc/openvpn/easy-rsa/

openvpn--daemon --config
server.conf #有没有错误输出

openvpn --daemon --config
server.conf &#没有的话后端运行(这项是必须的否则客户端将报告连不上服务器的错误)

netstat-antlp | grep 1194 #(查看端口,如果有的话说明openvpn启动,如果没有继续查配置文件)

4.
其他服务器设置

4.1添加路由

在其他服务器上添加路由,这一项很重要,否则openvpn不能直接访问。

route add -net192.168.98.0 gw
192.168.99.209 netmask255.255.255.0 dev eth1(gw 后面的ip为你自己内网eth1设置的ip)

5.
安装windows客户端

5.1获取软件

软件下载地址:

http://swupdate.openvpn.net/community/releases/openvpn-2.2-beta3-install.exe

至于安装过程那就简单了不在叙述

5.2获取服务器生成的证书

将服务器端生成client crt 和key 还有ca。crt 下载到本地

放到openvpn的安装目录的config文件

如我安装的路径为C:\Program Files\OpenVPN\config (就把这些东西放到里边即可)

5.3 修改客户端配置文件

这里边在我配置客户端文件时已经列出了客户端的配置文件,不在描述

6
验收

6.1打开防火墙

关闭linux 服务器上的防火墙或在防火墙上打开1194端口

如:

Iptables - A INPUT -p tcp –dport 1194 -j ACCEPT

6.2 链接测试

当你的客户端安装完成后,会产生两个两个电脑的图标,一个是网卡和一个是连接终端。如图:

右键点击红色的connect 连接,如果没问题的话就可以连接了,成功后会是绿色的图标。

补充:至于linux下的客户端的配置和window下基本一样,但想连接服务器时直接运行

openvpn --daemon --config client.conf & 即可。(这个也需要安装openvpn)

7常见问题解答

1. 
BIO read tls_read_plaintext error: error:14090086:SSLroutines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

认证问题key的钥匙是否正确

2.

Nov04 16:10:05 2010 C:\WINDOWS\system32\route.exe DELETE 192.168.99.0 MASK255.255.255.0 192.168.98.1

ThuNov 04 16:10:05 2010 Warning: route gateway is not reachable on any activenetwork adapters: 192.168.98.1

ThuNov 04 16:10:05 2010 Route deletion via IPAPI failed [adaptive]

ThuNov 04 16:10:05 2010 Route deletion fallback to route.exe

Theroute specified was not found.

ThuNov 04 16:10:05 2010 Closing TUN/TAP interface

ThuNov 04 16:10:05 2010 SIGTERM[soft,tun-stop] received, process exiting

这是windos 没有tap的网卡 需要安装客户端工具自己生成一个网卡

时间: 2024-08-08 22:03:07

OpenVPN安装配置的相关文章

OPENVPN安装配置教程总结 centosX64

1.安装openvpn依赖组件 2.安装openvpn 3.初始化CA证书 4.生成CA证书,生成server证书,生成client证书 5.编辑/etc/sysctl.conf,添加路由规则. 6.生成Diffie Hellman参数 7.将server 证书 dh1024.pem ca证书copy到 /etc/openvpn 8.将server.conf 复制到 /etc/openvpn目录下并依据自己要求编辑此配置文件 9.配置启动脚本启动server 端 10.配置客户端,连接客户端 详

OpenVPN安装配置,客户端配置

一.OpenVPN的工作原理 1.虚拟网卡 在Linux2.4版本以上,操作系统支持一个名为tun的设备,tun设备的驱动程序中包含两个部分,一部分是字符设备驱动,一部分是网卡驱动.网卡的驱动把从TCP/IP协议栈收到的数据包结构skb放于tun设备的读取队列,用户进程通过调用字符设备接口read获得完整的IP数据包,字符驱动read函数的功能是从设备的读取队列读取数据,将核心态的skb传递给用户:反过来字符驱动write函数给用户提供了把用户态的数据写入核心态的接口,write函数把用户数据写

openvpn安装配置过程

前言 之前为了方便远程办公时访问公司的内部系统,如:svn.OA.wiki.禅道等等:通通在防火墙上做了端口映射.然后 有个内部系统被黑了,各种弱口令没办法.果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用.马上就想到了开源的openvpn, 下面就来介绍openvpn的安装配置过程. openvpn简介 官方网站:https://openvpn.net 打不开请爬墙 openssl原理:http://www.178linux.com/archives/2704 参考书生的

Centos系统下OpenVPN安装配置

由于最近公司的一个客户需求通过VPN来访问国外的业务,这个事情由我来负责但我从来都没有做过于是就各种百度.google一顿狂找OpenVPN方面的资料.根据网上查找到的资料结合自己的理解总结如下文档,给大家在这里分享下. 一.安装OpenVPN前的准备工作 1.安装OpenVPN版本 Centos6.3 64位 客户端系统Win7 64位  服务端IP:114.26.162.35 2.服务端软件版本 openvpn-2.0.9tar.gz lzo-2.03.tar.gz 3.客户端安装软件版本

Openvpn安装配置参考示例收藏版

1.配置安装环境: [[email protected] ~]# yum install -y gcc gcc-c++ pam-devel openssl penssl-devel [[email protected] ~]# yum install -y lrzsz    (SecureCRT 上传下载) 2.关闭SELINUX.清除防火墙设置 [[email protected] ~]#vi /etc/selinx/config #     disabled - No SELinux pol

centos6.5 64位 openvpn安装配置(转)

查看系统版本cat /etc/redhat-releaseCentOS release 6.5 (Final) 查看内核和cpu架构uname -rm2.6.32-431.el6.x86_64 x86_64 查看ipifconfigeth0 Link encap:Ethernet HWaddr 08:00:27:5E:DF:74 inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.255.0 inet6 addr: fe80:

centos6.5 64位 openvpn安装配置

1 查看系统版本 2 cat /etc/redhat-release 3 CentOS release 6.5 (Final) 4 5 查看内核和cpu架构 6 uname -rm 7 2.6.32-431.el6.x86_64 x86_64 8 9 查看ip 10 ifconfig 11 eth0 Link encap:Ethernet HWaddr 08:00:27:5E:DF:74 12 inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mas

centos 安装配置openvpn

centos6.5 openvpn安装配置首先检查selinux是否关闭 getenforce 0 返回 disabled 表示关闭# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度yum -y install openssl openssl-develyum -y install lzo 1.安装openvpn 和easy-rsa(生成证书) yum -y install openvpn 报错 错误:软件包:pkcs11-helper-1.08-1.el6.rf.x86_64

CentOS上安装配置OpenVPN

CentOS6.7上安装配置OpenVPN 安装配置openvpn服务端 1.安装依赖 ntpdate pool.ntp.org yum -y install lzo lzo-devel-devel gcc pam-devel gcc-c++ 2.安装openvpn mkdir tools cd tools wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.2.tar.gz tar xf openvpn-2.3.2.t