第5章-Cisco路由器ACL

发布时间 2023-07-18 11:56:54作者: Evan-whc

第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的规则:

  1. 编号ACL:根据ACL是标准ACL还是扩展ACL指定编号。

    • 199和13001399:标准IP ACL
    • 100199和20002699:扩展IP ACL。
  2. 命名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应用于接口

要让访问列表生效,必须将其应用于接口。

  1. 配置标准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

  1. 使用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配置模式下,使用permitdeny语句指定一个或多个条件,用于确定就转发还是丢弃分组。
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