1、第8章 访问控制列表配置和使用 第8章 访问控制列表配置和使用 8.1 访问控制列表访问控制列表(ACL)概述概述 8.2 ACL配置配置 8.3 使用命名访问控制列表使用命名访问控制列表 第8章 访问控制列表配置和使用 8.1 访问控制列表访问控制列表(ACL)概述概述 8.1.1 ACL的基本概念的基本概念访问控制列表(Access Control List,ACL)是应用到路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收,哪些数据包需要拒绝。至于数据包是被接收还是被拒绝,可以由特定指示条件,如源地址、目的地址和端口号等来决定。ACL的定义是基于每一种协议的(如IP、IP
2、X等),即如果想控制某一种协议的通信数据流,就必须要对路由器接口的这种协议定义单独的ACL。若将ACL应用于路由器的某个接口的输入(或输出)流量,那么通过该接口的输入(或输出)通信流量都要按照ACL指定的条件接受检测。第8章 访问控制列表配置和使用 ACL包括标准访问控制列表(Standard ACL)、扩展访问控制列表(Extended ACL)。(1)标准访问控制列表。当要过滤来自某一网络的所有通信流量,或者允许来自某一特定网络的所有通信流量,或者想要拒绝某一协议簇的所有通信流量时,可以使用标准访问控制列表来实现这一目标。标准访问控制列表检查路由的数据包的源地址,从而允许或拒绝基于网络、子
3、网或主机地址的所有通信流量通过路由器。第8章 访问控制列表配置和使用(2)扩展访问控制列表。扩展访问控制列表既检查数据包的源地址,也检查数据包的目的地址,还可以检查数据包的特定协议类型、端口号等。扩展访问控制列表更具有灵活性和可扩充性,例如:可以对同一地址允许使用某些协议的通信流量通过,而拒绝使用其他协议的通信流量通过。第8章 访问控制列表配置和使用 总之,通过灵活地设置访问控制列表,ACL可以作为一种网络控制的有力工具,可以用来:(1)限制网络流量、提高网络性能。如ACL可以根据数据包的协议,指定某种类型的数据包具有更高的优先级,同等情况下可优先被路由器处理。(2)提供对通信流量的控制手段。
4、如ACL可以限定或简化路由选择更新信息的长度,这种限定往往用来限制通过路由器的某一网段的通信流量。(3)提供网络访问的基本安全手段。如ACL允许某一主机访问某网络,而阻止另一主机访问同样的网络。第8章 访问控制列表配置和使用 8.1.2 ACL的工作原理的工作原理一个ACL是一组判断语句的集合,它可以应用于路由器的某个接口,从而可以对入站接口的数据包、通过路由器进行中继的数据包或从出站接口送出路由器的数据包进行控制。当一个数据包到达一个接口时,如果该接口应用了某一个访问控制列表,则需要与访问控制列表中的条件判断语句进行匹配。访问控制列表中的条件判断语句按照逻辑次序顺序执行。如果一个数据包的报头
5、跟某个条件判断语句相匹配,该数据包就忽略剩下的条件判断语句,即比较过程结束。如果符合判断条件,数据包要么被允许通过,要么被拒绝通过。如图8.1所示是ACL对数据包的测试过程。第8章 访问控制列表配置和使用 图8.1 数据包的ACL匹配性检查 匹配?匹配?匹配?拒绝拒绝拒绝拒绝允许允许允许到达接口的数据包目的接口YYNYNYN(隐含的拒绝)Y数据包垃圾桶Y第8章 访问控制列表配置和使用 8.2 ACL 配配 置置 8.2.1 ACL配置命令配置命令访问控制列表的配置一般分为两个步骤:(1)在全局配置状态下,定义访问控制列表ACL:Router(config)#access-list deny|p
6、ermittest-condition上面的全局描述语句定义了一个访问控制列表并通过标识号来识别。第8章 访问控制列表配置和使用(2)使用access-group命令把该控制访问列表应用到某一接口上:Router(config-if)#protocolaccess-group ACL可以被分配到一个或多个接口,根据配置条件实现入站通信流量或出站通信流量的过滤。对于每个接口上的每个协议在每个方向上只能有一个访问控制列表。第8章 访问控制列表配置和使用 下面介绍标准ACL、扩展ACL以及命名ACL的具体配置命令:(1)在全局配置命令模式下定义标准访问控制列表的语法格式如下:Router(confi
7、g)#access-list deny|permit source-wildcard log其中,是访问控制列表的标识号,不同协议标准访问控制列表的标识号范围不同。Cisco路由器中规定IP的标准访问控制列表标识号范围为199,AppleTalk标准访问控制列表标识号范围为600699,IPX的标准访问控制列表标识号范围为800899。第8章 访问控制列表配置和使用 在一个路由器中定义针对某个协议的标准访问控制列表时,可以在指定范围内任意选择一个标识号。针对一个标识号可以定义一系列访问控制策略,即可以用一系列access-list针对同一标识号定义一组策略,如果将该标识号对应的一组策略应用于路
8、由器,则路由器从最先定义的条件开始依次检查,检查过程如图8.1所示。第8章 访问控制列表配置和使用(2)在全局配置命令模式下定义扩展访问控制列表的语法格式如下:Router(config)#access-list deny|permit source-wildcard destination-wildcard operator operandestablished log其中,扩展访问控制列表标识号的范围,IP为100199,IPX为900999。表示协议类型,例如IP、TCP、UDP和ICMP等。source-wildcard destination-wildcard表示源地址、目的地址及相
9、应的通配符。operator operand表示对端口号的限制,operator即操作符,可以是lt、gt、eq和neq,分别表示小于、大于、等于和不等于;operand即操作数,可以是任一端口号,如80、23等。established表示如果数据包使用的是已建连接,便可允许TCP信息量通过。第8章 访问控制列表配置和使用(3)用access-group 命令将定义过的ACL应用到某个接口的语法格式如下:Router(config-if)#ip access-group in|out该命令是将定义的针对IP协议的ACL应用于某个接口来控制IP协议通信的命令,也可以针对IPX协议。access-
10、list-number|name是用ACL定义命令建立的,它可以用标识号或名称来表示。in表示在路由器中对进入该接口的数据包进行检查,out表示对从该接口送出的数据包进行检查。第8章 访问控制列表配置和使用 8.2.2 通配符掩码及使用通配符掩码及使用在设置deny或permit的测试条件时,通配符掩码(Wildcard Mask)的设置是非常重要的。通配符掩码是一个32比特位的数字字符串,它被用点号分成4个8位组,每个8位组包含8比特。通配符与相应的IP地址位一一对应。在通配符掩码位中,0表示“检查相应的位”,1表示“不检查相应的位”,即路由器将检查与通配符中的“0”对应的地址位,对于通配符
11、中“1”位置对应的地址位将忽略不检查。通配符掩码与IP地址是成对出现的,通配符掩码与子网掩码的工作原理是不同的。第8章 访问控制列表配置和使用 在IP子网掩码中,数字1和0用来决定是网络、子网,还是相应的主机的IP地址,如表示172.16.0.0这个网段时,使用的通配符掩码应为0.0.255.255。在通配符掩码中,可以用255.255.255.255表示所有IP地址,因为全为1说明所有32位都不检查相应的位,这时可以用any来取代,就相当于输入网络地址0.0.0.0和通配符255.255.255.255。而0.0.0.0的通配符掩码表示所有32位都要进行匹配,这样只表示一个IP地址,通配符可
12、以用host表示,就相当于输入一个特定的主机号和0.0.0.0。因此,在访问控制列表中,可以选择其中一种表示方法来说明网络、子网或主机。第8章 访问控制列表配置和使用 例如,假定希望允许从源地址198.78.46.8来的报文,则使用标准的访问控制列表语句如下:access-list 1 permit 198.78.46.8 0.0.0.0 如果采用关键字host,则该语句也可以用下面的语句来代替:access-list 1 permithost 198.78.46.8 也就是说,host是0.0.0.0通配符屏蔽码的简写。第8章 访问控制列表配置和使用 假定要拒绝从源地址198.78.46.8
13、来的报文,并且要允许从其他源地址来的报文,标准的IP访问控制列表可以使用下面的语句达到这个目的:access-list 1 deny host 198.78.46.8access-list 1 permit 0.0.0.0 255.255.255.255该语句也可以用下面的语句来代替:access-list 1 deny host 198.78.46.8access-list 1 permit any 第8章 访问控制列表配置和使用 8.2.3 实验实验 标准标准ACL的设置及使用的设置及使用1实验要求(1)熟悉路由器ACL的配置命令,建立标准的IP访问列表。(2)设置ACL实现不同过滤策略。
14、2实验设备(1)计算机4台。(2)交换机2台。(3)路由器1台。(4)双绞线若干。第8章 访问控制列表配置和使用 3实验过程和主要步骤(1)按照图8.2所示连接网络。按照表8-1的内容,填写PC机的网络连接参数。图图8.2 ACL实验连接图实验连接图 第8章 访问控制列表配置和使用 表表8-1 主机配置信息主机配置信息 PC1 IP 地址:192.168.1.1 子网掩码:255.255.255.0 PC3 IP 地址:192.168.2.1 子网掩码:255.255.255.0 PC2 IP 地址:192.168.1.2 子网掩码:255.255.255.0 PC4 IP 地址:192.16
15、8.2.2 子网掩码:255.255.255.0 第8章 访问控制列表配置和使用(2)对路由器、主机进行基本的配置,保证各主机之间能够连通。命令如下:Router(config)#router ripRouter(config-router)#network 192.168.1.0Router(config-router)#network 192.168.2.0Router(config-router)#exitRouter(config)#interface f0/0Router(config-if)#ip address 192.168.2.16 255.255.255.0Router(c
16、onfig-if)#exitRouter(config)#interface f0/1Router(config-if)#ip address 192.168.1.16 255.255.255.0Router(config-if)#exit 第8章 访问控制列表配置和使用(3)设计并配置一个ACL,在路由器的f0/1过滤掉来自主机192.168.2.2的通信流量,而允许所有的其他流量通过。命令如下:Router(config)#access-list 1 deny 192.168.2.2 0.0.0.0Router(config)#access-list 1 permit 0.0.0.0 25
17、5.255.255.255Router(config)#interface f0/1Router(config-if)#ip access-group 1 Router(config-if)#exit 第8章 访问控制列表配置和使用(4)用ping命令检测主机192.168.2.2/192.168.2.1与主机192.168.1.1/192.168.1.2之间的连通性。(5)设计并配置一个ACL,在路由器的f0/1过滤掉来自子网192.168.2.0的通信流量,而允许所有的其他流量通过。命令如下:Router(config)#access-list 1 deny 192.168.2.0 0.0
18、.0.255Router(config)#access-list 1 permit anyRouter(config)#interface f0/1Router(config-if)#ip access-group 1(6)检测主机之间的连通性。第8章 访问控制列表配置和使用 8.2.4 实验实验 扩展扩展ACL的设置及使用的设置及使用1实验要求(1)熟悉路由器ACL的配置命令,建立扩展的IP访问列表。(2)设置ACL实现不同过滤策略。2实验设备(1)计算机4台。(2)交换机2台。(3)路由器1台。(4)双绞线若干。第8章 访问控制列表配置和使用 3实验过程和主要步骤(1)按照图8.2所示连接
19、网络。(2)对路由器、主机进行基本的配置,保证各主机之间能够连通。(3)设计并配置一个ACL,在路由器的f0/1过滤掉子网192.168.2.0的FTP的通信流量,而允许所有的其他流量通过。命令如下:Router(config)#access-list 101 deny tcp 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 eq 21Router(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 anyRouter(config)#interface f0/1Router(config-if
20、)#ip access-group 101 第8章 访问控制列表配置和使用(4)从 主 机 1 9 2.1 6 8.2.2/1 9 2.1 6 8.2.1 向 主 机192.168.1.1/192.168.1.2发出FTP请求,检测连通情况。(5)设计并配置一个ACL,在路由器的f0/1只允许从子网192.168.2.0发出的Telnet通信流量,而拒绝所有的其他流量通过。命令如下:Router(config)#access-list 102 permit tcp 192.168.2.0 0.0.0.255 any eq 23Router(config)#interface f0/1Route
21、r(config-if)#ip access-group 101(6)从主机192.168.2.2/192.168.2.1向主机192.168.1.1和192.168.1.2发出各种请求,检测连通情况。第8章 访问控制列表配置和使用 8.3 使用命名访问控制列表使用命名访问控制列表 在标准与扩展访问控制列表中均要使用标识号,而在命名访问控制列表中使用一个字母或数字组合的字符串来代替前面所使用的数字。使用命名访问控制列表可以用来删除某一条特定的控制条目,这样可以在使用过程中方便地进行修改。在创建ACL的过程中难免需要修改,当要修改一个已经分配好标识号的访问控制列表的条件判断语句时,只能先通过使用
22、no access-list 命令,删除该访问控制表中的所有条件判断语句,再重新建立。第8章 访问控制列表配置和使用 在这里命名访问控制列表就体现出其优越性,修改其条件判断语句时不必删除整个列表,只需要用配置命令deny|permit添加语句,或在它们之前加上no删除语句,从而达到修改条件判断语句的目的。在全局配置命令模式下定义命名访问控制列表的语法格式如下:Router(config)#ip access-liststandard|extendedname 第8章 访问控制列表配置和使用 在ACL配置模式下,通过指定一个或多个条件,来决定一个数据包是允许通过还是拒绝的命令如下:Router(
23、configstd-|ext-nacl)#deny|permit source source-wildcard|any即可以有如下的命令:deny source source-wildcard|anypermit source source-wildcard|anyno deny sourcesource-wildcard|anyno permitsourcesource-wildcard|any 第8章 访问控制列表配置和使用 例如:可以通过下面的过程建立一个扩展的命名ACL:Router(config)#ip access-list extended filteroutRouter(con
24、fig-ext-nacl)#permit icmp 192.168.1.0 0.0.0.255 any echoRouter(config-ext-nacl)#deny tcp any any eq 135Router(config-ext-nacl)#deny tcp any any eq 137Router(config-ext-nacl)#deny tcp any any eq 138Router(config-ext-nacl)#deny tcp any any eq 139Router(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 any