基于linux操作系统架构openvpn总结

2008-02-23 07:25:55来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

使用OPENVPN实现各机房的互通 1

1 现状 2

2 网络结构 2

3 服务器信息以及网络安全 4

3.1 服务器信息 4

3.2 网络安全 4

4 使用openvpn实现南北互通 5

4.1 Openvpn简介 5

4.2 下载 5

4.3 安装 6

4.4 你的操作系统支持tun吗? 6

4.5 配置C/S结构的VPN网络 7

4.5.1 如何生成ca和cert/key? 7

4.5.1.1 产生MASTER Certificate Authority(CA) 的公钥(certificate)和私钥(key) 7

4.5.1.2 创建server端的cert和key文件 8

4.5.1.3 创建3个client端cert和key文件 9

4.5.1.4 建立 Diffie Hellman文件 9

4.5.1.5 所有文件的列表及使用的主机 9

4.5.2 OpenVPN Server端的配置 10

4.5.3 OpenVPN Client端的配置 12

4.5.4 运行OpenVPN 14

5 其它配置 15

5.1 让多个client的子网间互通 15

5.2 控制运行中的openvpn进程 15

5.3 windows下的配置: 15

6 实际应用情况 16

7 参考文档 17

1 现状

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

代码:

机房 子网(内部)

广州 10.1.0.0/16

河北 10.2.0.0/16

杭州 10.3.0.0/16

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

由于电信至网通间的网络速度是否缓慢,对广州与河北机房间的数据同步带来非常大的困难。我们找到一台即连接了网通的线路,又连接了电信线路的服务器,但却不能直接用其作为路由。如果使用porxy的方式或转发的方式又会降低同步的效率。

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

2 网络结构

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

(由于是发到论坛的关系,请看贴子最后的图)

从上图可以看到,该VPN系统是一个C/S的结构。中间为VPN SERVER;广州、河北、杭州三个机房各取出一台服务器作为VPN CLIENT。

VPN SERVER拥有两块网卡和两条线路(电信和网通),两个网卡均需要设置公网IP。根据实际的情况设置路由,这里我是设置电信的线路为默认路由,设置到河北机房网段的走网通的路由。

VPN CLIENT可以有两块网卡也可以只用一块网卡,如果是电信的线路则连接vpn server的电信的IP;如果是网通的线路则连接网通的vpn server 的网通方面的IP。

3 服务器信息以及网络安全

3.1 服务器信息

在本文中我们使用了4台服务器分别作为vpn server和client。由于使用vpn传输数据对服务器的负载不大,所以除了vpn server需要一台新的服务器外,各机房的client服务器只需要找一台负载轻的服务器来担当即可。

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

代码:

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

Vpn server RedHat 9.0 公网IP1 (网通)

公网IP2(电信)

广州机房 Vpn client FreeBSD4.9 10.1.0.1

河北机房 Vpn client RedHat9.0 10.2.0.1

杭州机房 Vpn client FreeBsd4.9 10.3.0.1

3.2 网络安全

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

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

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

代码:

iptables –F

iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT

iptables -A INPUT -s YOURNETWORK -j ACCEPT

iptables -A INPUT -p udp --dport 1194 –j DROP

4 使用openvpn实现南北互通

4.1 Openvpn简介

OpenVPN 是一个强大、高度可配置、基于ssl的 VPN (Virtual Private Network)Open Source 软件。它具有多种的验证方式以及许多强大的功能。

OpenVPN工作在OSI模型的第2或第3层,使用SSL/TLS协议进行网络传输。支持多种客户认证方法,如证书、smart cards,加上用户名密码的证书认证等。除此以外,还有强大的ACL功能限制客户的信息交换。

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

Linux, Windows 2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Solaris.

使用OpenVpn,可以实现:

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

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

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

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

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

4.2 下载

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

http://nchc.dl.sourceforge.net/sourceforge/openvpn/openvpn-2.0_rc16.tar.gz

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

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

4.3 安装

Linux:

代码:

软件 编译安装

Lzo ./configure Make && make install

Openvpn ./configure -prefix=/opt/openvpn Make && make install

FreeBSD:

代码:

Lzo ./configure Make && make install

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

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

4.4 你的操作系统支持tun吗?

从我安装过的操作系统看,RedHat9.0和FreeBSD4.9的内核默认已经支持TUN,并且已经安装tun模块。RedHat AS3则没有该模块,需要重新编译内核支持。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Linux下硬盘分区的最佳方案

下一篇:Linux中文件内容查看工具的使用介绍