论文部分内容阅读
摘 要:本文介绍了虚拟专用网(VPN)的原理和特点,对实现虚拟专用网的技术进行了研究和分析,结合我校的实际情况,设计了一台Linux网关下的VPN服务器,通过虚拟专用网的隧道技术实现了校外用户正常访问校内资源,达到了资源共享的目的。
关键词:Linux网关;VPN;隧道技术;资源共享
中图分类号:TP393.08文献标识码:B 文章编号:1673-8454(2010)05-0084-03
安徽工业大学校园网建于2000年并于同年投入使用,目前已经建立了资产管理系统、人事管理系统、教务管理系统、图书信息资源管理系统等数字资源。考虑到各种数字资源的特殊性,多数数字资源只能限制在校园网内部合法访问。为了满足移动办公和校外教师科研工作等使用校内资源,需对这些用户进行授权访问,而虚拟专用网(VPN:Virtual Private Network)技术可以提供较为安全的解决方案。
Linux作为一种操作系统广为流行,不仅因其源码开放,而且GNU(一套完全自由的操作系统)的大多数程序都可以在它下面进行编译开发再利用。[1]目前在Linux基础上开发的系统在计算机领域,尤其是网络管理等方面得到广泛应用。Linux网关是指利用 Linux 作为底层操作系统,在其上进行系统开发,建立一个具有网络管理功能的网关服务器。相对于Windows系统,其安全性和可靠性都有较大提高。
笔者针对我校资源共享的需求,采用Linux网关设计和实现了VPN,本文在此介绍一下VPN的技术原理及其在Linux网关下的实现方法。
一、VPN技术原理
VPN是利用开放性的公共网络作为用户信息传输的媒体, 通过附加的隧道封装、信息加密、用户认证和访问控制等技术实现对信息传输过程的安全保护,从而向用户提供类似专用网络的安全性能。也就是说可以通过公共IP 网利用VPN 技术来建立私有数据传输通道,将远程的校园网外部的移动办公人员和校园内网连接起来,并提供安全的端到端的数据通讯。[2]
隧道技术是一种通过使用互联网的基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或数据包。隧道协议将这些协议的数据帧或数据包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。其实隧道技术是指包括数据封装,传输和解包在内的全过程。[3]
VPN的目标是建立一个独立于网络物理拓扑结构的逻辑网络,它允许不同地理位置上分布的一组主机互相交互并且可以作为一个单独的网络进行管理,不用关心主机在网络中所处的位置。
VPN具体实现形式多种多样,但都基于一种称作安全或者加密的隧道(Tunnel)技术。这种技术可以用来提供网络到网络(Network to network),主机到网络(Host to network),或者主机到主机(Host to host)的安全链接。
二、IPSec协议与PPTP协议
IPSec(Internet Protocol Security)即因特网安全协议,是一个范围广泛、开放的虚拟专用网安全协议。它提供所有在网络层上的数据保护,提供透明的安全通信,主要是为IP通信提供加密和认证,它为数据通过公用网络在网络层进行传输时提供安全保障。通信双方要建立IPSec通道,首先要采用一定的方式建立通信连接。因为IPSec协议支持几种操作模式,所以通信双方先要确定所要采用的安全策略和使用模式,包括加密运算法则和身份验证方法类型等。
在IPSec协议中,一旦IPSec通道建立,所有在网络层之上的协议在通信双方都将经过加密,如TCP、UDP、ICMP等,而不管这些通道构建时所采用的安全和加密方法如何。IPSec的VPN通道是在两个局域网之间通过Internet建立的安全链接,保护的是点对点之间的通信,并且它不局限于Web等特定的应用,还能构建局域网之间的虚拟专用网络,功能和应用的扩展性更强,普通用户根本无需关心局域网间的连接方式,就像在一个网内一样,实现了透明的访问。
PPTP(Point to Point Tunneling Protocol)协议是专门为支持VPN 而开发的一种技术。PPTP是PPP(Point-to-Point Protocol,点到点协议)协议的一种扩展,同样要求客户端和服务器之间存在有效的互连网连接,这种连接需要访问身份证明( 如用户名、口令和域名等) 和遵从的验证协议。只有当PPTP服务器验证客户身份之后,服务器和客户端的连接才算建立起来了。PPTP会话的作用就如同服务器和客户端之间的一条隧道,网络数据包由一端流向另一边。数据包在起点处(服务器或客户端)被加密为密文,在隧道内传送,在终点将数据解密还原。因为网络通信是在隧道内进行,所以数据对外而言是不可见的,隧道中的加密形式更增加了通信的安全级别。[4]
VPN连接一旦建立,远程的用户就可以访问校园内网和网内资源,如数字图书馆资源、教务管理系统和校内各管理系统,就像校园网本地用户一样。
三、Linux网关下的VPN设计与实现
1.选择比较流行的Linux系统的一个发行版本CentOS 5.1进行系统安装
安装时选择定制安装,“服务”中选上“SQL”关于Mysql的部分,“开发工具”全选上;其他的还包括设置相关的参数,包括设置IP地址,路由等。
2.设计基于Web的VPN用户登记、认证管理程序,使得此Linux系统作为一个用户管理的网关
3.利用GNU相关程序编译设置VPN服务器
需要编译和安装的应用程序软件主要包括:
HTTP服务器:设置Linux网关提供Web服务;
pppd:ppp拨号服务器;
pptpd:在pppd拨号的基础上增加pptpd的支持;
freeradius:用于拨号用户验证;
mysql:增加freeradius的数据库支持。
(1)安装Apache服务器
下载并安装Apache服务器应用程序,使得网关提供Web服务。
(2)安装PPP
安装PPP 2.4.3及以上版本,可以在http://sourceforge.net/下载ppp-2.4.3-0.cvs_20040527.1.i386.rpm软件包。
安装命令如下:
#rpm-Uvh ppp-2.4.3-0.cvs_20040527.1.i386.rpm
(3)安装内核MPPE补丁
安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁需要根据内核选择相应的版本。笔者使用的Linux内核是2.6.18版本,在http://pptpclient.sourceforge.net/上下载相应的kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm软件包。安装命令如下:
#rpm -ivh kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm
(4)安装PPTPD
到http://sourceforge.net/下载pptpd-1.3.4.tar.gz源文件,并解压安装。
tar -vxzf pptpd-1.3.4.tar.gz
cd pptpd-1.3.4
./configure
make
make install
(5)安装 freeradius
下载freeradius软件,解压并安装。
tar-vxzf freeradius-1.2.1.tar.gz
cd freeradius-1.2.1
./configure
make
make install
注意:freeradius需要openssl库,所以如果系统里没安装的话,需要先安装。
(6)安装 MYSQL数据库
在www.mysql.com上下载源码或者rpm包,源码需要解压编译安装,rpm包则可以直接安装mysql软件包,安装命令如下:
#rpm –ivh mysql-server-5.2.15.1.i386.rpm
4.配置Linux网关服务器参数
配置http服务器,使得Linux网关结合MYSQL数据库提供Web服务。
配置ppp服务和pptpd服务,设置包括VPN服务器地址、客户端接入地址池等参数,使得其服务作为系统的守护进程常驻内存,随时监听外面用户的拨号连接并分配一个内部合法地址用于通信。
配置freeradius服务和mysql服务,使得VPN用户通过数据库及radius进行认证。
配置VPN用户接口,通过Web方式完成VPN用户账号的登记注册,再利用后台程序将通过确认的合法用户账号导入到VPN系统账号中。
用户使用VPN连接Linux网关时,通过radius进行认证,使得合法的VPN用户可以使用Linux网关连接内网,从而达到内网资源共享的目的。
5.客户端配置及使用
以目前使用非常广泛的Windows XP为例讲述一下PPTP 客户端的配置。
点击“开始”菜单,进入控制面板,双击打开网络链接;单击左边“网络任务”下的“创建一个新的链接”,打开新建链接向导;点击“下一步”,选择“链接到我的工作场所的网络”,点击“下一步”;选择“虚拟专用网络链接”,然后下一步输入公司名,也就是识别本链接的名称,如“ahut”等,点击“下一步”,输入主机名或IP地址,也就是校园网Linux网关的地址(如我校的为211.70.144.8);点击“下一步”,选择在桌面上添加一个到此链接的快捷方式,点击“完成”,结束配置。这样基于Windows XP平台的PPTP客户端就配置好了。双击此快捷方式,拨号开始连接,输入VPN的认证用户名和密码,成功后网络任务栏多了一个已链接的连接图标,说明连接正常,可以和校内用户一样正常使用校内特殊资源了。
四、结束语
VPN作为一种解决网络互联问题的技术,不但保证了数据网络的安全和服务质量,同时实现了共享数据网络结构的简单和低成本。通过一年多的实际使用证明,此VPN技术解决方案具有较好的本地认证功能(可以扩展使用第三方的radius服务器进行认证)、有效的加密保障、安全的远端存取等功能,能够较好地应用于外网用户访问校园网内部私有资源。提高了校园网的可管理性、灵活性和安全性,极大地方便了校外教职工对校园网内部资源的安全访问。
参考文献:
[1]The GNU Operating System[EB/OL].http://www.gnu.org.
[2]何宝宏.IP虚拟专用网技术[M].北京:人民邮电出版社,2002.
[3]孙为清,赵轶群.VPN隧道技术[J].计算机应用研究,2000,8(1):55-57.
[4]蒋东毅,吕述望,罗晓广.VPN的关键技术分析[J].计算机工程与应用,2003(15):173-177.
[5]OpenVPN[EB/OL].http://www.openvpn.org.
(编辑:杨馥红)
关键词:Linux网关;VPN;隧道技术;资源共享
中图分类号:TP393.08文献标识码:B 文章编号:1673-8454(2010)05-0084-03
安徽工业大学校园网建于2000年并于同年投入使用,目前已经建立了资产管理系统、人事管理系统、教务管理系统、图书信息资源管理系统等数字资源。考虑到各种数字资源的特殊性,多数数字资源只能限制在校园网内部合法访问。为了满足移动办公和校外教师科研工作等使用校内资源,需对这些用户进行授权访问,而虚拟专用网(VPN:Virtual Private Network)技术可以提供较为安全的解决方案。
Linux作为一种操作系统广为流行,不仅因其源码开放,而且GNU(一套完全自由的操作系统)的大多数程序都可以在它下面进行编译开发再利用。[1]目前在Linux基础上开发的系统在计算机领域,尤其是网络管理等方面得到广泛应用。Linux网关是指利用 Linux 作为底层操作系统,在其上进行系统开发,建立一个具有网络管理功能的网关服务器。相对于Windows系统,其安全性和可靠性都有较大提高。
笔者针对我校资源共享的需求,采用Linux网关设计和实现了VPN,本文在此介绍一下VPN的技术原理及其在Linux网关下的实现方法。
一、VPN技术原理
VPN是利用开放性的公共网络作为用户信息传输的媒体, 通过附加的隧道封装、信息加密、用户认证和访问控制等技术实现对信息传输过程的安全保护,从而向用户提供类似专用网络的安全性能。也就是说可以通过公共IP 网利用VPN 技术来建立私有数据传输通道,将远程的校园网外部的移动办公人员和校园内网连接起来,并提供安全的端到端的数据通讯。[2]
隧道技术是一种通过使用互联网的基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或数据包。隧道协议将这些协议的数据帧或数据包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。其实隧道技术是指包括数据封装,传输和解包在内的全过程。[3]
VPN的目标是建立一个独立于网络物理拓扑结构的逻辑网络,它允许不同地理位置上分布的一组主机互相交互并且可以作为一个单独的网络进行管理,不用关心主机在网络中所处的位置。
VPN具体实现形式多种多样,但都基于一种称作安全或者加密的隧道(Tunnel)技术。这种技术可以用来提供网络到网络(Network to network),主机到网络(Host to network),或者主机到主机(Host to host)的安全链接。
二、IPSec协议与PPTP协议
IPSec(Internet Protocol Security)即因特网安全协议,是一个范围广泛、开放的虚拟专用网安全协议。它提供所有在网络层上的数据保护,提供透明的安全通信,主要是为IP通信提供加密和认证,它为数据通过公用网络在网络层进行传输时提供安全保障。通信双方要建立IPSec通道,首先要采用一定的方式建立通信连接。因为IPSec协议支持几种操作模式,所以通信双方先要确定所要采用的安全策略和使用模式,包括加密运算法则和身份验证方法类型等。
在IPSec协议中,一旦IPSec通道建立,所有在网络层之上的协议在通信双方都将经过加密,如TCP、UDP、ICMP等,而不管这些通道构建时所采用的安全和加密方法如何。IPSec的VPN通道是在两个局域网之间通过Internet建立的安全链接,保护的是点对点之间的通信,并且它不局限于Web等特定的应用,还能构建局域网之间的虚拟专用网络,功能和应用的扩展性更强,普通用户根本无需关心局域网间的连接方式,就像在一个网内一样,实现了透明的访问。
PPTP(Point to Point Tunneling Protocol)协议是专门为支持VPN 而开发的一种技术。PPTP是PPP(Point-to-Point Protocol,点到点协议)协议的一种扩展,同样要求客户端和服务器之间存在有效的互连网连接,这种连接需要访问身份证明( 如用户名、口令和域名等) 和遵从的验证协议。只有当PPTP服务器验证客户身份之后,服务器和客户端的连接才算建立起来了。PPTP会话的作用就如同服务器和客户端之间的一条隧道,网络数据包由一端流向另一边。数据包在起点处(服务器或客户端)被加密为密文,在隧道内传送,在终点将数据解密还原。因为网络通信是在隧道内进行,所以数据对外而言是不可见的,隧道中的加密形式更增加了通信的安全级别。[4]
VPN连接一旦建立,远程的用户就可以访问校园内网和网内资源,如数字图书馆资源、教务管理系统和校内各管理系统,就像校园网本地用户一样。
三、Linux网关下的VPN设计与实现
1.选择比较流行的Linux系统的一个发行版本CentOS 5.1进行系统安装
安装时选择定制安装,“服务”中选上“SQL”关于Mysql的部分,“开发工具”全选上;其他的还包括设置相关的参数,包括设置IP地址,路由等。
2.设计基于Web的VPN用户登记、认证管理程序,使得此Linux系统作为一个用户管理的网关
3.利用GNU相关程序编译设置VPN服务器
需要编译和安装的应用程序软件主要包括:
HTTP服务器:设置Linux网关提供Web服务;
pppd:ppp拨号服务器;
pptpd:在pppd拨号的基础上增加pptpd的支持;
freeradius:用于拨号用户验证;
mysql:增加freeradius的数据库支持。
(1)安装Apache服务器
下载并安装Apache服务器应用程序,使得网关提供Web服务。
(2)安装PPP
安装PPP 2.4.3及以上版本,可以在http://sourceforge.net/下载ppp-2.4.3-0.cvs_20040527.1.i386.rpm软件包。
安装命令如下:
#rpm-Uvh ppp-2.4.3-0.cvs_20040527.1.i386.rpm
(3)安装内核MPPE补丁
安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁需要根据内核选择相应的版本。笔者使用的Linux内核是2.6.18版本,在http://pptpclient.sourceforge.net/上下载相应的kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm软件包。安装命令如下:
#rpm -ivh kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm
(4)安装PPTPD
到http://sourceforge.net/下载pptpd-1.3.4.tar.gz源文件,并解压安装。
tar -vxzf pptpd-1.3.4.tar.gz
cd pptpd-1.3.4
./configure
make
make install
(5)安装 freeradius
下载freeradius软件,解压并安装。
tar-vxzf freeradius-1.2.1.tar.gz
cd freeradius-1.2.1
./configure
make
make install
注意:freeradius需要openssl库,所以如果系统里没安装的话,需要先安装。
(6)安装 MYSQL数据库
在www.mysql.com上下载源码或者rpm包,源码需要解压编译安装,rpm包则可以直接安装mysql软件包,安装命令如下:
#rpm –ivh mysql-server-5.2.15.1.i386.rpm
4.配置Linux网关服务器参数
配置http服务器,使得Linux网关结合MYSQL数据库提供Web服务。
配置ppp服务和pptpd服务,设置包括VPN服务器地址、客户端接入地址池等参数,使得其服务作为系统的守护进程常驻内存,随时监听外面用户的拨号连接并分配一个内部合法地址用于通信。
配置freeradius服务和mysql服务,使得VPN用户通过数据库及radius进行认证。
配置VPN用户接口,通过Web方式完成VPN用户账号的登记注册,再利用后台程序将通过确认的合法用户账号导入到VPN系统账号中。
用户使用VPN连接Linux网关时,通过radius进行认证,使得合法的VPN用户可以使用Linux网关连接内网,从而达到内网资源共享的目的。
5.客户端配置及使用
以目前使用非常广泛的Windows XP为例讲述一下PPTP 客户端的配置。
点击“开始”菜单,进入控制面板,双击打开网络链接;单击左边“网络任务”下的“创建一个新的链接”,打开新建链接向导;点击“下一步”,选择“链接到我的工作场所的网络”,点击“下一步”;选择“虚拟专用网络链接”,然后下一步输入公司名,也就是识别本链接的名称,如“ahut”等,点击“下一步”,输入主机名或IP地址,也就是校园网Linux网关的地址(如我校的为211.70.144.8);点击“下一步”,选择在桌面上添加一个到此链接的快捷方式,点击“完成”,结束配置。这样基于Windows XP平台的PPTP客户端就配置好了。双击此快捷方式,拨号开始连接,输入VPN的认证用户名和密码,成功后网络任务栏多了一个已链接的连接图标,说明连接正常,可以和校内用户一样正常使用校内特殊资源了。
四、结束语
VPN作为一种解决网络互联问题的技术,不但保证了数据网络的安全和服务质量,同时实现了共享数据网络结构的简单和低成本。通过一年多的实际使用证明,此VPN技术解决方案具有较好的本地认证功能(可以扩展使用第三方的radius服务器进行认证)、有效的加密保障、安全的远端存取等功能,能够较好地应用于外网用户访问校园网内部私有资源。提高了校园网的可管理性、灵活性和安全性,极大地方便了校外教职工对校园网内部资源的安全访问。
参考文献:
[1]The GNU Operating System[EB/OL].http://www.gnu.org.
[2]何宝宏.IP虚拟专用网技术[M].北京:人民邮电出版社,2002.
[3]孙为清,赵轶群.VPN隧道技术[J].计算机应用研究,2000,8(1):55-57.
[4]蒋东毅,吕述望,罗晓广.VPN的关键技术分析[J].计算机工程与应用,2003(15):173-177.
[5]OpenVPN[EB/OL].http://www.openvpn.org.
(编辑:杨馥红)