1ACL访问控制列表概述

访问控制列表时应用在路由器接口的命令列表,这些命令列表告诉路由器哪些ip数据包可以接受、哪些ip数据包需要拒绝。至于ip数据包时被接受还是被拒绝,可以是由源ip地址、目的ip地址、源端口和目的端口、协议等特定的指示条件来确定。

通过建立访问控制列表,路由器可以限制网络流量,提高网路性能,对通信流量起到控制的作用,实现对流入和流出的ip数据包进行过滤,这也是网络访问的基本安全手段,换句话说,路由器的访问控制列表可以实现包过滤防火墙的作用。

在路由器的许多配置任务中都需要用到访问控制列表,如网络地址转换NATQos等。

2、访问控制列表的分类

标准访问控制列表:只能针对ip数据包的源ip地址来决定是否过滤数据包,思科编号1~99

扩展访问控制列表:根据ip数据包的源地址、目的地址、源端口、目的端口和协议类型来决定是否过滤数据包,应用要比标准的灵活,思科编号100~199

3、当数据包到达过滤数据包的路由器时,路由器会从数据包报头中提取某些信息,根据过滤规则决定该数据包是应该通过还是应该丢弃

ACL 可以从数据包报头中提取以下信息,根据规则进行测试,然后决定是“允许”还是“拒绝”:

源 IP 地址

目的 IP 地址

ICMP 消息类型

ACL 也可以提取上层信息并根据规则对其进行测试。上层信息包括:

 TCP/UDP 源端口

TCP/UDP 目的端口

4ACL 执行以下任务:

---限制网络流量以提高网络性能

---提供流量控制,ACL 可以限制路由更新的传输

---提供基本的网络访问安全性。

---ACL 可以允许一台主机访问部分网络,同时阻止其它主机访问同一区域。 

---决定在路由器接口上转发或阻止哪些类型的流量。 

---控制客户端可以访问网络中的哪些区域。 

---屏蔽主机以允许或拒绝对网络服务的访问。ACL 可以允许或拒绝用户访问特定文件类型,例如 FTP 或 HTTP.

5

访问控制列列表_访问控制列表

6、ACL要么用于入站流量,要么用于出站流量,这里的出站和入站指的是数据包;流出和流入路由器。入站ACL传入数据包经过处理后才会被路由到出站接口。入站ACL很高效,如果数据包被丢弃则节省了执行路由的开销。当检查了ACL允许通过的时候,路由器才会处理路由工作。出站ACL对路由到这个接口的数据包进行处理。

7、思科的是默认决绝所有通过,所以如果指定的规则都是拒绝型的将没有任何的意义;华为的正好相反,是允许所有的通过。

8、创建控制访问控制类列表的步骤:

创建访问控制列表

定义允许或禁止ip数据包的描述语句

ƒ将访问控制列表应用到具体的路由器接口上

标准访问控制列表实例一:只允许一台主机访问外网,通过编号进行配置

如图,路由器上有两个接口,快速以太网接口f0/0连接内网,f0/1连接外网,外网我用一台pc来模拟,假设现在我要求只允许内网ip地址为210.30.10.20的主机访问外网,禁止其他的pc访问外网,该如何来做呢?

各设备的ip参数如下,设置这些参数的过程省略,下面只看在路由器上应该如何来配置,这里我用packet trace5.3来实现:

访问控制列列表_访问控制列表_02

在没有配置访问列表控制之前,左边内网中的两台机器来ping右边的机器都是可以ping通的!下面对路由器进行访问列表配置:

Router(config)#access-list 10 permit 210.31.10.20 0.0.0.0 

Router(config)#inter f0/0

Router(config-if)#ip access-group 10 in

这时候就只有210.31.10.20的机器可以ping192网段的机器!

对以上配置的几点说明:

标准访问控制列表时处于1~99之间,可以使用这个范围的任意编号,并且标准访问控制列表只是根据ip数据包的源ip地址进行过滤。

关键字permit/allow指定是允许还是拒绝ip数据包。

ƒ路由器使用通配符掩码和ip地址一起来分辨匹配的ip地址,在通配符掩码中,如果是二进制的0表示必须匹配,如果是二进制的1表示可以不匹配。

在接口模式下,访问控制列表将每个接口定义了两个方向,即inout方向,前者代表流入接口的方向,后者代表流出的方向。

标准访问控制列表实例二:只允许一个子网访问外网,通过命名进行配置

如下图,f0/0连接着一个子网192.168.20.0f0/1连接着一个子网192.168.10.0,这两个子网分拿一台pc来充当,外网我也拿一台pc来充当,ip210.31.10.2,拓扑图及相关的参数如下:

访问控制列列表_访问控制列表_03

按如图配置参数,其中的掩码均为24位,别忘记给pc机指定网关!

在没有配置访问控制列表之前,所有的机器都是可以相互ping通的。下面给路由器做访问控制,只让10.0网段的机器可以通过:

Router(config)#ip access-list standard test1 

Router(config-std-nacl)#permit 192.168.10.0 0.0.0.255

Router(config-std-nacl)#deny any

Router(config-std-nacl)#exit

Router(config)#int e1/0

Router(config-if)#ip access-group test1 out

这样就达到了要求!

扩展访问控制列表实例:端口和协议访问控制

如图路由器连接两个不同的网络,第二个网络的210.31.20.2主机是一个www服务器,为了这个服务器的安全,现在要求210.31.10.0网络不能通过ICMP协议访问服务器,但是可以访问服务器的www服务,各个设备的ip参数如下,掩码均为24位长:

访问控制列列表_访问控制列表_04

配置好各个ip参数后,任何两个ip都可以ping通,ping运用的正是ICMP协议,下面在路由器上设置访问控制列表:

Router(config)#access-list 110 permit tcp 210.31.10.0 0.0.0.255 host 210.31.20.2 eq 80

//创建编号为110的扩张访问控制列表,允许源ip地址为210.31.10.0的数据包通过tcp连接访问目的ip地址是210.31.20.280端口,即www服务 

Router(config)#access-list 110 deny icmp 210.31.10.0 0.0.0.255 host 210.31.20.2 

//编号为110的扩展访问控制列表,拒绝源ip地址为210.31.10.0ICMP数据包访问目的ip地址210.31.20.2

Router(config)#inter f0/0

Router(config-if)#ip access-group 110 in

//设置在f0/0接口的入站方向上,按照编号为110的访问控制列表对ip数据包进行过滤。

以上配置需要说明的是,扩展访问控制列表编号的范围是100~199之间,可以使用这个范围的任意编号,并且可以根据ip数据包的源地址、目的地址、源端口、目的端口、协议类型等信息进行过滤。