免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4491 | 回复: 0

【干货】网络安全实验 [复制链接]

论坛徽章:
0
发表于 2017-12-13 17:00 |显示全部楼层


一. 实验目的:
1. 理解 Lock-and-Key 的主要用途及配置方法;
2. 理解 Reflexive access list 的主要用途; Reflexive access list 的配置步骤;
3. 掌握 CBAC 的主要用途和配置方法;
4. 比较三种访问控制的优缺点, 所用场合的差异, 以便根据不同的环境灵活选择不同的配置策略;

二. 实验设备:
1700 系列路由器两台,装有超级终端的计算机三台,集线器两个,网线等。

三. 实验拓扑:

微信图片_20171213165943.jpg

四. 实验内容:

(一) . Lock-and-Key 配置实验
1.配置 Lock-and-Key 的常用命令:
Lock-and-Key 常用的命令有以下几个: access-list, ip access-group, login tacacs , username,
password&login local ,show ip interface, show access-lists。我们简单介绍一下:
access-list access-list-number dynamic dynamic-name [timeout minutes] {deny|permit}
protocol source-address source-wildcard destination-address destination-wildcard : 该命令使用关键
字“ dynamic”,它创建一个动态访问控制列表。“ timeout minutes”参数指定了动态访问控制列表的绝对超时值, 它代表该动态访问控制列表中每个条目的最大时间限制(以分为单位),时间到后,就算连接仍在传输数据,我们也需要重新认证。
ip access-group access-list-number {in|out}: 把一个 ACL 表应用于路由器的具体的端口。“ in”是入方向, “out”是出方向。
username username password password: “ username”参数配置一个用户名,以标识用户的身份,它可以保证对用户的验证更为有效。 “ password” 参数配置一个认证密码。 “ login local”
一个注册命令,它将所有线路配置为根据本地用户名/口令数据库对用户进行认证。
autocommand access-enable [host] [timeout minutes]:该命令用于自动创建一个临时性访问控制列表条目, 关键字“ host”使该临时性条目不包括我们所在子网的其他地址,“ timeout minutes”
参数指定连接的闲置时间,如果连接闲置超过该时间,我们不得不重新进行认证。
show ip interface:这个命令不是 ACL 的特有命令,但是它可以看到一个端口上的 ACL 的配置信息。
show access-lists:这个命令用于查看某个 ACL 表里的访问控制规则。

2 注意事项:
A. ACL 规则
路由器是根据 ACL 里面的规则对数据包进行检验的,如果发现一个数据包不符合表里定义的所有规则,路由器就会把数据包丢弃。所以在写 ACL 规则时,如果前面几条规则是 deny某种类型的数据包通过的话,那么一定要在最后加上一条 perimt any,让其它不满足条件的数据包通过。
B. Lock-and-Key 使用的是 IP 的扩展 ACL,所以你在配置 Lock-and-Key 之前必须对 ACL访问控制的原理有一个深入的理解。
C.在开始这个实验之前,建议删除各路由器的初始配置后再重新启动路由器,这样可以防止由残留配置所造成的问题。
D.在配置中带关键字“ dynamic”的语句是同一个扩展 ACL100 的一部分。记住,对于一种协议,一个接口和一个方向只能有一个访问控制列表。

3.实验步骤
1.按上面实验拓扑图连接好设备,并配置好各设备的 ip 地址;
2.使用 RIP 协议作为该网络的路由协议,实现网络的动态路由配置。完成配置后使用 show iproute,show interface,show running-configuration 查看路由配置的正确性或者使用 ping 命令验证网络之间是否完全互连。
3. Router-A 上配置动态访问控制列表:
(1)建立一个访问控制列表号为 100 的访问控制列表:
Router-A#config t
Router-A(config)#access-list 100 permit tcp any host 172.32.3.1 eq telnet
Router-A(config)#access-list 100 dynamic CISCO timeout 5 permit ip any any
( 2)将建立的访问控制列表 100 应用在 Router-A 的 f0 端口上,一切从该端口进入的数据流都需要通过 ACL 的验证:
Router-A(config)#int f0
Router-A(config-if)# ip access-group 100 in
Router-A(config-if)#exit
( 3)定义将使用 Lock-and-Key 的虚拟终端:
单台主机:
Router-A(config)#line vty 0 4
Router-A(config-line)#login local
Router-A(config-line)# autocommand access-enable host timeout 2
Router-A(config-line)#exit
整个子网:
Router-A(config)#line vty 0 4
Router-A(config-line)#login local
Router-A(config-line)# autocommand access-enable timeout 2
Router-A(config-line)#exit
( 4)为所有需要通过 Router-A 而访问外部网络的用户配置用户的验证证明(包括用户名和密码):
Router-A(config)#username CISCO password CISCO
Router-A(config)#^z
4. 验证 Lock-and-Key 配置是否成功:
1)使用了 host 命令,仅允许单台主机通过:
(1) 试着从 HostB 去 ping HostA,到主机的 ping 应该失败。
(2) 在确认了防火墙阻止我们到达 172.32.4.0 网段之后,我们可以从 HostB telnet到 Router-A,我们会被提示输入用户名和密码以进行认证,输入正确的登陆信息后, telnet 会话立刻被切断。这时 RouterA 已经在防火墙上打开了一个通道,让数据报通过。
(3) 再试着从 HostB ping 一下 172.32.4.0 网段主机,该 ping 是成功的。从 RouterB上 ping 172.32.4.0 网段主机, ping 不成功,因为我们用 host 参数规定了只有单台主机能够使用这个通道传输数据
(4) 此时可以使用 show ip access lists 来查看 lock and key 的配置:
Router-A#show ip access_lists
Extended IP access list 100
permit tcp any host 172.32.3.1 eq telnet (94 matches)
Dynamic cisco permit ip any any
permit ip host 172.32.4.2 any (19 matches) (time left 52)
可见其数据包头源地址被动态的替换为了 172.32.4.2,这就是参数 host 的作用
2)不使用 host 命令,允许整个子网的所有主机通过:
( 1)试着从 Host_2 去 ping Host_1,到主机的 ping 应该失败。
( 2)在确认了防火墙阻止我们到达 172.32.4.0 网段之后,我们可以从 HostB telnet到 Router-A,我们会被提示输入用户名和密码以进行认证,输入正确的登陆信息后, telnet 会话立刻被切断。这时 RouterA 已经在防火墙上打开了一个通
道,让数据报通过。
( 3)再试着从 HostB ping 一下 172.32.4.0 网段主机,该 ping 是成功的,从 RouterB上 ping 172.32.4.0 网段主机, ping 也是成功的,因为我们没有使用 host 参数,这使得该网段内的所有主机都能够使用这个通道传输数据
( 4)此时可以使用 show ip access lists 来查看 lock and key 的配置:
Router-A#show ip access_lists
Extended IP access list 100
permit tcp any host 172.32.3.1 eq telnet (94 matches)
Dynamic cisco permit ip any any
permit ip any any (20 matches) (time left 45)
可见路由器还是让任何 ip 包通过。

(二) . Reflexive Access List 配置实验
1 概述:
按上图拓扑,在该实验中,我们在两个路由器之间启动 rip 路由协议。 其中 RouterA
担当防火墙的角色,即将 Reflexive access list 放在 RouterA 的 f0 口处,在 RouterB
的 f0 口处连接的是 172.32.2.0 网段。HostB 上安装 FTP 服务器软件,作为外部网络的
一台 FTP 服务器.
Reflexive access list 的放置有两种方法:放在 internal 接口处或者放在
external 接口处,要弄清出两种放置方法有什么不同之处,他们分别用于什么场合上。
该实验可分别以 ping 命令,telnet,ftp 请求三种方式来验证配置的可行性:
A: 以 ping 命令来证明配置是否可行: 当配置完成后, 在 HostA 上 ping RouterB的 f0 网段内的主机 ip 地址,都可以有 icmp 包返回;但在防火墙外 ping RouterA 内部的网络设备时,则不能 ping 通。
B:以 FTP 方式来验证:注意,由于 FTP 的控制端口为 21,而传输数据的端口为 20,因此,当 FTP client 以普通方式尝试与 FTP server 建立会话时,会发现虽然双方已经在控制与同步方面都磋商完毕,但当 FTP server 开始发送第一个数据包过来时,由于它是以端口 20 传输的,而基于这个端口的会话的发起方属于防火墙外部,因此 reflexiveaccess list 会认为该会话非法,从而不允许通过.因此在 FTP client 方看来,尽管已经连上了 FTP server,但却看不到任何服务器的 FTP 目录上的内容;要想得到 FTP 服务,必须将 client 的 FTP 工作方式设为 passive 模式(这是 FTP 的两种工作方式之一,详细
内容可参考 RFC1635,RFC1579).

2.实验步骤:
1.按拓图连接好设备并打开电源;
2.按图配置好各设备地址,并在两个路由器之间启动默认路由;
3.验证路由配置的正确性:以 ping 命令分别在各设备上 ping 其他网段的设备,应保证整
个网络都能互通;
4.在 RouterA 上配置 Reflexive access list:
(1) 首先,定义一个名为 FILTER-IN 的 inbound access list,该 ACL 将运行在RouterA 的 f0 口处检查所有进入的数据包,并在其上定义了一条 entry,该 entry 允许所有 ip 包通过,并且创建了一个名为 IPTraffic 的 reflexive access list,当一个 inbound packet 第一次通过该接口和外面建立起会话的时候,路由器就会相应的在 IPTraffic 中加入一条 entry,以便双方能通过该路由器对话。
RouterA(config)#ip access-list extended FILTER-IN
RouterA(config-ext-nacl)#permit ip any any reflect IPTraffic
RouterA(config-ext-nacl)#exit
(2)然后,定义一个名为FILTER-OUT的outbound access list,并将IPTraffic嵌套在该ACL中;
RouterA(config)#ip access-list extended FILTER-OUT
RouterA(config-ext-nacl)#evaluate IPTraffic
RouterA(config-ext-nacl)#exi
(3)将两个ACL应用在f0口上;
RouterA(config)#int f0
RouterA(config-if)#ip access-group FILTER-IN in
RouterA(config-if)#ip access-group FILTER-OUT out

5. 用show命令确认配置正确后,在在防火墙外部ping防火墙内部的设备时,这时是不能ping通的;而在防火墙内部设备上(如 Host A)ping外部的设备,这时icmp包则可返回,想想原因。

同样,telnet方式的结果也一样.
需要注意的就是FTP访问时的问题.如果想防火墙内部的client能访问外部的FTPserver,可以有两种方案选择:第一,将client的FTP访问方式设为passive模式,如果用ftp软件的话(如leapftp)一般可以设置,或者在比较高版本的ie下,在internet选项下的高级子菜单,选中”enable folder view for FTP sites”,则可以正确访问.但这需要client方懂得设置的方法;另外一种方案就是在作为防火墙的路由器端口上加上一条entry,让所有原端口为20而目的端口大于1024的包通过,比如在上面的实验中,我们可以在控制表FILTER-OUT中加入这样一条:
permit tcp any eq 20 any gt 1024 , 则可以让所有从原端口为20且目标端口大于
1024的数据包通过,相当于开了一道后门,当然,这也会存在着安全隐患.


3.注意事项:
1. Reflexive access list只能定义成扩展的命名ACL,不能定义成数字的或者是标准的命名ACL;
2.由于Reflexive access list的内容是动态生成的,所以开始的时候它是一个空表,而cisco路由器对于空的ACL它是不显示出来的,因此当没有会话建立起来时,用show命令是看不到你所定义的reflexive access list的;但当实验过程中内部与外部之间建立起对话后,再用show命令查看的时候,你就会发现存在该表了;
3.必须注意, reflexive access list并不直接应用到端口上,而是嵌套在应用于该端口的另一个扩展的命名ACL上,因此它并不象其他的ACL那样,在最后用缺省的deny anyany的条项;
4.弄清楚一般的ACL中关键词established与reflexive access list的区别:虽然他们表面上都似乎完成相同的功能,但事实上他们的实现原理和安全程度都不同:established是通过检查数据包中的ACK和RST位来决定该数据包是否合法;而reflexiveaccess list不仅仅检查这个,而且检查数据包的源地址,目标地址,端口号等,并且它有可调节的timeout,因此它比established更安全。
5.由于自反访问控制表的作用是为防火墙内部的设备提供安全保护并能正确访问外部网络,因此它必须保持内外路由信息的正确交换,换句话说,就是reflexive access list既要有效阻止外部网络设备的非法访问,也应保证路由包能在正常通过该路由器,而不被访问表所拦截.由于rip协议包是有路由器内部发出传到相邻路由器的。

因此reflexiveaccess list 不能将它所在的路由器上所发出的rip包过滤掉.因此,对于运行rip协议的网络中,reflexive access list不须做额外的配置; 而对于igrp,eigrp,ospf等路由协议来说,由于他们是可以跨路由器转发的,因此,当在防火墙外部的路由器想将其路由信息跨过运行reflexive access list的路由器送给防火墙内部的路由器时,reflexive access list将把该路由包视为由外面初始的数据包。

因此会被过滤掉,从而造成路由信息交换失败.因此,要避免这种情况的出现,我们必须在用于控制进入防火墙内部的扩展访问控制表中(该实验中为FILTER-OUT)加入相应的条目,如permit eigrp any any , permit ospf any any 等.
(三) . CBAC(Context-Based Access Control)配置实验 (选做)
注意:由于当前所用的 2600 系列路由器的 IOS 仍未升级,因此不支持 CBAC,所以以 1720 路由
器作为 CBAC 的配置平台。


配置步骤:
1. 主要的配置命令:
应用层协议审查配置:
Router(config-if)# ip inspect name inspection-name protocol [timeout seconds]
在接口上应有检查规则命令:
Router(config)#int e0
Router(config-if)#ip inspect FIREWALL out
2. 一个简单例子:一个审查 HTTP 协议的 CBAC 配置:
审查 HTTP 协议
Router(config-if)# ip inspect name checkhttp http
在接口上应用检查规则命令:
Router(config)#int e0
Router(config-if)#ip inspect checkhttp out
来源:微思网络  链接:http://www.xmws.cn/show-87-646-1.html

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP