阴阳分身术-L2TP多实例多权限修炼宝典
很多企业单位使用防火墙作为出口网关,实现内部区域的隔离,从而保证各个区域不同的访问权限。通过多实例隔离区域技术,实现多个区域的划分,隔离和管理。 例如下图1的拓扑结构,分为总部和分支机构。总部分为六个区域,分别为对外服务器所在的DMZ区域,内部服务器区域,开放办工区,研发中心,市场部,财务部所在的内部Trust区域。分支机构也有开放办工区,研发中心,财务部,市场部。从安全的角度讲,区域的划分需要细致,权限授予需要严格,所以,每个区域的访问权限有不同的设置。
图 1 某企业总部和分支拓扑
防火墙能够精确的实现区域分级管理,能够保证内部信息的安全,并且能够有效的控制数据的扩散,达到安全的目的,满足上述需求。但是,如果有公司人员出差,通过L2TP隧道访问公司本部资源,为了安全起见,必须每个部门的出差人员具有和在公司内部访问相同的权限,该如何实现呢?例如,研发员工出差能够访问内部服务器,DMZ区域和研发中心,而市场部员工出差可以通过L2TP隧道访问内部服务器,DMZ区域和Internet,以及公司内部的市场部。
如何使用防火墙,利用其L2TP功能,根据不同用户分配不同的IP地址,有效控制出差人员访问各自所在的隔离区域,是我们需要考虑的安全防范措施之一。
下面介绍一个案例来看看防火墙是如何实现这些功能的。
某企业数据中心提供L2TP服务,供不同的员工接入,但是访问的资源和权限不同。数据中心规定甲的账号域名为shanghai,通过L2TP接入后可以访问资源组A。乙的账号域名为beijing,通过L2TP接入后可以访问资源组B。数据中心接入公网IP为1.1.2.2,客户端安装iNode软件来进行L2TP连接,如下图所示。
图 2 组网示例
首先我们需要做的,是在数据中心的中心侧防火墙(LNS)创建不同的用户组和资源来对应不同的用户访问。
创建并加入安全区域
为了实现安全隔离,公司作了区域隔离,使员工间不能互访。将甲划分为一个区域,同时将乙划分为另外一个区域,两个区域虽然经过相同的防火墙,但是区域之间不能互通。
当甲和乙人员都需要使用L2TP访问公司内部资源的时候,根据出差人员的用户名,LNS将用户组分别绑定到不同的区域。假设员工甲的用户名为A@shanghai,员工乙的用户名为B@beijing,则出差人员甲的L2TP隧道将被绑定到shanghai组,从而和中心有相同的访问权限,也能够访问中心内部资源。人员乙的L2TP隧道将被绑定到beijing组,从而能够访问公司内部资源。
在“资源管理 > 地址 > IP地址”将甲公司人员授予的IP地址段加入shanghai组,将乙公司人员赋予的IP地址段加入beijing组。
图 3 创建shanghai子网资源
图 4 创建beijing子网资源
图 5 地址资源界面
将不同域对应的virtual-template 加入不同的安全区域,virtual-template1加入安全域shanghai,virtual-template2加入安全域beijing。
图 6 虚地址接入安全域(shanghai)
图 7 虚地址加入安全域(beijing)
创建资源及域间访问控制策略
防火墙内通过域间策略功能让L2TP隧道隔离,使L2TP隧道之间不能互访,从而实现了用户接入的安全访问。
域间策略是基于ACL(Access Control List,访问控制列表),在安全域之间实现流识别功能的。域间策略在一对源安全域和目的安全域之间维护一个ACL,该ACL中可以配置一系列的匹配规则,以识别出特定的报文,然后根据预先设定的操作允许或禁止该报文通过。
域间策略通过引用资源管理中的地址资源和服务资源,来根据报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址、IP承载的协议类型和协议的特性(例如TCP或UDP的源端口/目的端口、ICMP协议的消息类型/消息码)等信息制定匹配规则。每条规则还可以通过引用资源管理中的时间段资源,来指定这条规则在该时间段定义的时间范围内有效。
在Web页面上,某源域和目的域间规则在规则列表中显示的前后顺序即为匹配顺序,显示在前的规则先进行匹配,显示在后的规则后进行匹配。缺省情况下,规则的匹配顺序为用户的配置顺序,即先配置的规则先进行匹配,后配置的规则后进行匹配。
目前需求为公司人员甲可只访问企业市场部,公司人员乙只可访问研发中心。甲和乙L2TP拨入后不能互相访问。
图 8 组网示例
根据需求,可见不同域的账号访问权限是不同的,此时可以通过域间策略来实现。如果总部企业市场部的安全域为market。研发中心的安全域为RnD,那么需要在“防火墙 > 安全策略 > 域间策略”放通的域间策略是shanghai安全域到market安全域,beijing安全域到RnD安全域。
图 9 配置域间策略
由于域间策略默认全不通,则不能互访的需求可以默认满足。
如果想要同域间互访,还需要配置shanghai到shanghai的域间策略,beijing到beijing的域间策略。域间策略配置如下图所示:
图 10 配置域间策略
如果想允许或者禁止某个网络服务,直接在服务中选定并设定相应动作即可。比如ICMP,TELNET服务等。
根据用户名分配不同访问权限
图 11 出差人员通过L2TP隧道接入总部
防火墙可以根据用户名分配不同的IP地址。当用户使用L2TP隧道,需要验证用户名和密码。根据用户名,可以分配给用户不同的IP地址。例如,同时有两个用户申请使用L2TP隧道,并且需要分配IP地址。甲属于shanghai域,乙属于beijing域。在他们的用户名上,分别带有所属的域名,如甲的用户名为A@shanghai,而用户乙的用户名为B@beijing。在L2TP LNS侧,根据用户名,将分配给用户甲一个10.0.1.*的地址,从而让用户甲自由的访问企业的市场资源,而用户乙将获得10.0.2.*的地址,从而让用户乙可以轻松访问研发的资源。使用不同的地址来关联域间和资源访问,从一定程度上实现了安全隔离和权限控制。
如下图所示:
甲的账户域名为shanghai,PC1为甲用户;
乙的账户域名为beijing,PC2为乙用户。
图 12 组网示例
LNS侧的配置具体如下:
# 使能L2TP功能。
<LNS> system-view
[LNS] l2tp enable
# 使能L2TP多实例功能。
[LNS] l2tpmoreexam enable
# 创建两个用户名,并设置密码及服务类型。
[LNS] local-user vpdn1
[LNS-luser-vpdn1] password simple 11111
[LNS-luser-vpdn1] service-type ppp
[LNS-luser-vpdn1] quit
[LNS] local-user vpdn2
[LNS-luser-vpdn2] password simple 22222
[LNS-luser-vpdn2] service-type ppp
[LNS-luser-vpdn2] quit
# 配置LNS侧与隧道相连接的GigabitEthernet0/1的IP地址为1.1.2.2。
[LNS] interface gigabitethernet 0/1
[LNS-GigabitEthernet0/1] ip address 1.1.2.2 255.255.255.0
[LNS-GigabitEthernet0/1] quit
# 创建两个地址池。
[LNS] domain shanghai
[LNS-isp-aaa.net] authentication ppp local
[LNS-isp-aaa.net] ip pool 1 10.0.1.10 10.0.1.100
[LNS] domain beijing
[LNS-isp-bbb.net] authentication ppp local
[LNS-isp-bbb.net] ip pool 1 10.0.2.10 10.0.2.100
# 创建两个virtual template接口。
[LNS] interface virtual-template 1
[LNS-Virtual-Template1] ip address 10.0.1.1 255.255.255.0
[LNS-Virtual-Template1] remote address pool 1
[LNS-Virtual-Template1] ppp authentication-mode chap domain shanghai
[LNS] interface virtual-template 2
[LNS-Virtual-Template2] ip address 10.0.2.1 255.255.255.0
[LNS-Virtual-Template2] remote address pool 1
[LNS-Virtual-Template2] ppp authentication-mode chap domain beijing
# 创建两个L2TP-group组。
[LNS] l2tp-group 3
[LNS-l2tp3] tunnel name LNS
[LNS-l2tp3] tunnel authentication
[LNS-l2tp3] allow l2tp virtual-template 1 remote LAC domain shanghai
[LNS-l2tp3] tunnel password simple 12345
[LNS] l2tp-group 4
[LNS-l2tp4] tunnel name LNS
[LNS-l2tp4] tunnel authentication
[LNS-l2tp4] allow l2tp virtual-template 2 remote LAC2 domain beijing
[LNS-l2tp4] tunnel password simple 12345
上述配置中,如果LNS端需要采用RADIUS验证,请修改AAA配置即可。
如果不同的企业共用一台LNS设备,且采用相同的LAC隧道对端名,那么LNS将不能够区分用户属于哪个企业。在这种情况下,只有在设备上启用L2TP多实例功能(l2tpmoreexam enable),该设备才能同时作为多个VPN域的LNS,实现多个企业共用一台LNS设备。
在L2TP多实例应用中,执行allow l2tp virtual-template命令时,必须通过domain参数指定发起连接的VPN用户所属的域。L2TP隧道建立成功后,LNS获取会话协商报文中携带的域名,并在本地配置的VPN用户所属域中查找与其相同的域名。如果存在隧道对端名称和域名均匹配的L2TP组,则根据该L2TP组的配置信息建立会话,从而实现为不同域的VPN用户建立不同的会话。
客户端在发起L2TP连接时,使用H3C iNode客户端。
配置用户侧主机的IP地址,并配置路由,使得用户侧主机与LNS(IP地址为1.1.2.2)之间路由可达。
在用户侧主机上进行如下配置(设置的过程与相应的客户端软件有关,以下为设置的内容):
# 在用户侧设置VPN用户名为vpdn1@shanghai ,密码为11111。
# 将LNS的IP地址设为安全网关的Internet接口地址(本例中LNS侧与隧道相连接的以太网接口的IP地址为1.1.2.2)。
# 修改连接属性,将采用的协议设置为L2TP,将加密属性设为自定义,并选择CHAP验证。
配置如下:
图 13 iNode VPN连接基本配置
输入用户名时,通过@域名来使服务器识别不同的隧道,赋予客户端不同的地址段并加入不同的安全域。
图 14 iNode VPN高级属性配置
注意隧道名称必须要LNS侧配置的隧道名称相同,认证模式也必须两端一致。
H3C防火墙的L2TP多实例技术成功的解决了远程接入的安全隐患,使任何地方,任何地点都可以安全接入,同时公司总部和分支机构不会因为远程接入的存在而增加危险,可以对接入权限和资源访问进行安全管理。如果配置L2TP over IPSec方式,数据的保密性也得到了保证。通过运用产品的不同功能,L2TP分身术巧妙习得,每个“分身”实例都有“十八班武艺”,是不是很方便呢?