实验三十二 扩展 ACL 实验 一 实验目的 1 了解什么是扩展的 ACL; 2 了解标准和扩展 ACL 的区别 ; 3 了解扩展 ACL 不同的实现方法 ; 二 应用环境标准 ACL 只能限制源 IP 地址, 而扩展 ACL 的限制权限就很广泛, 包括源 IP 目的 IP 服务类型等 三 实验设备 1 DCRS-7604( 或 6804 或 5526S) 交换机 1 台 2 DCS-3926S 交换机 1 台 3 PC 机 2 台 4 Console 线 1-2 根 5 直通网线若干四 实验拓扑 五 实验要求 目的 : 禁止 PC2 telnet 交换机 A 在交换机 A 和交换机 B 上分别划分两个基于端口的 VLAN:VLAN100,VLAN200 交换机 A 端口 1 设置成 Trnuk 口 : VLAN IP Mask 100 192.168.100.1 255.255.255.0 200 192.168.200.1 255.255.255.0
Trunk 口 1/1 和 1/2 交换机 B 的配置如下 : VLAN 端口成员 100 1~8 200 9~16 Trunk 口 24 PC1-PC4 的网络设置为 : 设备 IP 地址 gateway Mask PC1 192.168.100.11 192.168.100.1 255.255.255.0 PC2 192.168.200.22 192.168.200.1 255.255.255.0 验证 : 1 配置 ACL 之前,PC1 和 PC2 都可以 telnet 交换机 A 2 配置 ACL 后,PC1 可以 telnet 交换机 A, 而 PC2 不可以 telnet 交换机 A 若实验结果和理论相符, 则本实验完成 六 实验步骤第一步 : 交换机全部恢复出厂设置, 在交换机中创建 vlan100 和 vlan200, 并添加端口 交换机 B: switchb(config)#vlan 100 switchb(config-vlan100)# switchb(config-vlan100)#switchport interface ethernet 0/0/1-8 switchb(config-vlan100)#exit switchb(config)#vlan 200 switchb(config-vlan200)#switchport interface ethernet 0/0/9-16 switchb(config-vlan200)#exit switchb(config)# 第二步 : 设置交换机 trunk 端口交换机 B: switchb(config)#interface ethernet 0/0/24 switchb(config-ethernet0/0/24)#switchport mode trunk Set the port Ethernet0/0/24 mode TRUNK successfully switchb(config-ethernet0/0/24)#switchport trunk allowed vlan all set the port Ethernet0/0/24 allowed vlan successfully switchb(config-ethernet0/0/24)#exit switchb(config)# 交换机 A: switcha(config)#vlan 100 switcha(config-vlan100)#exit switcha(config)#vlan 200 switcha(config-vlan200)#exit switcha(config)#interface ethernet 1/1 switcha(config-ethernet1/1)#switchport mode trunk Set the port Ethernet1/1 mode TRUNK successfully
switcha(config-ethernet1/1)#switchport trunk allowed vlan all set the port Ethernet1/1 allowed vlan successfully switcha(config-ethernet1/1)#exit switcha(config)# 第三步 : 交换机 A 添加 vlan 地址 switcha(config)#int v 100 switcha(config-if-vlan100)#ip ad 192.168.100.1 255.255.255.0 switcha(config-if-vlan100)#no shut switcha(config-if-vlan100)#exit switcha(config)#int v 200 switcha(config-if-vlan200)#ip address 192.168.200.1 255.255.255.0 switcha(config-if-vlan200)#no shut switcha(config-if-vlan200)#exit 第四步 : 配置交换机 A 的 telnet 信息 switcha(config)#telnet-user admin password 0 admin switcha(config)# 第四步 : 不配置 ACL 验证实验 验证 PC1 和 PC2 之间是否可以 telnet 192.168.100.1 或者 192.168.200.1 第五步 : 配置 ACL switcha(config)#ip access-list extended test2 switcha(config-ext-nacl-test2)#deny tcp 192.168.200.0 0.0.0.255 any-destination d-port 23 拒绝 192.168.200.0/24 telnet 数据 switcha(config-ext-nacl-test2)# switcha(config)#firewall enable 配置访问控制列表功能开启 switcha(config)#firewall default permit 默认动作为全部允许通过 switcha(config)#interface ethernet 1/1 绑定 ACL 到各端口 switcha(config-ethernet1/1)#ip access-group test2 in 第六步 : 验证实验 PC 端口 telnet 结果 原因 PC1:192.168.100.11/24 0/0/1 192.168.100.1 通 PC2:192.168.200.11/24 0/0/9 192.168.200.1 不通 PC1: login:admin password:***** switcha>en switcha# switcha#exit switcha>exit 失去了跟主机的连接 PC2
C:\Documents and Settings\Administrator>telnet 192.168.200.1 正在连接到 192.168.200.1... 不能打开到主机的连接, 在端口 23: 连接失败 C:\Documents and Settings\Administrator> 七 注意事项和排错 1 端口可以成功绑定的 ACL 数目取决于已绑定的 ACL 的内容以及硬件资源限制, 如果因为硬件资源有限无法配置会提示用户相关信息 2 可以配置 ACL 拒绝某些 ICMP 报文通过以防止 冲击波 等病毒攻击 八 配置序列 switcha#show run Current configuration: hostname switcha telnet-user admin password 0 admin ip access-list extended test2 deny tcp 192.168.200.0 0.0.0.255 0.0.0.0 255.255.255.255 d-port 23 firewall enable Vlan 1 vlan 1 Vlan 100 vlan 100 Vlan 200 vlan 200 Interface Ethernet1/1 ip access-group test2 in switchport mode trunk Interface Ethernet1/2 Interface Ethernet1/28 interface Vlan100
interface vlan 100 ip address 192.168.100.1 255.255.255.0 interface Vlan200 interface vlan 200 ip address 192.168.200.1 255.255.255.0 Interface Ethernet0 switcha# 九 共同思考 1 第五步, 绑定 access-group 到端口的时候,in 和 out 参数各有什么含义? 2 能否通过 ACL 实现 A 可以访问 B, 但是 B 不可以访问 A? 十 课后练习配置 数字标准 IP 访问列表 完成同样的功能 十一 相关配置详解 ACL 配置任务序列 1. 配置 access-list (1) 配置数字标准 IP 访问列表 (2) 配置数字扩展 IP 访问列表 (3) 配置命名标准 IP 访问列表 a) 创建一个命名标准 IP 访问列表 b) 指定多条 permit 或 deny 规则表项 c) 退出访问表配置模式 (4) 配置命名扩展 IP 访问列表 a) 创建一个命名扩展 IP 访问列表 b) 指定多条 permit 或 deny 规则表项 c) 退出访问表配置模式 2. 配置包过滤功能 (1) 全局打开包过滤功能 (2) 配置默认动作 (default action) 3. 将 accessl-list 绑定到特定端口的特定方向 配置 access-list (1) 配置数字标准 IP 访问列表 全局配置模式
access-list <num> {deny permit} 创建一条数字标准 IP 访问列表, 如果已有此 {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} no access-list <num> 访问列表, 则增加一条规则 (rule) 表项 ; 本的 no 操作为删除一条数字标准 IP 访问列表 (2) 配置数字扩展 IP 访问列表 全局配置模式 access-list <num> {deny permit} icmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} 创建一条 icmp 数字扩展 IP 访问 {{<dipaddr> <dmask>} any-destination 规则 ; 如果此编号数字扩展访问 {host-destination <dipaddr>}} [<icmp-type> 列表不存在则创建此访问列表 [<icmp-code>]] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} igmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} 创建一条 igmp 数字扩展 IP 访问 {{<dipaddr> <dmask>} any-destination 规则 ; 如果此编号数字扩展访问 {host-destination <dipaddr>}} [<igmp-type>] 列表不存在则创建此访问列表 [precedence <prec>] [tos <tos>] access-list <num> {deny permit} tcp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} 创建一条 tcp 数字扩展 IP 访问规 [sport <sport>] {{<dipaddr> <dmask>} 则 ; 如果此编号数字扩展访问列 any-destination {host-destination <dipaddr>}} [dport 表不存在则创建此访问列表 <dport>] [ack fin psh rst syn urg] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} udp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} 创建一条 udp 数字扩展 IP 访问 [sport <sport>] {{<dipaddr> <dmask>} 规则 ; 如果此编号数字扩展访问 any-destination {host-destination <dipaddr>}} [dport 列表不存在则创建此访问列表 <dport>] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} {eigrp gre igrp ipinip ip <int>} {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} 创建一条匹配其他特定 IP 协议或所有 IP 协议的数字扩展 IP 访问规则 ; 如果此编号数字扩展访 any-destination {host-destination <dipaddr>}} 问列表不存在则创建此访问列 [precedence <prec>] [tos <tos>] 表 no access-list <num> 删除一条数字扩展 IP 访问列表 (3) 配置命名标准 IP 访问列表 a. 创建一个命名标准 IP 访问列表 全局配置模式 ip access standard <name> no ip access standard <name> 创建一条命名标准 IP 访问列表 ; 本的 no 操作为删除此命名标准 IP 访问列表 b. 指定多条 permit 或 deny 规则 命名标准 IP 访问列表配置模式
[no] {deny permit} {{<sipaddr> <smask >} any-source {host-source <sipaddr>}} 创建一条命名标准 IP 访问规则 (rule); 本的 no 操作为删除此命名标准 IP 访问规则 (rule) c. 退出命名标准 IP 访问列表配置模式 命名标准 IP 访问列表配置模式 Exit 退出命名标准 IP 访问列表配置模式 (4) 配置命名扩展 IP 访问列表 a. 创建一个命名扩展 IP 访问列表 全局配置模式 ip access extended <name> no ip access extended <name> 创建一条命名扩展 IP 访问列表 ; 本的 no 操作为删除此命名扩展 IP 访问列表 b. 指定多条 permit 或 deny 规则 命名扩展 IP 访问列表配置模式 [no] {deny permit} icmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination 创建一条 icmp 命名扩展 IP 访问规则 (rule); 本的 no 操作为删 <dipaddr>}} [<icmp-type> [<icmp-code>]] 除此命名扩展 IP 访问规则 (rule) [precedence <prec>] [tos <tos>] [no] {deny permit} igmp {{<sipaddr> <smask>} 创建一条 igmp 命名扩展 IP 访问 any-source {host-source <sipaddr>}} {{<dipaddr> 规则 (rule); 本的 no 操作为 <dmask>} any-destination {host-destination 删除此命名扩展 IP 访问规则 <dipaddr>}} [<igmp-type>] [precedence <prec>] [tos (rule) <tos>] [no] {deny permit} tcp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport 创建一条 tcp 命名扩展 IP 访问规 <sport>] {{<dipaddr> <dmask>} any-destination 则 (rule); 本的 no 操作为删 {host-destination <dipaddr>}} [dport <dport>] [ack 除此命名扩展 IP 访问规则 (rule) fin psh rst syn urg] [precedence <prec>] [tos <tos>] [no] {deny permit} udp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport 创建一条 udp 命名扩展 IP 访问规 <sport>] {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [dport <dport>] 则 (rule); 本的 no 操作为删除此命名扩展 IP 访问规则 (rule) [precedence <prec>] [tos <tos>] [no] {deny permit} {eigrp gre igrp ipinip ip 创建一条其他 IP 协议的命名扩展 <int>} {{<sipaddr> <smask>} any-source IP 访问规则 (rule); 本的 no {host-source <sipaddr>}} {{<dipaddr> <dmask>} 操作为删除此命名扩展 IP 访问规 any-destination {host-destination <dipaddr>}} 则 (rule) [precedence <prec>] [tos <tos>] c. 退出命名扩展 IP 访问列表配置模式
命名扩展 IP 访问列表配置模式 Exit 退出命名扩展 IP 访问列表配置模式 配置包过滤功能 (1) 全局打开包过滤功能全局配置模式 firewall enable firewall disable 全局打开包过滤功能 全局关闭包过滤功能 (2) 配置默认动作 (default action) 全局配置模式 firewall default permit 设置默认动作为 permit firewall default deny 设置默认动作为 deny 将 accessl-list 绑定到特定端口的特定方向 物理接口配置模式 ip access-group <name> {in out } no ip access-group <name> {in out} 在端口的某个方向上应用一条 access-list; 本命 令的 no 操作为删除绑定在端口上的 access-list access-list(extended) :access-list <num> {deny permit} icmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [<icmp-type> [<icmp-code>]] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} igmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [<igmp-type>] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} tcp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport <sport>] {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [dport <dport>] [ack fin psh rst syn urg] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} udp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport <sport>] {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [dport <dport>] [precedence <prec>] [tos <tos>] access-list <num> {deny permit} {eigrp gre igrp ipinip ip <int>} {{<sipaddr>
<smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [precedence <prec>] [tos <tos>] no access-list <num> 功能 : 创建一条匹配特定 IP 协议或所有 IP 协议的数字扩展 IP 访问规则 ; 如果此编号数字扩展访问列表不存在, 则创建此访问列表 ; 本的 no 操作为删除一条数字扩展 IP 访问列表 参数 : <num> 为访问表标号,100-199;<sIpAddr> 为源 IP 地址, 格式为点分十进制 ;<smask > 为源 IP 的反掩码, 格式为点分十进制 ;<dipaddr> 为目的 IP 地址, 格式为点分十进制 ; <dmask> 为目的 IP 的反掩码, 格式为点分十进制, 关心的位置 0, 忽略的位置 1;<igmp-type>, igmp 的类型 ;<icmp-type>,icmp 的类型 ;<icmp-code>,icmp 的协议编号 ;<prec>,ip 优先级,0-7;<tos>,tos 值,0-15;<sPort>, 源端口号,0-65535;<dPort>, 目的端口号,0-65535 模式 : 全局配置模式缺省情况 : 没有配置任何的访问列表 使用指南 : 当用户第一次指定特定 <num> 时, 创建此编号的 ACL, 之后在此 ACL 中添加表项 举例 : 创建编号为 110 的数字扩展访问列表 拒绝 icmp 报文通过, 允许目的地址为 192.168.0.1 目的端口为 32 的 udp 包通过 Switch(Config)#access-list 110 deny icmp any-source any-destination Switch(Config)#access-list 110 permit udp any-source host-destination 192.168.0.1 dport 32 access-list(standard) :access-list <num> {deny permit} {{<sipaddr> <smask >} any-source {host-source <sipaddr>}} no access-list <num> 功能 : 创建一条数字标准 IP 访问列表, 如果已有此访问列表, 则增加一条 rule 表项 ; 本的 no 操作为删除一条数字标准 IP 访问列表 参数 :<num> 为访问表标号,1-99;<sIpAddr> 为源 IP 地址, 格式为点分十进制 ;<smask > 为源 IP 的反掩码, 格式为点分十进制 模式 : 全局配置模式缺省情况 : 没有配置任何的访问列表 使用指南 : 当用户第一次指定特定 <num> 时, 创建此编号的 ACL, 之后在此 ACL 中添加表项 举例 : 创建一条编号为 20 的数字标准 IP 访问列表, 允许源地址为 10.1.1.0/24 的数据包通过, 拒绝其余源地址为 10.1.1.0/16 的数据包通过 Switch(Config)#access-list 20 permit 10.1.1.0 0.0.0.255 Switch(Config)#access-list 20 deny 10.1.1.0 0.0.255.255 firewall :firewall { enable disable} 功能 : 允许防火墙起作用或禁止防火墙起作用 参数 :enable 表示允许防火墙起作用 ;disable 表示禁止防火墙起作用 缺省情况 : 缺省为防火墙不起作用
模式 : 全局配置模式使用指南 : 在允许和禁止防火墙时, 都可以设置访问规则 但只有在防火墙起作用时才可以将规则应用至特定端口的特定方向上 使防火墙不起作用后将删除端口上绑定的所有 ACL 举例 : 允许防火墙起作用 Switch(Config)#firewall enable firewall default :firewall default {permit deny} 功能 : 设置防火墙默认动作 参数 : permit 表示允许数据包通过 ;deny 表示拒绝数据包通过 模式 : 全局配置模式缺省情况 : 缺省动作为 permit 使用指南 : 此只影响端口入口方向的 IP 包, 其余情况下数据包均可通过交换机 举例 : 设置防火墙默认动作为拒绝数据包通过 Switch(Config)#firewall default deny ip access extended :ip access extended <name> no ip access extended <name> 功能 : 创建一条命名扩展 IP 访问列表 ; 本的 no 操作为删除此命名扩展 IP 访问列表 ( 包含所有表项 ) 参数 :<name> 为访问表标名, 字符串长度为 1-8, 不允许为纯数字序列 模式 : 全局配置模式缺省情况 : 没有配置任何的访问列表 使用指南 : 第一次以调用此后, 只是创建一个空的命名访问列表, 其中不包含任何表项 举例 : 创建一条名为 tcpflow 的命名扩展 IP 访问列表 Switch(Config)#ip access-list extended tcpflow ip access standard :ip access standard <name> no ip access standard <name> 功能 : 创建一条命名标准 IP 访问列表 ; 本的 no 操作为删除此命名标准 IP 访问列表 ( 包含所有表项 ) 参数 :<name> 为访问表标名, 字符串长度为 1-8 模式 : 全局配置模式缺省情况 : 没有配置任何的访问列表 使用指南 : 第一次以调用此后, 只是创建一个空的命名访问列表, 其中不包含任何表项 举例 : 创建一条名为 ipflow 的命名标准 IP 访问列表 Switch(Config)#ip access-list standard ipflow
ip access-group :ip access-group <name> { in out } no ip access-group <name> { in out } 功能 : 在端口的入口方向上应用一条 access-list; 本的 no 操作为删除绑定在端口上的 access-list 参数 :<name> 为命名访问表的名字, 字符串长度为 1-8 模式 : 物理接口配置模式缺省情况 : 没有绑定任何 ACL 使用指南 : 一个端口只可以绑定一条入口规则, 目前不支持在出口方向应用 Access-list 举例 : 将名为 aaa 的访问列表绑定到端口的入口方向上 Switch(Config-Ethernet1/1)#ip access-group aaa in permit deny(extended) :[no] {deny permit} icmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [<icmp-type> [<icmp-code>]] [precedence <prec>] [tos <tos>] [no] {deny permit} igmp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [<igmp-type>] [precedence <prec>] [tos <tos>] [no] {deny permit} tcp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport <sport>] {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [dport <dport>] [ack fin psh rst syn urg] [precedence <prec>] [tos <tos>] [no] {deny permit} udp {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} [sport <sport>] {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [dport <dport>] [precedence <prec>] [tos <tos>] [no] {deny permit} {eigrp gre igrp ipinip ip <int>} {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} {{<dipaddr> <dmask>} any-destination {host-destination <dipaddr>}} [precedence <prec>] [tos <tos>] 功能 : 创建或删除一条匹配特定 IP 协议或所有 IP 协议的命名扩展 IP 访问规则 参数 :<sipaddr> 为源 IP 地址, 格式为点分十进制 ;<smask> 为源 IP 的反掩码, 格式为点分十进制 ;<dipaddr> 为目的 IP 地址, 格式为点分十进制 ;<dmask> 为目的 IP 的反掩码, 格式为点分十进制, 关心的位置 0, 忽略的位置 1;<igmp-type>,igmp 的类型,0-255; <icmp-type>,icmp 的类型,0-255;<icmp-code>,icmp 的协议编号,0-255;<prec>,IP 优先级,0-7;<tos>,tos 值,0-15;<sPort>, 源端口号,0-65535;<dPort>, 目的端口号, 0-65535 模式 : 命名扩展 IP 访问列表配置模式缺省情况 : 没有配置任何的访问列表 举例 : 创建名为 udpflow 的扩展访问列表 拒绝 igmp 报文通过, 允许目的地址为 192.168.0.1 目的端口为 32 的 udp 包通过 Switch(Config)#ip access-list extended udpflow Switch(Config-Ext-Nacl-udpFlow)#access-list 110 deny igmp any-source any-destination Switch(Config-Ext-Nacl-udpFlow)#access-list 110 permit udp any-source host-destination
192.168.0.1 dport 32 permit deny(standard) :{deny permit} {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} no {deny permit} {{<sipaddr> <smask>} any-source {host-source <sipaddr>}} 功能 : 创建一条命名标准 IP 访问规则 (rule); 本的 no 操作为删除此命名标准 IP 访问规则 (rule) 参数 : <sipaddr> 为源 IP 地址, 格式为点分十进制 ;<smask> 为源 IP 的反掩码, 格式为点分十进制 模式 : 命名标准 Ip 访问列表配置模式缺省情况 : 没有配置任何的访问列表 举例 : 允许源地址为 10.1.1.0/24 的数据包通过, 拒绝其余源地址为 10.1.1.0/16 的数据包通过 Switch(Config)# ip access-list standard ipflow Switch(Config-Std-Nacl-ipFlow)# permit 10.1.1.0 0.0.0.255 Switch(Config-Std-Nacl-ipFlow)# deny 10.1.1.0 0.0.255.255