第5章-Cisco路由器ACL
第5章-Cisco路由器ACL
5.2.5 Cisco ACL的类型
Cisco ACL有两种:标准ACL和扩展ACL。
- 标准ACL只根据源IP地址过滤分组。
- 扩展ACL根据多种属性过滤IP分组
- 源和目标IP地址
- 源和目标TCP/UDP端口
- 协议类型(IP、ICMP、UDP、TCP或协议号)
5.2.7 编号ACL和命名ACL
编号ACL适用于在有较多类似数据流的小型网络中定义ACL类型。然而,无法通过编号得知ACL的用途,因此从Cisco IOS 11.2版起,可使用名称来标识Cisco ACL。
下面总结了编号ACL和命名ACL的规则:
-
编号ACL:根据ACL是标准ACL还是扩展ACL指定编号。
- 199和13001399:标准IP ACL
- 100199和20002699:扩展IP ACL。
-
命名ACL:给ACL指定名称:
- 名称中可以包含字母数字字符
- 建议名称以大写字母书写;
- 名称中不能包含空格或标点,而且必须以字母开头。
5.3 配置标准ACL
每条ACL的末尾都有一条隐式的deny all
语句
标准ACL的逻辑,示例5.3演示了如何检查进入fa0/0的分组的源地址。
示例5.3 ACL 2
access-list 2 deny 192.168.10.1
access-list 2 permit 192.168.10.0 0.0.0.255
access-list 2 deny 192.168.0.0 0.0.255.255
access-list 2 permit 192.0.0.0 0.255.255.255
标准ACL命令的完整语法如下:
Router(config)# access-list access-list-number deny permit remark source [source-wildcard] [log]
例如,要创建一个编号为10的ACL并使其允许来自网络192.168.10.0/24的数据流,可这样做:
R1(config)# access-list 10 permit 192.168.10.0
删除ACL
R1# show access-list
R1# conf t
R1(config)# no access-list 10
R1(config)# exit
R1# show access-list
使用通配符掩码
R1(config)# access-list 10 permit 192.168.10.0 0.0.3.255
通配符掩码关键字
-
host 可替代通配符掩码0.0.0.0,表示只匹配一台主机
-
any 可替代IP地址0.0.0.0和255.255.255.255掩码,表示可接受任何地址。
例如以下语句:
R1(config)# access-list 1 permit 192.168.10.10 0.0.0.0
可将其简化为:
R1(config)# access-list 1 permit host 192.168.10.10
R1(config)# access-list 1 permit 0.0.0.0 255.255.255.255
可将其简化为:
R1(config)# access-list 1 permit any
5.3.4 将标准ACL应用于接口
要让访问列表生效,必须将其应用于接口。
- 配置标准ACL的步骤。
配置ACL后,可使用下面的命令将其关联到接口:
Router(config-if)# ip access-group {access-list-number | access-list-name} {in | out }
要删除ACL,首先在接口配置模式下执行命令no ip access-group
,然后在全局配置模式下执行命令no access-list
将ACL删除。
在路由器中配置并应用标准编号ACL的步骤和语法如下:
第1步 使用全局配置命令access-list
创建一个标准IP ACL:
R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255
R1(config)# access-list 1 remark permit hosts from the Engineering Building
第2步 使用命令interface
选择要将ACL应用于它的接口:
R1(config)# interface F0/0
第3步 使用接口配置命令 ip access-group
将ACL应用于接口:
R1(config-if)# ip access-group 1 out
- 使用ACL控制VTY访问
标准访问列表和扩展访问列表适用于穿越路由器的分组,而不会阻止路由器生成的分组。默认情况下,出站Telnet扩展ACL不会阻止路由器发起的Telnet会话。
过滤Telnet数据流通常被认为是一种扩展IP ACL功能,因为它过滤高层协议。由于是使用命令access-class
根据源地址过滤进出的Telnet会话,并将过滤应用于VTY线路,因此可使用标准ACL语句来控制VTY访问。
示例5.10 使用标准ACL控制VTY访问
R1(config)# access-list 21 permit 192.168.10.0 0.0.0.255
R1(config)# access-list 21 permit 192.168.11.0 0.0.0.255
R1(config)# access-list 21 deny any
R1(config)# line vty 0 4
R1(config-line)# login
R1(config-line)# password secret
R1(config-line)# access-list 21 in
5.3.5 编辑编号ACL
强烈建议在文本编辑器中创建ACL,这让您能够创建或编辑ACL,然后将其复制粘贴到路由器中。
5.3.6 创建标准命名ACL
命名ACL让人更容易明白其作用,例如,可将拒绝FTP的ACL命名为NO_FTP。
创建标准命名ACL的步骤如下所述。
第1步 进入全局配置模式,使用命令ip access-list standard name
创建一个命名ACL。ACL名称由字母数字组成且必须是唯一的
Router(config)# ip access-list [standard | extended] name
第2步 在命名ACL配置模式下,使用permit
或deny
语句指定一个或多个条件,用于确定就转发还是丢弃分组。
Router(config-std-nacl)# sequence-number [permit | deny | remark] {source [source-wildcard]} [log]
第3步 使用命令ip access-group
将命名ACL应用于接口:
Router(conig-if)# ip access-group name [in | out]
示例5.13 命名ACL示例
R1(config)# ip access-list standard NO_ACCESS
R1(config-std-nacl)# deny host 192.168.11.10
R1(config-std-nacl)# permit 192.168.11.0 0.0.0.255
R1(config-std-nacl)# interface Fa0/0
R1(config-if)# ip access-list NO_ACCESS out
5.3.7 监视和查看ACL
R1# show access-lists {access-list number | name}
5.3.8 编辑命名ACL
与编号ACL相比,命名ACL的一大优点是易于编辑。从Cisco IOS软件12.3版起,可编辑命名IP ACL中的各条语句,还可使用序列号将语句插入命名ACL的任何位置。
示例5.15 在命名ACL中请加语句
R1# show access-lists
Standard IP access list WEBDRVER
10 permit 192.168.10.11
20 deny 192.168.10.0, wildcard bits 0.0.0.255
30 deny 192.168.11.0, wildcard bits 0.0.0.255
R1# conf t
R1(config)# ip access-lsit standard WEBSERVER
R1(config-std-nacl)# 15 permit 192.168.11.10
R1(config-std-nacl)# end
R1# show access-lists
Standard IP access list WEBDRVER
10 permit 192.168.10.11
15 permit 192.168.11.10
20 deny 192.168.10.0, wildcard bits 0.0.0.255
30 deny 192.168.11.0, wildcard bits 0.0.0.255
5.4 配置扩展ACL
示例5.16 扩展ACL示例
! Using port numbers:
access-list 114 permit tcp 192.168.20.0 0.0.0.255 any eq 23
access-list 114 permit tcp 192.168.20.0 0.0.0.255 any eq 21
! Using keywords:
access-list 114 permit tcp 192.168.20.0 0.0.0.255 any eq telnet
access-list 114 permit tcp 192.168.20.0 0.0.0.255 any eq ftp
5.4.2 配置扩展ACL
示例5.18 配置扩展ACL
R1(config)# access-list 103 permit tcp 192.168.10.0 0.0.0.255 any eq 80
R1(config)# access-list 103 permit tcp 192.168.10.0 0.0.0.255 any eq 443
R1(config)# access-list 104 permit tcp any 192.168.10.0 0.0.0.255 established
对示例5.18中的access-list
语句总结如下:
- ACL 103允许发送到端口80和443的请求;
- ACL 104允许HTTP和HTTPS应答。
5.4.3 将扩展ACL应用于接口
示例5.19 将扩展ACL应用于接口
R1(config)# interface s0/0/0
R1(config-if)# ip access-group 103 out
R1(config-if)# ip access-group 104 in
5.4.4 创建命名扩展ACL
创建命名扩展ACL的方式基本上与创建命名标准ACL相同。
示例5.22 配置命名扩展ACL
R1(config)# ip access-list extended SURFING
R1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 80
R1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 443
R1(config)# access-list extended BROWSING
R1(config-ext-nacl)# permit tcp any 192.168.10.0 0.0.0.255 established