




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于IPSec协议的Linux VPN网关平台摘要:因特网协议安全(IPSec)是一系列建立在网络层最顶端的协议,通常被用来建立虚拟隧道,最广为人知的是虚拟专用网络(VPN)。虚拟专用网络(VPN)在公共网络,如因特网中扩展出一个私有网络。它使计算机通过共享的或公共的网络来发送和接收数据,就好像它是直接连接到私有网络,而且受益于私有网络的功能性、安全性和管理政策。本次课题中,论文首先对IPSec VPN的背景和原理进行了一些简单的介绍,接着论文介绍了VPN网关实现的具体步骤及功能。本次课题使用了Linux系统这个免费开源的平台用来作为VPN网关。通过在一个Linux系统上搭建VPN服务器来充当VPN网关并采用了xl2tp协议进行数据传输,在另一个Linux系统上搭建web以及ftp服务用来充当私有网络。最后用一台Windows充当公共网络中的一台主机,通过拨号直接连入VPN网关,对私有网络的web以及ftp实现访问。本次课题的成功展示出了IPSec VPN在传输数据方面的良好的安全性、网络功能和管理性能,同时也展现出了IPSec VPN良好的研究应用价值和开发前景。关键字:Linux;虚拟专用网络;IPSec;网关;xl2tpLinux VPN gateway platform based on IPSec protocolAbstract: Internet Protocol Security (IPsec) is a set of protocols which sit on top of the Internet Protocol (IP) layer, it is used to build virtual tunnels, commonly known as Virtual Private Networks (VPNs). A virtual private Network (VPN) extends a private network across a public network, such as the Internet. It enables a computer to send and receive data across shared or public networks as if it were directly connected to the private network, while benefiting from the functionality, security and management policies of the private network.In this topic, the thesis simply introduced the background and principle of IPSec VPN, and then introduced the concrete steps to implement VPN gateway and the function of VPN gateway. Linux system, the free, open source platform was used for VPN gateway in the topic. The VPN server was set up on a Linux system to act as the VPN gateway and adopted xl2tp protocols for data transmission, and then another Linux system was used to build web and FTP service to act as a private network. Finally a Windows system was built to act as the host of the public network, achieving access to web and FTP service of the private network by dialing directly connected to the VPN gateway. This topic successfully showed the good security, powerful network function and high performance of management, it also showed that IPSec VPN is valuable in advanced research and development.Keywords: Linux; VPN; IPSec; gateway; xl2tp目录摘要iAbstracti目录iii1绪论11.1基于IPSec 协议的VPN 概述11.1.1IPSec VPN的定义11.1.2IPSec VPN的优缺点21.2VPN的发展趋势41.3IPSec VPN的基本原理51.3.1IPSec的基本原理51.3.2VPN的基本原理52IPSec VPN系统的实现过程及具体设计72.1IPSec协议的实现72.2VPN的实现82.3本次课题的基本实现功能及简要说明92.3.1本次课题的网络拓扑图92.3.2本次课题实现的基本流程和功能103基于IPSec VPN的Linux网关平台的实现113.1Linux系统的简介113.2Linux操作系统的搭建123.2.1安装VMware123.2.2VMware虚拟机主要的功能123.2.3利用虚拟机安装多台操作系统133.3VPN Linux 网关平台的配置与搭建143.3.1进入VPN Linux系统143.3.2基于IPSec VPN网关平台的安装153.3.3内网web和ftp服务的安装与配置204本次课题实验环境测试244.1本次课题实验环境介绍244.2本次课题实验环境测试264.3总结315致谢326参考文献33附录34iii基于IPSec 协议的Linux VPN网关平台341 绪论随着Internet的商业化,许多企业的内部网络都需要与外界的Internet相连,并且随着企业全球化的飞速发展,不同地区的企业内部网络都需要互联。以往都是通过租用专线的传统方式来实现的。在外出差的工作人员如果想要访问公司内部的网络服务,以往都必须通过长途拨号的方式连接到公司的内部网络。这种拨号连接的方式价格相当的昂贵,一般也只有大型公司和企业才能承担得起。近年来,Internet的高速发展,推动了基于因特网的虚拟专用网(VPN)的发展,让不同地区企业的不同部门之间,以及政府机构的不同部门之间利用公共网络实现网际互联成为可能,同时使企业节约了大笔的通信费用。虚拟专用网(VPN)的出现提供了巨大的商业机会给公共网络的经营者。但是,在通信的过程中,数据在公共网络中传输的安全性和保密性,以及企业网在公共网络中的不同节点的管理方式,才是企业最关注的问题。采用专用网络加密和通信协议的虚拟专用网(VPN)让企业在公共网络上搭建一个虚拟的加密隧道,构筑属于自己的安全的虚拟专用网络。跨地区的企业部门或出差员工可以从远程经过公共网络,通过企业专用的虚拟加密隧道连接企业内部的网络,而公共网络上的其他用户则没有办法穿过虚拟隧道对企业的内部网络进行访问。在现今的VPN的开发中,使用得最广泛的一种协议就是IPSec协议。采用IPSecVPN对各个节点进行互联,企业无需担心前期大量地投入硬件设施,也不再需要担心因网络瓶颈造成的重复或者浪费的二期投入;拥有高安全性和端到端的加密特性的IPSecVPN充分保证了信息网络的安全性;另外还有一点非常重要,各个分支机构的工作人员也没有必要去考虑复杂的应用,网管工作人员只需要在企业总部中心就可以管理和访问每个客户端所使用的端到端的IPSec VPN连接,而且只需要使用移动办公客户端就可以对远程客户端的电脑故障进行维护和解决。解决了网络通信过程中的安全性和在公共网络中实现异地的局域网之间的虚拟通道的连接,为重要数据的传输提供了保密性、完整性和认证性,并且在各种访问控制中都得到了应用。1.1 基于IPSec 协议的VPN 概述1.1.1 IPSec VPN的定义IPSec的英文全名为“Internet Protocol Security”,中文名为“因特网安全协议”。因特网安全协议保证了在因特网的网络层上传输的数据的安全性,同时它也是VPN的基本加密协议。通过特定的方式建立一个通信连接,从而为通信双方建立一个IPSec通道。由于IPSec协议支持多种不同的操作模式,所以通信双方在建立IPSec通道之前必须要先确定所采用的操作模式和安全策略,包括如加密运算法则和身份验证方法类型等。在IPSec协议中,一旦IPSec通道建立,所有在网络层之上的协议在通信双方都经过加密,如TCP、UDP 、SNMP、HTTP、POP等,而不管这些通道构建时所采用的安全和加密方法如何。IPSec VPN是一种基于IPSec协议的VPN通讯设备。IPSec是IETF IPSec工作组制定的一套协议簇,目的在于为IP层通信提供安全。它主要由两大部分组成:安全协议部分、密钥协商部分。安全协议部分提供了各种通信保护方式;密钥协商部分用来保护安全协议协商的参数,以及鉴别通信实体的身份。VPN的英文全称是“Virtual Private Network”,中文翻译过来就是“虚拟专用网络”。它是构建在公共通信基础设施上的虚拟专用网络,是一种从公共网络中隔离出来的专用网络。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。VPN的核心就是在公共网络上建立出来的虚拟专用网。虚拟专用网可以用来帮助商业伙伴、远程用户、供应商以及公司分支机构同公司的内部网建立可信、安全的连接,并且保证了数据传输的安全性。由于是将数据流转移到了成本较低的公共网络上,所以企业的虚拟专用网解决方案将用户花费在远程网络和城域网连接上的费用大幅度地消减。同时,还能够对网络的管理和设计进行简化,加速新的用户和网站连接。1.1.2 IPSec VPN的优缺点(1) IPSec VPN的优点1. IPSec技术与应用无关,因此IPSec VPN是一种支持所有IP层协议的客户端。应用于传输层之下IPSec,对应用程序来说完全没有影响。在防火墙或者路由器上安装IPSec时,不需要对用户或者服务器系统中的软件进行设置。就算在终端系统上运行IPSec,基于应用程序的上层软件也不会受到任何影响。2. IPSec技术中,client-to-client(客户端到客户端)、 client-to-site(客户端到站点)、site-to-site(站点到站点)这三种模式在连接时使用的是完全一样的技术。3. IPSec VPN有着极高的安全性能。由于IPSec安全协议网络层中运行,不仅会加密所有网络通道,而且用户通过采用像专线方式物理连接企业网络一样的方式去访问所有企业资源。IPSec不是仅仅加密正在通信的那一部分通道,而是加密所有的通道。另外安装和配置在运程接入客户端的IPSec客户端软件和接入设备限制了来自接入设备、软件客户端、用户认证机制和预定义安全规则的特定访问,能够大大的提高安全级别。(2) IPSec VPN的缺点1. IPSec VPN在通信性能方面要比其他软件。IPSec VPN较高的安全性能反而影响了它的通信性能。2. IPSec VPN必须安装客户端软件来支持。在IPSec VPN中,每个客户端都需要安装有特定用途的软件。这些特定用途的软件可以用来替换或者增加客户系统的TCP/IP堆栈。在很多的系统中,这也许会出现和其他软件的兼容性问题。目前还没有出现解决这一兼容性问题的标准,每一个IPSec客户端软件都是特定的,无法和其他软件兼容。在一些其他的情形中,IPSec安全协议可以网络硬件应用中运行,这就要求通信双方必须采用相同的硬件。因此,应用于硬件中的IPSec协议也隐藏着兼容性问题。3. IPSec VPN较难安装和维护。使用IPSec VPN时,每个接入用户都必须安装VPN客户端,因此,需要花费非常高的费用。现今的一些移动终端用户偏离了IPSec VPN用于连接运程办公地点的这一初衷。IPSec VPN,必须得为每个移动终端用户提供客户端。环境和网络不同,客户端的配置也不一样。如果想要从不同的地方访问公司内部网络,就要求客户经常修改配置,无形当中支持的费用也提高了。在部署IPSec VPN之后,如果用户想要访问他所需要的资源,就必须事先在他的电脑上安装客户端。这也就意味着那些经常变动办公地点的员工,如果想要从其他任何非本人的电脑上访问公司内部资源的时候,他要么无法访问,要么打电话向公司求助。4. IPSec VPN实际只能全面支持较少的系统。虽然已有许多开发的操作系统提出对IPSec协议的支持,但是在实际应用中,IPSec安全协议客户的计算机通常只运行于Windows系统,很少有能运行在其它PC系统平台的,如Mac、Linux、Solaris 等。1.2 VPN的发展趋势近年来,IT产业的消费日益膨胀,安全通信逐渐成为人们关注的重点,这使得VPN技术得到了前所未有的IT产业青睐。随着VPN技术的飞速成长,日益成熟的VPN产品成为了各大IT行业的发展新目标。目前大部分的VPN市场份额仍由VPN产品销售体现,在未来的若干年里,VPN服务所占的市场份额将超过VPN产品,这也体现了信息安全服务成为竞争焦点的趋势。随着整合式安全设备的发展,VPN将被更多的集成在整体式安全体系当中,而各种安全协议和语言的分裂融合将更加激烈。VPN厂商将根据形式转换角色,可能出现专门进行技术设计、系统制造和增值服务的不同类型的厂商。顺应全球的经济发展趋势及互联网用户的增长态势,亚洲地区将成为VPN市场的新热点并有可能成为带动消费趋势的市场区域之一。IPSec VPN和MPLS VPN仍将保持稳定的成长率,但是与SSL VPN阵营的差距仍将被不断缩小。IPSec/MPLS VPN和SSL VPN阵营的技术各有特色,而且所面向的用户群体有所不同。在短期内这两者还不会形成互相侵蚀的局面,但是SSL VPN的易用性将吸引很多用户投向该产品,这必然将引起这两种VPN架构面对面的竞争。这两种架构会在互相学习对手优势的同时不断的融合其它功能特征,以提供更全面的服务用于吸引用户。由于承载VPN流量的非专用网络通常不提供QoS(服务质量)保障,所以VPN解决方案必须整合QoS解决方案才能够提供具有足够可用性的目前IETF已经提出了支持QoS(服务质量)的RSVP(带宽资源预留)协议,而IPv6协议也提供了处理QoS的能力。这为VPN的进一步普及化提供了足够的保障。随着IPv6网络的主流化进程,将会产生更具统治力的VPN架构,VPN技术将向着IP协议这类基础协议的形式发展。在不久的将来,VPN将可以成为更加基础的技术被内嵌到各种系统当中,从而实现完全透明化的VPN基础设施。目前,采用IPSec标准的VPN技术已经基本成熟,得到国际上几乎所有主流网络和安全供应商的鼎力支持,并且正在不断丰富完善。可以断定,IPSec将成为未来相当一段时间内企业构筑VPN的主流标准,因此企业在构造VPN基础设施时应该首先考虑IPSec标准。1.3 IPSec VPN的基本原理1.3.1 IPSec的基本原理IPSec的工作原理类似于包过滤防火墙,可以看作是对包过滤防火墙的一种扩展。当接收到一个IP数据包时,包过滤防火墙使用其头部在一个规则表中进行匹配。当找到一个相匹配的规则时,包过滤防火墙就按照该规则制定的方法对接收到的IP数据包进行处理。这里的处理工作只有两种:丢弃或转发。IPSec通过查询SPD(Security Po1icy Database安全策略数据库)决定对接收到的IP数据包的处理。但是IPSec不同于包过滤防火墙的是,对IP数据包的处理方法除了丢弃,直接转发(绕过IPSec)外,还有一种,即进行IPSec处理。正是这新增添的处理方法提供了比包过滤防火墙更进一步的网络安全性。进行IPSec处理意味着对IP数据包进行加密和认证。包过滤防火墙只能控制来自或去往某个站点的IP数据包的通过,可以拒绝来自某个外部站点的IP数据包访问内部某些站点,也可以拒绝某个内部站点方对某些外部网站的访问。但是包过滤防火墙不能保证自内部网络出去的数据包不被截取,也不能保证进入内部网络的数据包未经过篡改。只有在对IP数据包实施了加密和认证后,才能保证在外部网络传输的数据包的机密性,真实性,完整性,通过Internet进新安全的通信才成为可能。IPSec既可以只对IP数据包进行加密,或只进行认证,也可以同时实施二者。但无论是进行加密还是进行认证,IPSec都有两种工作模式,一种是隧道模式,另一种是传输模式。传输模式,只对IP数据包的有效负载进行加密或认证。此时,继续使用以前的IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到IP头部和传输层头部之间。隧道模式,对整个IP数据包进行加密或认证。此时,需要新产生一个IP头部,IPSec头部被放在新产生的IP头部和以前的IP数据包之间,从而组成一个新的IP头部。1.3.2 VPN的基本原理VPN由管理模块、密钥分配和生成模块、身份认证模块、数据加密、解密模块、数据分组封装、分解模块和加密函数库几部分组成。管理模块负责整个系统的配置和管理。由管理模块来决定采取何种传输模式,对哪些IP数据包进行加密、解密。由于对IP数据包进行加密需要消耗系统资源,增大网络延迟,因此对两个安全网关之间所有的IP数据包提供VPN服务是不现实的。网络管理员可以通过管理模块来指定对哪些IP数据包进行加密。Internet内部用户也可以通过Telnet协议传送的专用命令,指定VPN系统对自已的IP数据包提供加密服务。密钥管理模块负责完成身份认证和数据加密所需的密钥生成和分配。其中密钥的生成采取随机生成的方式。各安全网关之间密钥的分配采取手工分配的方式, 通过非网络传输的其它安全通信方式完成密钥在各安全网关之间的传送。各安全网关的密钥存贮在密数据库中,支持以IP地址为关键字的快速查询获取。身份认证模块对IP数据包完成数字签名的运算。整个数字签名的过程:首先,发送方对数据进行哈希运算hH(m),然后 用通信密钥k对h进行加密得到签名Signature h key。发送方将签名附在明文之后,一起传送给接收方。 接收方收到数据后,首先用密钥k对签名进行解密得到 h,并将其与H(m)进行比较,如果二者一致,则表明数据是完整的。数字签名在保证数据完整性的同时,也起到了身份认证的作用,因为只有在有密钥的情况之下,才能对数据进行正确的签名。数据加密/解密模块完成对IP数据包的加密和解密操作。可选的加密算法有IDEA算法和DES算法。前者在用软件方式实现时可以获得较快的加密速度。为了 进一步提高系统效率,可以采用专用硬件的方式实现数据的加密和解密,这时采用DES算法能得到较快的加密速度。随着当前计算机运算能力的提高,DES算法的安全性开始受到挑战,对于安全性要求更高的网络数据,数据加密/解密模块可以提供TriPle DES加密服务。数据分组的封装/分解模块实现对IP数据分组进行安全封装或分解。当从安全网关发送IP数据分组时,数据分组封装/分解模块为IP数据分组附加上身份认证头AH和安全数据封装头ESP。当安全网关接收到IP 数据分组时,数据分组封装/分解模块对AH和ESP进行协议分析,并根据包头信息进行身份验证和数据解密。加密函数库为上述模块提供统一的加密服务。加密函数库设计的一条基本原则是通过一个统一的函数接口界面与上述模块进行通信。这样可以根据实际的需要,在挂接加密算法和加密强度不同的函数库时,其它模块不需作出改动。2 IPSec VPN系统的实现过程及具体设计2.1 IPSec协议的实现IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。2.2 VPN的实现1.VPN网关需要两张网卡的支持,一张网卡连接内部私有网络,一张网卡连接Internet。2.Internet中的终端A通过发送以内部网络的终端B的私有IP地址为目的地址的数据包来对终端B进行访问。3. VPN网关中连接Internet的那一端收到来自终端A发出的数据包时,会检查它的目的地址。如果目的地址是属于内部网络中的地址,那么就封装该数据包,不同的VPN技术会采用不同的封装方式。封装后的原数据包用来负载VPN网关构造出的新VPN数据包,新的VPN数据包的目标地址为内部网络中的VPN网关的外部地址。4.VPN外网网关发送VPN数据包到Internet当中,由于VPN数据包的目的地址是VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到VPN网关外网接口。5.VPN网关外网接口会检查所有接收到的数据包,如果发现该数据包是来自于公网中的VPN网关,则可判定该数据包为VPN数据包,然后会解封装该数据包。解封装时先剥离VPN数据包包头,然后把VPN数据包还原成原数据包。6.解封装之后的原始数据包会被VPN网关发送到内网终端B,由于原数据包中的目的地址是内网终端B的IP地址,因此内网中的终端B能够正确地收到该访问数据包。对于终端B来讲,它所收到的数据包就跟从终端A直接发送过来的数据包一样。7.从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。通过上述说明可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN通讯十分重要: 原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。2.3 本次课题的基本实现功能及简要说明2.3.1 本次课题的网络拓扑图图2.1 网络拓扑图如图2.1所示,本次课题我们采用两个路由器分别充当外网和内网网关。外网客户端和VPN网关服务器的eth0端口连接这个网关,VPN网关服务器的eth1接口和内网搭载web/ftp的服务器连接这个网关。由于客户端和内网服务器的ip属于不同网段,并且他们之间并没有设置路由条目,所以外网客户端是无法访问内网的web/ftp服务的。本次试验的目的就是在VPN网关服务器上搭载一个VPN服务,然后让外网客户端通过VPN通道连上VPN网关,VPN服务器会随机分配一个内网的ip给客户端,让客户端能够访问内网的web/ftp服务。2.3.2 本次课题实现的基本流程和功能(1) 基本流程a) 绘制拓扑图b) 安装虚拟机c) 在虚拟机中安装三个操作系统d) 设置虚拟网卡,配置网络拓扑结构e) 在VPN网关操作系统中安装和配置VPN服务器f) 在客户端添加证书和VPN连接g) 在内网服务器上安装web和ftp服务h) 调试(2) 实现的基本功能a) VPN网关服务器能够开启和监控VPN服务b) 客户端能够连入VPN网关服务器c) 客户端能够分配到内网ip地址d) 内网服务器提供web和ftp服务e) 客户端能够访问内网服务器的web和ftp服务3 基于IPSec VPN的Linux网关平台的实现3.1 Linux系统的简介Linux其实就是一个操作系统,这个操作系统里头含有最主要的kernel以及kernel提供的工具!他提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭Unix良好的传统来的,所以相当的稳定而功能强大!此外,由于这个优良的架构可以在目前的个人计算机(X86系统)上面跑,所以很多的软件开发者将他们的工作心血移转到这个架构上面,那就是很多的应用软件!虽然Linux仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软件开发者提供的软件的整合,使得Linux成为一个更完整的、功能强大的操作系统!Linux系统使用单内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接集成,要么以加载模块形式添加。Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。GNU用户界面组件是大多数Linux操作系统的重要组成部分,提供常用的C函数库,shell,还有许多常见的Unix实用工具,可以完成许多基本的操作系统任务。大多数Linux系统使用的图形用户界面创建在X窗口系统之上,由X窗口系统通过软件工具及架构协议来创建操作系统所用的图形用户界面。Linux系统还具备以下优点:跨平台的硬件支持、丰富的软件支持、多用户多任务、可靠的安全性、良好的稳定性、完善的网络功能。Linux 在它的追捧者眼里是一个近乎完美的操作系统,它具有运行稳定、功能强大、获取方便等优点,因而有着广阔的前景,或许也值得我们每一个计算机爱好者学习和应用。3.2 Linux操作系统的搭建3.2.1 安装VMware图3.1 虚拟机如图3.1所示,多台PC机分别充当不懂角色来完成。所以我们需要安装虚拟机实现用一台PC机模拟多台机器,从而实现VPN网关平台的搭建、配置与测试。3.2.2 VMware虚拟机主要的功能1. 不需要分区或重开机就能在同一台PC上使用两种以上的操作系统。2. 完全隔离并保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料。3. 不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制粘贴功能。4. 有复原(Undo)功能。5. 能够设定并随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。6. 热迁移,高可用性。3.2.3 利用虚拟机安装多台操作系统图3.2 虚拟机上安装的多个操作系统如图3.2所示,在该虚拟机中,本课题安装了两台Linux操作系统分别用作VPN网关平台和内网服务器。还安装了一台Window XP 来充当外网,连入VPN网关平台的测试机。3.3 VPN Linux 网关平台的配置与搭建3.3.1 进入VPN Linux系统图3.3 Linux开机界面图3.4 Linux系统操作界面如图3.3和3.4所示,Linux系统的操作界面和Windows大不相同,Linux主要使用命令行界面,而Windows以图形化界面为主3.3.2 基于IPSec VPN网关平台的安装(1) 安装openswan, ipsec, xl2tpd安装之前,需要修改配置。在/etc/sysctl.conf文件中,找到net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1 改为:net.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 0然后执行sysctl -p使之生效。Ipsec工具是Linux系统自带的,所以不需要安装。先去网上下载xl2tpd安装包。默认放在/home/xyl/Downlad/目录下面。rootlocalhost Downloads# lsxl2tpd-1.3.0.tar.gzrootlocalhost Downloads# tar -zxvf xl2tpd-1.3.0.tar.gzrootlocalhost Downloads# ls xl2tpd-1.3.0 xl2tpd-1.3.0.tar.gzrootlocalhost Downloads# cd xl2tpd-1.3.0rootlocalhost xl2tpd-1.3.0# make install然后使用yum安装openswan:rootlocalhost xl2tpd-1.3.0# yum install openswan最后检测安装是否成功:rootlocalhost xl2tpd-1.3.0# rpm -qa|grep xl2tpdxl2tpd-1.3.1-14.fc20.x86_64rootlocalhost xl2tpd-1.3.0# rpm -qa|grep openswanopenswan-2.6.32-27.2.el6_5.x86_64(2) 配置xl2tpdrootlocalhost xl2tpd-1.3.0# vim /etc/xl2tpd/xl2tpd.confglobal listen-addr = 26 #网关通过该ip地址监听客户端的连接请求 port=1701 #监听端口 auth file = /etc/ppp/chap-secrets #加密文件路径lns defaultip range = 29-54 #客户机连上VPN后分配到的地址范围local ip = 26 #本地ip地址; leave chap unspecified for maximum compatibility with windows, iOS, etc; require chap = yesrefuse pap = yes #不使用pap协议require authentication = yes name = VPNGatewayppp debug = yespppoptfile = /etc/ppp/options.xl2tpd #ppp协议的配置文件路径length bit = yesrootlocalhost xl2tpd-1.3.0# less /etc/ppp/options.xl2tpdname xl2tpdipcp-accept-localipcp-accept-remote ms-dns #分配给客户端的dnsms-wins 27 #Windows客户端的ip地址noccpauthcrtsctsidle 1800mtu 1280mru 1280nodefaultroutedebuglockproxyarpconnect-delay 5000 #连接最大超时时间编辑加密文件:rootlocalhost xl2tpd-1.3.0# less /etc/ppp/chap-secrets# Secrets for authentication using CHAP# client server secret IP addressesdream * 123456 28/25l2tp里面会使用chap对用户的身份进行验证,就相当于拨号时输入的用户名密码的作用一样。 在该文件的最后一行输入 用户名 * 密码 (*表示用户可以使用任意的网段进行拨号,例如dream * “123456”)。至此,xl2tpd的所有配置都已经完成。(3) 配置openswan(就是配置认证方式,可以时rsa或者是x.509,这里采用x.509认证方式) ,其主配置文件为/etc/ipsec.conf,/etc/ipsec.secrets,其配置目录在/etc/ipsec.d 里面是对x.509证书的配置。rootlocalhost xl2tpd-1.3.0# ll /etc/ipsec.d/total 40drwxr-xr-x. 2 root root 4096 Apr 13 18:30 cacerts #存放X.509的根证书drwxr-xr-x. 2 root root 4096 Apr 13 04:15 certs #存放X.509客户端证书drwxr-xr-x. 2 root root 4096 Apr 13 02:39 crls # 存放X.509认证私钥drwxr-xr-x. 2 root root 4096 Apr 13 18:31 private #存放X.509撤消列表建立如下目录/root/ca/demoCA,demoCA存放ca证书和撤销列表。而网关证书与认证私钥,客户端证书与私钥放在ca下。现使用以下命令在/root/ca/demoCA下产生ca根证书cacert.pem和其私钥cakey.pem 和crl表crl.pem:rootlocalhost xl2tpd-1.3.0# mkdri -p /root/ca/demoCA/rootlocalhost ca# cd /root/ca/demoCA/rootlocalhost demoCA# openssl req -x509 -days 365 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem rootlocalhost demoCAopenssl ca -gencrl -out crl.pemrootlocalhost demoCA# lscacert.pem cakey.pem crl.pem然后在/root/ca/下使用以下命令产生网关的认证私钥vpngateway.key和证书vpngateway.cert:rootlocalhost demoCA# echo 01 /etc/pki/CA/crlnumber然后在/root/ca/下使用以下命令产生网关的认证私钥vpngateway.key和证书vpngateway.cert:rootlocalhost ca# openssl req -newkey rsa:1024 -keyout vpngateway.key -out vpngatewayreq.pemrootlocalhost ca# lltotal 16drwxr-xr-x. 3 root root 4096 Apr 13 18:21 demoCA-rw-r-r-. 1 root root 981 Apr 13 18:27 vpngateway.cert-rw-r-r-. 1 root root 1041 Apr 13 18:26 vpngateway.key-rw-r-r-. 1 root root 700 Apr 13 18:26 vpngatewayreq.pem然后将ca证书与网关证书与私钥放进网关上的openswan的相依目录下:rootlocalhost ca# ll /etc/ipsec.d/aacerts/ cacerts/ certs/ crls/ examples/ l2tp-psk.conf ocspcerts/ passwd/ policies/ private/ rootlocalhost ca# cp demoCA/cacert.pem /etc/ipsec.d/cacerts/rootlocalhost ca# cp vpngateway.cert /etc/ipsec.d/certs/ rootlocalhost ca# cp vpngateway.key /etc/ipsec.d/private/rootlocalhost ca# ll /etc/ipsec.d/certs/ -rw-r-r-. 1 root root 981 Apr 13 18:31 /etc/ipsec.d/certs/vpngateway.cert 在网关的/root/ca下,用以下命令将CA证书cacertpem的格式转化为p12文件: rootlocalhost ca# openssl pkcs12 -export -in demoCA/cacert.pem -inkey demoCA/cakey.pem -out demoCA.p12Enter pass phrase for demoCA/cakey.pem:Enter Export Password:Verifying - Enter Export Password:rootlocalhost ca# lltotal 20drwxr-xr-x. 3 root root 4096 Apr 13 18:21 demoCA-rw-r-r-. 1 root root 1677 Apr 13 18:47 demoCA.p12-rw-r-r-. 1 root root 981 Apr 13 18:27 vpngateway.cert-rw-r-r-. 1 root root 1041 Apr 13 18:26 vpngateway.key-rw-r-r-. 1 root root 700 Apr 13 18:26 vpngatewayreq.pem以同样方法为window客户端生成证书与私钥: rootlocalhost ca# openssl req -newkey rsa:1024 -keyout winclient.key -out winreq.pem rootlocalhost ca# openssl ca -in winreq.pem -days 365 -out winclient.cert -notextrootlocalhost ca# openssl req -newkey rsa:1024 -keyout winclient.key -out winreq.pem rootlocalhost ca# openssl ca -in winreq.pem -days 365 -out winclient.cert -notextopenssl pkcs12 -ex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论