使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx

上传人:b****6 文档编号:16590090 上传时间:2022-11-24 格式:DOCX 页数:16 大小:80.75KB
下载 相关 举报
使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx_第1页
第1页 / 共16页
使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx_第2页
第2页 / 共16页
使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx_第3页
第3页 / 共16页
使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx_第4页
第4页 / 共16页
使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx

《使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx》由会员分享,可在线阅读,更多相关《使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

使用OpenVPN实现网通电信机房间快速安全通信Word格式.docx

5.3windows下的配置:

6实际应用情况

7参考文档

假设现在的某公司的服务器存放在广州、河北、杭州三个机房中,每个机房使用不用的子网:

机房子网(内部)

广州10.1.0.0/16

河北10.2.0.0/16

杭州10.3.0.0/16

各机房使用不同的网段,为使用vpn连接创造了有利条件。

由于电信至网通间的网络速度是否缓慢,对广州与河北机房间的数据同步带来非常大的困难。

我们找到一台即连接了网通的线路,又连接了电信线路的服务器,但却不能直接用其作为路由。

如果使用porxy的方式或转发的方式又会降低同步的效率。

采用C/S结构的vpn方式,即解决了同步的问题,又不会影响同步的效率。

下图是三个机房实现互连互通后的拓扑图:

从上图可以看到,该VPN系统是一个C/S的结构。

中间为VPNSERVER;

广州、河北、杭州三个机房各取出一台服务器作为VPNCLIENT。

VPNSERVER拥有两块网卡和两条线路(电信和网通),两个网卡均需要设置公网IP。

根据实际的情况设置路由,这里我是设置电信的线路为默认路由,设置到河北机房网段的走网通的路由。

VPNCLIENT可以有两块网卡也可以只用一块网卡,如果是电信的线路则连接vpnserver的电信的IP;

如果是网通的线路则连接网通的vpnserver的网通方面的IP。

在本文中我们使用了4台服务器分别作为vpnserver和client。

由于使用vpn传输数据对服务器的负载不大,所以除了vpnserver需要一台新的服务器外,各机房的client服务器只需要找一台负载轻的服务器来担当即可。

本文使用的四台服务器的详细信息:

机房Vpn模式操作系统服务器IP

VpnserverRedHat9.0公网IP1(网通)/公网IP2(电信)

广州机房VpnclientFreeBSD4.910.1.0.1

河北机房VpnclientRedHat9.010.2.0.1

杭州机房VpnclientFreeBsd4.910.3.0.1

除vpnserver外,其它的机房中的vpnclient均无需公网IP,所以vpnserver需要加强安全方面的设置。

该服务器是RedHat9.0的操作系统,登陆界面使用的是grub,并设置的grub密码,保证物理上的安全。

使用Iptables设置包过滤防火墙,只允许你的服务器对其进行访问:

iptables–F

iptables-AINPUT-s10.0.0.0/8-jACCEPT

iptables-AINPUT-sYOURNETWORK-jACCEPT

iptables-AINPUT-pudp--dport1194–jDROP

OpenVPN是一个强大、高度可配置、基于ssl的VPN(VirtualPrivateNetwork)OpenSource软件。

它具有多种的验证方式以及许多强大的功能。

OpenVPN工作在OSI模型的第2或第3层,使用SSL/TLS协议进行网络传输。

支持多种客户认证方法,如证书、smartcards,加上用户名密码的证书认证等。

除此以外,还有强大的ACL功能限制客户的信息交换。

OpenVPN可以运行在多种操作系统中,包括:

Linux,Windows2000/XPandhigher,OpenBSD,FreeBSD,NetBSD,MacOSX,andSolaris.

使用OpenVpn,可以实现:

●使用特定udp或tcp端口实现两台主机的之间的vpn连接。

●实现C/S结构,实现多台client通过server服务器互连互通。

●通过TLS/SSL加密保证数据传输的安全。

●通过数据的压缩,提高数据传输的速度。

(由于其它功能在本文中并不需要使用,如想要详细了解请访问)

从以下网址下载最新版本的openvpnsource包。

由于openvpn需要使用数据压缩,所以还需要安装lzo包:

Linux:

软件编译安装

Lzo./configure&

&

Make&

makeinstall

Openvpn./configure-prefix=/opt/openvpn&

Make&

makeinstall

FreeBSD:

Openvpn./configure-prefix=/opt/openvpn--with-lzo-headers=/usr/local/include--with-lzo-headers=/usr/local/include&

参照上面的安装方法分别在linux和freebsd主机上安装好openvpn。

从我安装过的操作系统看,RedHat9.0和FreeBSD4.9的内核默认已经支持TUN,并且已经安装tun模块。

RedHatAS3则没有该模块,需要重新编译内核支持。

加载tun模块:

●Linux2.4orhigher(withintegratedTUN/TAPdriver):

(1)makedevicenode:

mknod/dev/net/tunc10200

(2a)addto/etc/modules.conf:

aliaschar-major-10-200tun

(2b)loaddriver:

modprobetun

(3)enablerouting:

echo1>

;

/proc/sys/net/ipv4/ip_forward

●FreeBSD4.1.1+:

kldloadif_tap

Cacertificate

authority(认证授权),所有的server和client均使用同一个ca文件。

certcertificate(证书)。

公钥,每一个server和client各自独立生成的公钥。

key私钥,每一个server和client工作独立生成的私钥。

◎server端只需要知道它自己的cert和key。

它不需要知道每一个可以连接到它的client的cert。

◎server端接受的client必须拥有以server的CA产生的cert。

server能使用它自己的CA私钥来确认client的cert中是否带有其CA的记号。

#######

InthissectionwewillgenerateamasterCAcertificate/key,aservercertificate/key,andcertificates/keysfor3separateclients

在本节,我们会尝试建立一对masterCA的cert和key,一对server端的cert和key,和3个不同client的年的cert和keys。

UNIX:

在openvpn的源码中可以找到easy-rsa文件夹。

cdeasy-rsa

../vars建立环境变量

./clean-all清除以前的

./build-ca建立CA

最后一个命令会调用openssl来创建CA的公钥和私钥:

CountryName(2lettercode)[KG]:

StateorProvinceName(fullname)[NA]:

LocalityName(eg,city)[BISHKEK]:

OrganizationName(eg,company)[OpenVPN-TEST]:

yourcorp在此输入公司名

OrganizationalUnitName(eg,section)[]:

CommonName(eg,yournameoryourserver'

shostname)[]:

hbroute在此输入主机名或随便输一个名字

EmailAddress[******************]:

其它的按默认即可。

完成后会在keys目录中创建ca.crtca.keyindex.txtserial四个文件。

./build-key-serverserver

yourcorp输入公司名

hbrouteserver输入主机名或随便一个名字

Pleaseenterthefollowing'

extra'

attributes

tobesentwithyourcertificaterequest

Achallengepassword[]:

Anoptionalcompanyname[]:

Signthecertificate?

[y/n]:

y输入y

1outof1certificaterequestscertified,commit?

[y/n]y输入y

Writeoutdatabasewith1newentries

DataBaseUpdated

其它的按回车。

与创建server端的非常相似.

./build-keygz

./build-keyhb

./build-keyhz

注意gz、hb和hz不能一样,否则两个相同名字的client只能有一个能连接进来。

如果想使用带密码的clientkey,可以使用build-key-pass脚本。

如建立广州的:

mycorp

gz键入"

gz"

CertificateistobecertifieduntilMar1408:

15:

162015GMT(3650days)

y键入“y”

[y/n]y键入“y”

DiffieHellman参数必须要在openvpnserver中使用。

./build-dh

FilenameNeededByPurposeSecret

ca.crtserver+allclientsRootCAcertificateNO

ca.keykeysigningmachineonlyRootCAkeyYES

Dh{n}.pemserveronlyDiffieHellmanparametersNO

server.crtserveronlyServerCertificateNO

server.keyserveronlyServerKeyYES

gz.crt广州onlygzCertificateNO

Gz.key广州onlygzKeyYES

hcrt河北onlyhbCertificateNO

hb.key河北onlyhbKeyYES

hz.crt杭州onlyhzCertificateNO

hz.key杭州onlyhzKeyYES

根据上表,将所有的文件拷贝到需要这些文件的主机上。

刚安装完openvpn的时候,/opt/openvpn目录下只有sbin和man两个文件夹,为方便起见,我们可以在该目录下建立其它的文件夹。

目录名作用

Sbin放置openvpn的主程序“openvpn”

Conf放置配置文件

Ccd放置各client的独立配置文件

Log放置server的日志文件

Keys放置认证文件

Man放置man文档

配置文件:

./conf/server.conf

port1194

protoudp

devtun

ca/opt/openvpn/keys/ca.crt

cert/opt/openvpn/keys/server.crt

key/opt/openvpn/keys/server.key

dh/opt/openvpn/keys/dh1024.pem

server10.99.0.0255.255.255.0

ifconfig-pool-persist/opt/openvpn/log/ipp.txt

client-config-dirccd

route10.1.0.0255.255.0.0

route10.2.0.0255.255.0.0

route10.3.0255.255.0.0

push"

route10.10.0255.255.0.0"

route10.2.0.0255.255.0.0"

route10.3.0.0255.255.0.0"

client-to-client

keepalive10120

comp-lzo

usernobody

groupnobody

persist-key

persist-tun

status/opt/openvpn/log/openvpn-status.log

log/opt/openvpn/log/openvpn.log

verb6

mute20

writepid/opt/openvpn/log/server.pid

Client的自定义配置:

./ccd/

gz:

iroute10.1.0.0255.255.0.0

hz:

iroute10.3.0.0255.255.0.0

hb:

iroute10.2.0.0255.255.0.0

配置文件解释:

locala,b,c,dlisten的IP

port1194listen的端口

protoudp使用UDP协议

devtun使用tunnel的模块

caca.crt公钥(s端和c端使用相同的ca)

certserver.crtserver的公钥

keyserver.keyserver的私钥(要保管好)(s端和c端使用各自的cert和key)

dhdh1024.pem产生方法:

openssldhparam-outdh1024.pem1024

server10.99.0.0255.255.255.0设置为server模式,并指定子网的IP段,server端默认会设为.1的地址。

ifconfig-pool-persistipp.txt当vpn断开或重启后,可以利用该文件重新建立相同IP地址的连接。

route10.1.0.0255.255.0.0"

让client端建立到另一个子网的路由。

client-to-client让不同的client之间可以互相“看到”。

max-clients100最多的client数量。

keepalive10120每10秒ping一次,如果120秒没有回应则认为对方已经down。

groupnobody指定运行openvpn的用户和组。

(减少危险)。

statusopenvpn-status.log每分钟记录一次连接的状态。

logopenvpn.log将log记录到指定文件中

verb3设置日志要记录的级别。

0只记录错误信息。

4能记录普通的信息。

5和6在连接出现问题时能帮助调试

9是极端的,所有信息都会显示,甚至连包头等信息都显示(像tcpdump)

mute20相同信息的数量,如果连续出现20条相同的信息,将不记录到日志中。

./conf/client.conf

广州:

Client

remoteVPNSERVERIP11194

resolv-retryinfinite

nobind

cert/opt/openvpn/keys/gz.crt

key/opt/openvpn/keys/gz.key

verb3

杭州:

client

remoteVPNSERVERIP11194

cert/opt/openvpn/keys/hz.crt

key/opt/openvpn/keys/hz.key

河北:

remoteVPNSERVERIP21194

cert/opt/openvpn/keys/hb.crt

key/opt/openvpn/keys/hb.key

建立脚本:

Server端:

#!

/bin/sh

OPENVPN=/opt/openvpn/sbin/openvpn

CFG=/opt/openvpn/conf/server.conf

PID=`cat/opt/openvpn/log/server.pid`

case"

$1"

in

start)

$OPENVPN--config$CFG&

stop)

kill$PID

restart)

sleep5

*)

echo"

Usage:

`basename$0`{start|stop|restart}"

esac

Client端:

/opt/openvpn/sbin/openvpn--config/opt/openvpn/conf/client.conf&

●client-config-dirccd

添加一个ccd的文件夹,里面的文件名为client的名字(如gz,hb)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1