基本互联就不说了!!!,安全策略在尾部讲解
一、NAS与客户端的配置
(1)NAS PPPoe服务的提供
首先完成左边部分的NAS的PPPoe的服务提供,所以我们需要创建一个VT接口,并配置认证方式是chap还是pap
inter Virtual-Template 10 //创建虚拟模板
ppp auth chap //设置认证方式
创建完虚拟模板后,将该模板绑定到相应的端口
[NAS-GigabitEthernet1/0/1]pppoe-server bind virtual-template 10
上述两步便完成了NAS端的PPPoe服务的提供
创建并绑定完VT接口后,我们还需要创建用于验证的用户:
如果是防火墙:
user-manager user xxx //创建用户xxx
password xxx //设置用户的密码
对于防火墙我觉得在web界面进行配置也未尝不可,而且还可以导入用户,在模拟器中的命令行界面中我只能创建default域的用户,在web界面可以创建其他域的用户,每个域都可以设置它们的service-type,default默认的service-type 是所有的都可以,如下图所示:
其中internetaccess代表带可以用于网络接入,ssl-vpn就是用于sslvpn,还有用于l2tp,以及IPsec。所以我们使用本地认证的时候就直接创建用户即可,不用指明用户所属的域,默认创建的用户属于default域,所以default域中的用户默认就是可以用于l2tp的。
(2)客户端PPPoe的拨号配置
创建完模板之后,输入dialer-rule
进入拨号规则视图,输入dialer-rule 1 ip permit //表示当有ip流量经过的时候触发pppoe会话
接入方也需要创建模板,但是是拨号模板
inter dialer 1
link-protocol ppp //将封装协议改为ppp
dialer user xxx //该user名随意,主要起区分流量的作用
dialer-group 1 //将拨号模板加入到一个一个组当中,该组的组号一定要和之前制定的dialer-rule的编号相同
dialer bundle 1 //创建一个拨号模板的标识,后面的编号和前面拨号组的编号相同
ppp chap user xxx
ppp chap password xxx //这一块的设置与普通的ppp配置相同,设置用户和密码,用作
ppp的认证
ip address ppp-negotiate //配置ip地址的获取是通过对端
最后将拨号模板绑定到某个端口上,作为拨号端口
inter g0/0/0
pppoe-client dial-bundle-number 1
(3)NAS 的l2tp的配置
l2tp enable //开启l2tp的功能
l2tp-group 1 //创建l2tp的组,其主要功能就是区分不同用户,不同的用户使用不同的组,不同的组意味着不同的L2TP的隧道
start l2tp ip 1.1.1.2 domain default/fullusername xxx //表示该l2tp组对应的LNS的IP地址是多少,如果使用的是domain xxx那么意思就是标识使用该组的用户属于哪个域,如果是fullusername,那么就是仅仅限制指定用户名的用户去使用该组
tunnel authen //表示开启隧道认证
tunnel password xxx //设置隧道的密码
tunnel name xxx //用户后续与LNS进行隧道连接,LNS会对L2TP组使用字符串进行标识,只有隧道名字匹配才能进行隧道建立
tunnel timer hello xxx /隧道通过发送Hello报文保活,其实就是PPP的链路保活
二、LNS的配置
(1)零碎配置
ip pool xxx //创建地址池用于后续PPP协商成功后进行地址的分配,地址池最好不要和私网地址同网段,因为这样的话私网主机回包的时候会认为目的主机在同网段,这个时候还要去配置接口的arp代理功能
section xxx xxx //设置地址池的地址范围,可以不设置网关,因为设置了也没有使用的,后面的客户端只要有流量全部都往拨号接口发送。
aaa //进入aaa视图
aaa视图下:service-scheme xxx //创建业务方案,因为在防火墙中的VT接口无法直接指定地址池,只能指定service-scheme,所以我们需要先创建service-scheme,然后将地址池与其绑定,然后再由VT接口根据service-scheme中的地址池进行地址的分发。
interface Virtual-Template 10 //创建VT接口,主要用于PPP相关功能的提供
IP address xxxx //随便配置一个地址就行
ppp auth chap/pap //可以不配置认证模式,如果要进行二次验证的话,就需要配置该命令
remote servcie-scheme xxx //将service-scheme与VT接口进行绑定
(2)L2TP配置
l2tp enable //开启l2tp功能
l2tp-group 1 //创建l2tp组
allow l2tp virtual-template 10 remote xxx domain xxx //创建来2tp功能模块与VT接口之间的联动,同时指定该接口对外开放的标识为xxx,以及该l2tp组允许哪个域内的用户使用
tunnel authe //开启tunnel验证
tunnel password xxx //设置隧道的密码
tunnel timer hello xxx //设置隧道的hello报文发送时间
- 可选:配置二次认证。
-
强制LCP重新协商,执行命令mandatory-lcp。
-
强制本端CHAP认证,执行命令mandatory-chap。
在NAS-Initiated场景中,用户身份认证有两种方案,一种是仅使用NAS对用户做身份认证,另一种是NAS和LNS分别对用户做身份认证(也叫二次认证)。认证方案的选择由LNS侧的配置控制。
- 代理认证
表示仅使用NAS进行用户认证,LNS不对用户再进行二次身份认证。这种方式下,LNS侧的VT接口下不用配置用户认证方式。
- 强制CHAP认证
表示NAS认证完用户身份以后,LNS要求用户使用CHAP方式重新进行身份认证,该方式属于二次身份认证。如果使用强制CHAP认证时,VT接口下的认证方式也要配置CHAP方式。
- LCP重协商
表示LNS不信任NAS的认证结果,要求用户重新与LNS进行LCP协商并进行身份认证,该方式属于二次身份认证。
如果使用LCP重协商时,VT接口下也要配置与拨号用户侧相同的认证方式。
LNS侧默认使用的是代理认证方式,即不对用户做二次认证。
-
(3)用户创建
user-manager user xxx //创建用户
用户视图下:password xxx //设置密码
用户这样创建后默认的域还是default,所以适用于L2TP,可以看上面,这里不做解释
安全策略
业务方向 | 设备 | 源安全区域 | 目的安全区域 | 源地址 | 目的地址 | 应用 |
---|---|---|---|---|---|---|
拨号用户访问企业内网 | NAS | Local | Untrust | 1.1.1.1/32 | 2.2.2.2/32 | L2TP |
LNS | Untrust | Local | 1.1.1.1/32 | 2.2.2.2/32 | L2TP | |
DMZ | Trust | 172.16.1.2/24~172.16.1.100/24(地址池地址) | 192.168.1.0/24 | * | ||
企业总部服务器访问拨号用户 | LNS | Trust | DMZ | 192.168.1.0/24 | 172.16.1.2/24~172.16.1.100/24(地址池地址) | * |
这是华为产品文档给出的安全策略,下面给出原因:
1、NAS为什么只有一个安全策略
前提:在华为产品文档给出的例子中,它们的VT接口全部都是加入到DMZ区域中的
首先对于NAS的客户端侧来说,它接收的报文只有PPPoe报文,对于这些PPPoe报文发送到防火墙后就直接被VT接口处理,连路由的那一步都没有达到,所以更不要说对这些报文进行安全策略的匹配了,所以对于这些PPPoe报文,不需要进行安全策略的放行,至于数据的回包,我是这么思考的,数据回包到达NAS后将其交给l2tp功能模块处理,然后l2tp功能将隧道解封,然后交给VT接口,VT接口从与其绑定的接口将数据包发出,这个过程其实是当数据包交给VT接口处理后,该报文的源区域就变为DMZ了,然后再从VT接口所在的DMZ区域发出,因为是在同区域所以就没有限制。然后就是上图给出的local到untrust区域的放行策略,它主要是提供给隧道ID协商报文,会话协商报文,以及后续的数据报文的发送使用,首先是隧道ID协商报文和会话协商报文,它们是L2TP功能模块自身发出的,所以放行的是local到untrust,而对于数据报文,它会先传送到VT接口,然后VT接口将原生数据打上PPP的相关头部后转送给L2TP功能模块,于是数据报文其实本质上也是local到untrust。
2、NAS为什么不用放行untrust到local
因为在隧道协商和会话协商中,都是由NAS主导的,所以防火墙内部有会话表,所以不用放行。
3、LNS的策略解释
首先untrust-->local这个我相信大家都懂就不细说了,就是放行l2tp相关的协商报文。然后就是DMZ到trust区域,因为客户端的数据到达LNS后,会先交给l2tp功能模块将相关的隧道进行解封,然后l2tp功能模块将其交给VT接口处理,DMZ区域的VT接口将PPP的相关头部解除后,将其发送给处在trust区域的接口,所以我们需要DMZ--->Trust区域的安全策略。对于Trust-->DMZ的安全策略是用于内部主机的主动发包的,内部私网主机如果想要主动与L2TP隧道连接主机进行通信就需要用到这个安全策略,私网主机从trust区域将数据包发送给防火墙,然后防火墙将其交给VT接口,因为所有分配出去的用于隧道连接的地址都有相应的unr路由,如果目的地址为分配出去的地址的话,下一跳就是VT接口,因为私网主机是trust区域的,而下一跳时DMZ区域,所以要放行trust-->DMZ
参考文档:
华为防火墙技术漫谈