一、 扩展ACL
1.实验目的
(一)定义扩展ACL
(二)应用扩展ACL
(三)扩展ACL 测试
(四) 定义命名扩展ACL
2.拓扑
图 1
3.地址规划
设备 |
接口 |
地址 |
R0 |
Fa 0/0 |
172.16.30.2/24 |
S 0/1/0 |
172.18.30.2/24 |
|
R1 |
S 0/1/0 |
172.18.30.1/24 |
S 0/1/1 |
172.19.30.1/24 |
|
R2 |
S 0/1/0 |
172.19.30.3/24 |
Fa 0/0 |
172.20.30.3/24 |
|
Fa 0/1 |
172.17.30.3/24 |
|
Server |
/ |
172.16.30.1/24 |
PC 0 |
/ |
172.20.30.1/24 |
PC 1 |
/ |
172.17.30.1/24 |
4.实验步骤
拒绝PC1 所在网段访问Server 172.16.30.1 的Web 服务
拒绝PC2 所在网段访问Server 172.16.30.1 的Ftp 服务
拒绝PC1 所在网段访问路由器R1 的Telnet 服务
拒绝PC1 和PC2 所在网段ping Server 服务器
R2(config)#access-list 110 deny tcp 172.20.30.0 0.0.0.255 host 172.16.30.1 eq 80
//拒绝PC1 所在网段访问Server 172.16.30.1 的Web 服务
R2(config)#access-list 110 deny tcp 172.17.30.0 0.0.0.255 host 172.16.30.1 eq 21
R2(config)#access-list 110 deny tcp 172.17.30.0 0.0.0.255 host 172.16.30.1 eq 20
//拒绝PC2 所在网段访问Server 172.16.3.100 的Ftp 服务
R2(config)#access-list 110 deny tcp 172.20.30.0 0.0.0.255 host 172.19.30.1 eq 23
R2(config)#access-list 110 deny tcp 172.20.30.0 0.0.0.255 host 172.19.30.1 eq 23
//拒绝PC1 所在网段访问路由器R1的Telnet 服务
R2(config)#access-list 110 deny icmp 172.20.30.0 0.0.0.255 host 172.16.30.1
R2(config)#access-list 110 deny icmp 172.17.30.0 0.0.0.255 host 172.16.30.1
//拒绝PC1 和PC2 所在网段ping Server 服务器
R2(config)#access-list 110 permit ip any any
R2(config)#int s0/1/0
R2(config-if)#ip access-group 110 out //接口下应用ACL
5.测试结果
1.1 登录FTP
图 2
5.2登录R2
图 3
5.3上WEB
图 4
5.4 PC1 ping 服务器被限制
图 5
5.5 PC0 web服务被限制
图 6
5.6 PC0 telnet R1被限制
图 7
5.7 PC1 ftp被限制
图 8
二、 自反ACL
1. 实验目的
(一)定义自反ACL
(二)应用自反ACL
(三)自反ACL 测试
2.拓扑
图 9
3.地址规划
路由器 |
接口 |
地址 |
R 1 |
F 0/0 |
172.16.30.1/24 |
R 2 |
F 0/0 |
172.16.30.2/24 |
R 3 |
F 0/0 |
172.16.30.3/24 |
F 0/1 |
172.17.30.3/24 |
|
R 4 |
F 0/0 |
172.17.30.4/24 |
4.实验步骤
拒绝外网R4 主动访问内网,但是ICMP可以不受限制
说明:R4为外网,R2和R3为内网。
1.配置拒绝外网主动访问内网
说明:拒绝外网主动访问内网,但是ICMP可以不受限制
(1)配置允许ICMP可以不用标记就进入内网,其它的必须被标记才返回
R3(config)#ip access-list extended come
R3(config-ext-nacl)#permit icmp any any //被允许的ICMP是不用标记即可进入内网的
R3(config-ext-nacl)#evaluate abc //其它要进入内网的,必须是标记为abc的
(2)应用ACL
R3(config)#int f0/1
R3(config-if)#ip access-group come in
5.测试结果
(1)测试外网R4的ICMP访问内网
图 10:可以看到,ICMP是可以任意访问的
(2)测试外网R4 telnet内网
图 11:可以看到,除ICMP之外,其它流量是不能进入内网的。
(1) 测试内网R1的ICMP访问外网
图 12:可以看到,内网发ICMP到外网,也正常返回了
(2) 测试内网R2发起telnet到外网
图 13:可以看到,除ICMP之外,其它流量是不能通过的。
3.配置内网向外网发起的telnet被返回
说明:外网和内网之间的ICMP可以不受限制,外网不能telnet内网,但内网telnet外网时,需要配置记录,让其返回,根据上面的ACL配置,可以返回的,必须是标为abc的,所以在此为内网发向外网的telnet标为abc,返回时,就会有缺口,因此内网能正常telnet外网,但外网不可主动telnet内网。
(1)配置内网出去时,telnet被记录为abc,将会被允许返回
R3(config)#ip access-list extended goto
R3(config-ext-nacl)#permit tcp any any eq telnet reflect abc timeout 60 telnet已记为abc
R3(config-ext-nacl)#permit ip any any
(2)应用ACL
R3(config)#int f0/1
R3(config-if)#ip access-group goto out
测试结果
(1)查看R2到外网的ICMP 查看内网向外网发起telnet
图 14
说明:ICMP属正常,可以看出,此时内网发向外网的telnet因为被标记为abc,所以在回来时,开了缺口,也就可以允许返回了。
(3) 查看ACL
图 15
说明:可以看到,有一条为abc的ACL为允许外网到内网的telnet,正是由于内网发到外网的telnet被标记了,所以也自动产生了允许其返回的ACL,并且后面跟有剩余时间。
三、 动态ACL
1.实验目的
(一)定义动态ACL
(二)应用动态ACL
(三)动态ACL 测试
2.拓扑
图 16
3.地址规划
路由器 |
接口 |
地址 |
R 1 |
F 0/0 |
172.16.30.1/24 |
R 2 |
F 0/0 |
172.16.30.2/24 |
R 3 |
F 0/0 |
172.16.30.3/24 |
F 0/1 |
172.17.30.3/24 |
|
R 4 |
F 0/0 |
172.17.30.4/24 |
4.实验配置及测试结果
R2和R1为内网,R4为外网,配置R3,默认允许所有telnet通过,因为要使用telnet做认证,然后只有当认证通过之后,ICMP才可以通过
1.配置Dynamic ACL
(1)配置默认不需要认证就可以通过的数据,如telnet
R3(config)#access-list 100 permit tcp an an eq telnet
(2)配置认证之后才能通过的数据,如ICMP,绝对时间为2分钟。
R3(config)#access-list 100 dynamic ccie timeout 2 permit icmp any any
(3)应用ACL
R3(config)#int f0/0
R3(config-if)#ip access-group 100 in
2.测试访问
(1)测试内网R2 telnet外网R4
图 17:从结果中看出,telnet不受限制。
(2)测试测试内网R2 ping外网R4
图 18:内网在没有认证之前,ICMP是无法通过的。
3.配置本地用户数据库
R3(config)#username wang password 123
4.配置所有人的用户名具有访问功能
R3(config)#line vty 0 181
R3(config-line)#login local
R3(config-line)#autocommand access-enable 这条必加
5.内网R2做认证
图 19:当telnet路由器认证成功后,是会被关闭会话的。
- 测试内网到外网的ICMP通信功能
图 20:认证通过之后,ICMP被放行。
- 查看ACL状态
图 21:可以看到动态允许的流量已放行。
8.host功能
第一种:R3(config-line)#autocommand access-enable //如果没有加host,那么内网一台主机通过认证之后,所有主机都能访问外网
第二种:R3(config-line)# autocommand access-enable host //加了host,就变成谁通过了认证,谁才能访问外网。
有配置访问功能时,命令有两种,并且后面可以跟时间,这里的时间为空闲时间,必须比之前的绝对时间要小,在配置访问功能时,如果没有加host,那么内网一台主机通过认证之后,所有主机都能访问外网,加了host,就变成谁通过了认证,谁才能访问外网。
四、 基于时间ACL
1.实验目的
(一)定义基于时间ACL
(二)应用基于时间ACL
(三)自反基于时间ACL 测试
2.拓扑
图 22
3.地址规划
路由器 |
接口 |
地址 |
R 1 |
F 0/0 |
172.16.30.1/24 |
R 2 |
F 0/0 |
172.16.30.2/24 |
R 3 |
F 0/0 |
172.16.30.3/24 |
F 0/1 |
172.17.30.3/24 |
|
R 4 |
F 0/0 |
172.17.30.4/24 |
4.实验步骤
配置R3在上面的时间范围内拒绝R2到R4的telnet,其它流量全部通过。
3.实验配置
1.配置time-range
R3(config)#time-range TELNET
R3(config-time-range)#periodic weekdays 9:00 to 17:00
说明:定义的时间范围为每周一到周五的9:00 to 17:00
2.配置ACL
说明:配置R3在上面的时间范围内拒绝R2到R4的telnet,其它流量全部通过。
R3(config)#access-list 150 deny tcp host 172.16.30.1 any eq 23 time-range TELNET
R3(config)#access-list 150 permit ip any any
3.应用ACL
R3(config)#int f0/0
R3(config-if)#ip access-group 150 in
5.测试时间范围内的流量情况
(1)查看当前R1的时间,测试R1向R4发起telnet会话。
图 23:可以看到,在规定的时间范围内,R1向R4发起telnet会话是被拒绝的。
(3)测试除telnet外的其它流量
图 24:可以看到,在规定的时间范围内,除了telnet之外,其它流量不受限制。
(4)测试除R1之外的设备telnet情况
R2#telnet 172.17.30.4
Trying 172.17.30.4 ... Open
R4>
说明:可以看到,除R2之外,其它设备telnet并不受限制。
5.测试时间范围外的流量情况
(1)查看当前R3的时间
图 25:当前时间为周一18:00,即在所配置的时间范围之外。
(2)测试R1向R4发起telnet会话
图 26:在时间范围之外,所限制的流量被放开。
五、 基于上下文访问控制
1.实验目的
• 在配置防火墙之前验证设备间连通性
• 在R3配置配一个带CBAC的IOS防火墙
• 用ping,telnet和http验证CBAC的功能性
2.拓扑
图 27
3.地址规划
设备 |
接口 |
地址 |
R0 |
Fa 0/0 |
172.16.30.2/24 |
S 0/1/0 |
172.18.30.1/24 |
|
R1 |
S 0/1/0 |
172.18.30.2/24 |
S 0/1/1 |
172.19.30.2/24 |
|
R2 |
S 0/1/0 |
172.19.30.3/24 |
Fa 0/0 |
172.20.30.3/24 |
|
Server |
/ |
172.16.30.1/24 |
PC 0 |
/ |
172.19.30.1/24 |
4.实验步骤
任务1:阻隔外网流量
第一步 验证基本的网络连通性
配置防火墙之前先验证网络连通性
• 在PC-C的命令提示符中ping 服务器
• 在PC-C命令提示符中telnet路由R2的s0/1/1接口:地址时172.18.30.2退出telnet阶段
• 在PC-C开一个网页浏览器登入PC-A来展示网页。关掉PC-C的浏览器。
• 在服务器的命令提示符ping PC-C
第二步 在R3配置一个命名IP ACl阻隔所有外网产生的流量。
用ip access-list extended指令创造一个已命名的IP ACL
R3(config)# ip access-list extended OUT-IN
R3(config-ext-nacl)# deny ip any any
R3(config-ext-nacl)# exit
第三步 在s0/1/0应用ACl
R3(config)# interface s0/1/0
R3(config-if)# ip access-group OUT-IN in
第四步 确保进入s0/1/0接口的流量被阻隔
在PC-C命令提示符ping PC-A服务器。ICMP回送响应会被ACL阻隔。
任务2:创建一个CBAC检测规则
第一步 创建一个检测规则来检测ICMP,Telnet,和HTTP流量。
第二步 开启时间戳记记录和CBAC审计跟踪信息。
用ip inspect audit-trail指令去开启CBAC审计信息来提供关于通过防火墙的网络接入记录,包括非法访问尝试。用logging host指令在syslog服务器启用日志记录、关于172.16.30.1。确保登录消息打上时间标记。
R3(config)# ip inspect audit-trail
R3(config)# service timestamps debug datetime msec
R3(config)# logging host 172.16.30.1
第三步 对在s0/1/0的出口流量用检测规则。
R3(config-if)# ip inspect IN-OUT-IN out
5.测试结果
第四步 验证审计跟踪信息正被syslog服务器记录
• 在PC-C 成功ping、telnet访问PC-A来检测连通性。需要注意Telnet不了。
图 28
• 在PC-A,ping,Telnet PC-C来检测连通性,这两步都被阻隔掉
图 29
回顾在服务器PC-A的syslog信息,在配置窗口点击syslog option。
图 30
图 31:查看报文过滤配置
图 32:查看端口配置
六、 配置基于区域策略的防火墙
1.实验目的
• 在配置防火墙之前先验证网络连通性
• 在路由器R3上配置区域策略防火墙ZPF
• 使用ping、telnet和浏览器验证ZPF防火墙功能
2.拓扑
图 33
3.地址规划
设备 |
接口 |
地址 |
R0 |
Fa 0/0 |
172.16.30.2/24 |
S 0/1/0 |
172.18.30.1/24 |
|
R1 |
S 0/1/0 |
172.18.30.2/24 |
S 0/1/1 |
172.19.30.2/24 |
|
R2 |
S 0/1/0 |
172.19.30.3/24 |
Fa 0/0 |
172.20.30.3/24 |
|
Server |
/ |
172.16.30.1/24 |
PC 0 |
/ |
172.19.30.1/24 |
4.实验步骤
第一步 创建一个内部区域。
用 zone security创建区域IN-ZONE
R3(config)# zone security IN-ZONE
第二步 创建外部区域.用 zone security创建区域OUT-ZONE
R3(config-sec-zone)# zone security OUT-ZONE
R3(config-sec-zone)# exit
定义一个流量级别和访问列表
第一步 创建一个用来定义内部流量的ACL
用access-list创建扩展ACL101来在IP层面允许所有从源网络地址访问到任何其他地址。
R3(config)# access-list 101 permit ip 172.19.30.0 0.0.0.255 any
第二步 创建一个涉及内部流量ACL的class map
用 class map type inspect (match all)来创建一个叫 class map type inspect 的class map,用match access-group匹配ACL
R3(config)# class-map type inspect match-all IN-NET-CLASS-MAP
R3(config-cmap)# match access-group 101
R3(config-cmap)# exit
指定防火墙策略
第一步 创建一个策略图来确定对匹配的流量干啥。
用 policy-map type inspect创建策略图IN-2-OUT-PMAP
R3(config)# policy-map type inspect IN-2-OUT-PMAP
第二步 定义一个检测级别类型和参考策略图。
R3(config-pmap)# class type inspect IN-NET-CLASS-MAP
第三步 定义检测策略图
Inspect这个指令调用基于上下文的访问控制(其他还有通过和丢弃)
R3(config-pmap-c)# inspect
输exit两次退出config-pmap-c模式,回到全局模式
R3(config-pmap-c)# exit
R3(config-pmap)# exit
应用防火墙策略
第一步 创建一对区域
用zone-pair security创建一个区域对IN-2-OUT-ZPAIR对任务一中创建的区域进行源和目的区域定义
R3(config)# zone-pair security IN-2-OUT-ZPAIR source IN-ZONE destination OUT-ZONE
第二步 定义策略图来控制两个区域的流量。
用 service-policy type inspect把策略图和关联活动附加到区域对,参考之前创建的策略图IN-2-OUT-PMAP.
R3(config-sec-zone-pair)# service-policy type inspect IN-2-OUT-PMAP
R3(config-sec-zone-pair)# exit R3(config)#
第三步 把端口调用到合适的安全区域。
在端口的全局模式用zone-member security来把F0/1调用到IN-ZONE ,把S0/0/1调用到OUT-ZONE
R3(config)# interface fa0/1
R3(config-if)# zone-member security IN-ZONE
R3(config-if)# exit
第四步 写入启动配置
R3(config)# interface s0/1/0
R3(config-if)# zone-member security OUT-ZONE
R3(config-if)# exit
5.测试结果
测试从IN-ZONE到OUT-ZONE的防火墙功能,验证内配置ZPF后内部能访问外部
第一步 PC_C ping PC-A服务器
从PC-C能成功ping到PC-A
图 34
第二步 从PC-Ctelnet到R2 的s0/1/0口
从PC-C telnet到R2输密码123,能telnet到。顺便在R3输show policy-map type inspect zone-pair sessions看完成情况。
图 35
留意源和目的IP和端口号。
第三步 关掉PC-C的Telnet
第四步 PC-C打开网页登到PC-A的服务器
登网页同时在R3输show policy-map type inspect zone-pair sessions看完成情况
注意:如果超时,就再登一次,再去R3看完成情况。
图 36
第五步 关掉PC-C的浏览器。
第六步 测试外部区域到内部区域的防火墙功能
验证配置ZPF之后外部无法访问内部。
第一步 PC-A ping PC-C(ping 不通)
图 37
第二步 R2 ping PC-C也ping不通
图 38
第三步 查看结果
图 39
七、 实验总结
由于网络安全的作业配置限制策略会相会影响,因此此次做了6个实验。作业量还是很大的。而且由于一些配置命令思科PT上做不了,所以自反ACL、动态ACL、基于时间的ACL都是在GNS3上做的。做配置过程,全程使用静态路由,因为限制策略会对动态路由有影响。
通过本次实验。让我更加深入各种ACL技术应用,以下是对ACL的总结。
1.问控制列表(ACL):应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包需要拒绝。
2.ACL的工作原理:读取第三层及第四层包头中的信息;根据预先定义好的规则对包进行过滤。
3.访问控制列表的作用:提供网络访问的基本安全手段;可用于QoS,控制数据流量;控制通信量
4.访问控制列表工作原理:实现访问控制列表的核心技术是包过滤
5.通过分析IP数据包包头信息,进行判断;利用4个元素定义规则:源地址;目的地址;源端口;目的端口;访问控制留别入与出:
6.使用命令ip access-group将ACL应用到某一个接口上:
Router(config-if)#ip access-group access-list-number {in| out}
7.在接口的一个方向上,只能应用一个access-list
8.Deny和Permit命令:
Router(config)#access-list access-list-number {permit |deny} {test conditions}
permit:允许数据报通过应用了访问控制列表的接口;deny:拒绝数据包通过
使用通配符any和host通配符any可代替0.0.0.0 255.255.255.255
9.Host表示检查IP地址的所有位-访问控制列表的种类:
10.基本类型的访问控制列表:标准访问控制列表;扩展访问控制列表
11.其他种类的访问控制列表:基于MAC地址的访问控制列表;基于时间的访问控制列表
根据数据包的源IP地址来允许或拒绝数据包;访问控制列表号从1到99
12.只使用源地址进行过滤,表明是允许还是拒绝
13.标准访问控制列表的配置
第一步,使用access-list命令创建访问控制列表:
Router(config)#access-list access-list-number {permit |deny} source [source-wildcard] [log]
第二步,使用ip access-group命令把访问控制列表应用到某接口
Router(config-if)#ip access-group access-list-number {in| out}
14.扩展访问控制列表:
基于源和目的地址、传输层协议和应用端口号进行过滤;每个调都必须匹配,才会施加允许或拒绝条件;使用扩展ACL可实现更加精确的流量控制;访问控制列表号从100到199
使用更多的信息描述数据包,表明是允许还是拒绝
15.扩展访问控制列表的配置
第一步,使用access-list命令创建扩展访问控制列表
Router(config)#access-list access-list-number {permit| deny} protocol [source source-wildcard destinationdestination-wildcard] [operator port] [established] [log]
第二步,使用ip access-group命令将扩展访问控制列表应用到某接口
Router(config-if)#ip access-group access-list-number {in| out}
16.命名的访问控制列表:
标准ACL和扩展ACL中可以使用一个字母数字组合的字符串(名字)代替来表示ACL的表号
命名IP访问列表允许从指定的访问列表删除单个条目
如果天假一个条目到列表中,那么该条目被添加到列表末尾
不能以同一个名字命名多个ACL
在命名的访问控制列表下,permit和deny命令的语法格式与前述有所不同
-配置命名的访问控制列表:
第一步,创建命名访问控制列表:
Router(config)#ip access-list extended ACL-name
第二步,指定一个或多个permit及deny条件
Router(config-ext-nacl)#{permit | deny} protocolip-address {eq | gt | lt | neq}portnumber
第三步,应用到接口的出入站方向
Router(config-if)#ip access-group ACL-name {in| out
17.查看访问控制列表:
查看接口详细信息:
Router#show ip interface type slot/port
查看访问列表:
Router#show access-list
18.一些常见的端口号及其用途如下:
TCP 21端口:FTP 文件传输服务
TCP 23端口:TELNET 终端仿真服务
TCP 25端口:SMTP 简单邮件传输服务
UDP 53端口:DNS 域名解析服务
TCP 80端口:HTTP 超文本传输服务
TCP 110端口:POP3 “邮局协议版本3”使用的端口
TCP 443端口:HTTPS 加密的超文本传输服务
TCP 1521端口:Oracle数据库服务