基于Linux的L2TP VPN over IPSec研究与实现

2016-09-20 02:47:28苏翔宇深圳技师学院深圳518116
现代计算机 2016年6期
关键词:安全策略配置文件本例

苏翔宇(深圳技师学院,深圳 518116)

基于Linux的L2TP VPN over IPSec研究与实现

苏翔宇
(深圳技师学院,深圳 518116)

0 引言

随着互联网技术的迅猛发展,网络安全问题也日益突显,如何让企业网络的通信变得更安全呢?传统的方法无非是通过使用调制解调器拨号或是帧中继等,虽然都可以从不同程度上提高网络上数据传输的安全,但从方便经济和安全性角度综合考虑,这些方法和使用VPN的效果比起来都相去甚远。可是好一点的商业版VPN设备动辄十几万甚至几十万,如果使用VPN的人数很多,这些VPN的授权费用更是一般中小企业无法负担的。其实通过开源组织志愿者的努力,用户已经可以免费的使用到这种VPN服务了,这就是由开源操作系统翘楚Linux提供的,其安全性、稳定性及运行效率更是大多数商用VPN系统所望尘莫及的。

1 VPN的由来和应用领域

1.1VPN的由来

在当今社会,公司在不同地区设置总部和分支机构的情况非常普遍,为了实现公司的部门之间通过公用网络进行远程访问,传统的做法是租用DDN专线或是帧中继,这样虽然可以保证通信带宽,但必然会产生高额的费用。

VPN(Virtual Private Network)即“虚拟专用网络”,可以在公用网络上架设专用网络,在发送方对数据进行加密,通过公用的网络线路传输数据,再将数据在接收方解密。VPN可以帮助外网客户端、公司分支机构、供应商等与公司内部网络建立方便快捷的专用网络连接,在大幅度降低通信成本的同时,还有效地保证了数据在传输环节上的安全性。

1.2VPN的应用领域

VPN的架构大体可分为Client to Site(点到站点)和Site to Site(站点到站点)两种。Client to Site的VPN主要是解决位于互联网上的客户端(如公司出差员工)通过公共网络访问公司内部网络资源的问题;Site to Site的VPN主要是解决位于不同地理位置的公司总部和分支机构之间的网络资源互访问题。

除了以上两种功能之外,VPN还提供了更为安全的通信环境,与一般的应用层加密机制相比,VPN是工作于网络层偏下的应用,IP上的协议都可以使用VPN加密保护,不像应用层加密只能针对特定的应用层协议。

2 Linux下构建L2TP VPN over IPSec

目前普遍使用的VPN协议主要有SSL VPN、PPTP VPN、IPSec VPN、L2TP VPN等,其中又以IPSec VPN 和L2TP VPN最为流行。与IPSec VPN等其他几种协议相比,L2TP(Layer 2 Tunneling Protocol)最大的优势就在于其简便性。当前市场上的各大操作系统中,如Windows、Linux及Mac OS等,都已经内置了L2TP连接功能,移动终端操作系统iOS、Android等也能很好地支持L2TP协议,用户只需要将拨号网络设置好,并在需要访问企业内部数据时启用L2TP拨号功能,就可以轻松通过L2TP对企业建立VPN连接。但美中不足的是L2TP协议自身没有考虑安全问题,因此通常会在客户端主机与L2TP服务器之间建立传输模式的IPSec来保护数据传输安全,集简便性、通用性、安全性于一身,这就是所谓的“L2TP VPN over IPSec”,其主要应用领域是解决Client to Site架构VPN的搭建。

下面就以图1为例基于Linux来构建L2TP VPN over IPSec实施方案。L2TP服务器公网接口eth0上的IP是10.0.1.100,内网接口eth1上的IP是192.168.0.100,另外企业内部的文件服务器 IP是192.168.0.10。客户端采用动态IP通过公共网络可与L2TP服务器公网IP10.0.1.100正常通信。

(1)L2TP服务器配置

XL2TPD是Linux下一款功能强大的开源L2TP服务器软件,本例对其配置文件/etc/xl2tpd/xl2tpd.conf设置如下:

其中ip range参数定义了L2TP服务器分配的客户端IP地址范围,name参数为服务设置了一个名称,该名称会在账户数据库中使用,pppoptfile参数指定XL2TPD调用的PPP配置文件的路径。

(2)PPP服务器配置

本例PPP服务器按照XL2TPD指定的配置文件/ etc/ppp/options.xl2tpd设置如下:

其中proxyarp表示启用ProxyARP机制,参数mswins和参数ms-dns表示分别将企业内部的Windows服务器IP和DNS服务器IP配置到VPN客户端的网络参数中。

(3)建立VPN拨号账户

在L2TP VPN架构中,使用者的身份验证由PPP协议来完成,其验证方法主要有PAP、CHAP、MSCHAP 及MSCHAP-V2等。因为PAP使用明文方式验证,在网络上直接传输密码,并无任何保护措施,所以这里采用其余的三种方法之一来完成验证,账户数据库文件均是/etc/ppp/chap-secrets,本例将其设置如下:

图1 L2TP VPN over IPSec部署实例

(3)证书的生成及保存

本例使用OpenSSL配置企业CA(证书管理中心),由L2TP服务器和客户端主机分别向CA提交证书申请单newreq.pem,CA进行证书的审核和签发,如表1所示将各自的证书、私钥、CA的证书和证书作废清单分别发送给L2TP服务器和客户端。接着,L2TP服务器和客户端主机将这些文件复制到/etc/racoon/certs目录下,然后为cacert.pem和crl.pem两个文件生成hash link(硬链接),以便racoon查找之用。

表1 所需的证书文件列表

(4)配置安全策略

本例中L2TP服务器的安全策略配置文件/etc/rac鄄coon/setkey.conf设置如下:

其中设定凡是从L2TP服务器端口1701发出的数据包,无论目标地址和端口,全部经由IPSec。

因为L2TP客户端的IP通常不是固定的,所以这里无法预先设置双向安全策略,只能设置单向安全策略,但安全策略一定要定义双向的,才能使L2TP VPN over IPSec正常工作。解决这个问题的办法是在IKE配置文件中将generate_policy参数设为“on”,IKE就会自动生成另一个方向的安全策略。

(6)IKE配置文件

本例中使用 ipsec-tools将 IKE配置文件/etc/ racoon/racoon.conf设置如下:

其中指定了X.509 Certificates验证模式中证书的保存位置,设置exchange_mode参数为main是选择了更安全的数据交换模式。

(7)Netfilter/iptables防火墙配置

通常情况下,企业内部网络与外网之间会设置防火墙,本例中为了保证合法的VPN通信的数据包可以顺利地进出防火墙,使用iptables工具在Linux的防火墙Netfilter中添加如下规则:

其中在filter表INPUT链中,添加规则允许访问与VPN服务相关的udp端口1701、500、4500。

(2)L2TP客户端配置

L2TP客户端主机向CA提交证书申请单,由CA审核颁发证书,将CA发送来的证书和私钥文件复制到/etc/racoon/certs目录下,然后为cacert.pem和crl.pem两个文件生成hash link即可。

3 实施方案所遇到的主要问题及解决办法

3.1Windows 平台L2TP客户端不支持Linux 证书及私钥文件格式

本例中如果L2TP客户端使用的是Windows操作系统,其收到由Linux CA颁发的证书(如client.pem和client.key)的文件格式必须转换成PKCS12才能被支持,所以需要进行如下操作。

3.2IPSen连接穿透NAT的问题

IPSec数据包在穿越防火墙NAT时,由于NAT机制会修改数据包的IP及TCP或UDP包头内容,而IPSec在逐一检查数据包时,一旦数据包内容有变动,就会丢弃数据包以保证安全性,这就使得IPSec数据包无法穿越NAT。解决这一问题的方法是使用 “NATTraversal”功能,简称NAT-T,NAT-T可以在ESP和IP包头之间增加一个UDP包头,当IPSec数据包穿越NAT时,NAT可以修改IP包头及UDP包头内容,但IPSec数据包接收端并不会检查IP包头及UDP包头内容,从而得以穿越。

4 结语

Linux提供的功能强大的VPN组件使得用户不再需要购买价格昂贵的商用VPN设备和系统,仅需利用一整套开源工具就可以部署安全易用的VPN服务和应用,且稳定性和效率也毫不逊色。本文的研究就是致力于为中小企业和学校、社会团体等非营利组织提供高效快捷的较为通用的VPN实施方案。

[1]陈勇勋.Linux网络安全技术与实现(第2版).北京:清华大学出版社,2012.

[2]潘理,杨宇航,顾尚杰.一个基于IP的VPN安全机制[J].计算机工程,2005:34-52.

[3]孟挂娥,熊云凤,杨宇航.基于PKI的IPSec-VPN网关的设计与实现[J].计算机工程,2001:102-104. [4]陈涛.2005.基于工作组的IPSec安全策略系统设计与实现[硕士论文].西安:西北工业大学.

VPN(Virtual Private Network);IKE(Internet Key Exchange);Certificate

Research and Implementation of L2TP VPN over IPSec Based on Linux

SU Xiang-yu
(Shenzhen Institute of Technology,Shenzhen 518116)

1007-1423(2016)06-0093-04

10.3969/j.issn.1007-1423.2016.06.022

苏翔宇(1981-),男,天津人,硕士,讲师,研究方向为计算机网络应用

2015-12-15

2016-01-10

分析VPN的应用领域及其相对于传统网络的优势,接着提出一个切实可行的在Linux下构建L2TP VPN over IPSec的实施方案,总结实施方案中可能会遇到的问题并给出具体的解决办法。此研究可以为企业在Linux下构建安全可靠的VPN提供借鉴和依据。

虚拟专用网;因特网密钥交换协议;证书

Analyzes the application fields of VPN,and its advantages comparing to traditional network,puts forward a feasible solution of building L2TP VPN over IPSec in Linux through specific case analysis,and discusses the problems during the implement and also the solution. This research can provide reference and basis for the enterprise in construction of VPN in Linux.

猜你喜欢
安全策略配置文件本例
基于认知负荷理论的叉车安全策略分析
提示用户配置文件错误 这样解决
《思考心电图之176》答案
心电与循环(2021年4期)2021-11-29 02:41:56
基于飞行疲劳角度探究民航飞行员飞行安全策略
湖北农机化(2020年4期)2020-07-24 09:07:36
《思考心电图之169》答案
心电与循环(2020年3期)2020-06-18 13:43:12
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
忘记ESXi主机root密码怎么办
浅析涉密信息系统安全策略
视功能分析图例详解