访问控制列表ACL及配置教程

04-22

访问控制列表
ACL:
(accesscontrollist)

适用所有的路由协议:IP,IPX,AppleTalk

控制列表分为两种类型
1.标准访问控制列表:检查被路由数据包的源地址、1~99代表号

2.扩展访问控制列表:对数据包的源地址与目标地址进行检查。
访问控制列表最常见的用途是作为数据包的过滤器。
其他用途;可指定某种类型的数据包的优先级,以对某些数据包优先处理
识别触发按需拨号路由(DDR)的相关通信量
路由映射的基本组成部分

ACL能够用来
提供网络访问的基本安全手段
访问控制列表可用于Qos(QualityofService,服务质量)对数据流量进行控制。
可指定某种类型的数据包的优先级,以对某些数据包优先处理起到了限制网络流量,减少网络拥塞
的作用
提供对通信流量的控制手段
访问控制列表对本身产生的的数据包不起作用,如一些路由更新消息
路由器对访问控制列表的处理过程:

(1)如果接口上没有ACL,就对这个数据包继续进行常规处理
(2)如果对接口应用了访问控制列表,与该接口相关的一系列访问控制列表语句组合将会检测它:
*若第一条不匹配,则依次往下进行判断,直到有一条语句匹配,则不再继续判断。
路由器将决定该数据包允许通过或拒绝通过

*若最后没有任一语句匹配,则路由器根据默认处理方式丢弃该数据包。
*基于ACL的测试条件,数据包要么被允许,要么被拒绝。
(3)访问控制列表的出与入,
使用命令ipaccess-group,可以把访问控制列表应用到某一个接口上。
in或out指明访问控制列表是对近来的,还是对出去的数据包进行控制

【在接口的一个方向上,只能应用1个access-list】

路由器对进入的数据包先检查入访问控制列表,对允许传输的数据包才查询路由表
而对于外出的数据包先检查路由表,确定目标接口后才检查看出访问控制列表
======================================================================
应该尽量把放问控制列表应用到入站接口,因为它比应用到出站接口的效率更高:
将要丢弃的数据包在路由器惊醒了路由表查询处理之前就拒绝它
(4)访问控制列表中的deny和permit
全局access-list命令的通用形式:

Router(config)#access-listaccess-list-number{permit|deny}{testconditions}
这里的语句通过访问列表表号来识别访问控制列表。此号还指明了访问列表的类别。
1.创建访问控制列表
access-list1deny172.16.4.130.0.0.0(标准的访问控制列表)
access-list1permit172.16.0.00.0.255.255(允许网络172.16.0.0)的所有流量通过
access-list1permit0.0.0.0255.255.255.255(允许任何流量通过,如过没有只允许172.16.0.0
的流量通过)
2.应用到接口E0的出口方向上:
interfacefastehernet0/0
ipaccess-group1out(把ACL绑定到接口)
删除一个访问控制列表,首先在接口模式下输入命令:

noipaccess-group
然后在全局模式下输入命令
noaccess-list
并带上它的全部参数
?〖访问控制列表的通配符〗

0.0.0.0255.255.255.255=====any

Router(config)#access-list1permit172.30.16.290.0.0.0
======Router(config)#access-list1permithost172.30.16.29
+++++++++++++++++++++++++++++==
访问控制列表的种类
+++++++++++++++++++++++++++
标准IP访问列表只对源IP地址进行过滤。
扩展访问控制列表不仅过滤源IP地址,还可以对目的IP地址、源端口、目的端口进行过滤

尽量把扩展ACL应用在距离要拒绝通信流量的来源最近的地方,以减少不必要的通信流量。
最好把标准的ACL应用在离目的地最近的地方

标准的ACL根据数据包的源IP地址来允许或拒绝数据包。

当配置访问控制列表时,顺序很重要。

标准访问控制列表的应用与配置
扩展ACL中,命令access-list的完全语法格式如下:
Router(config)#access-listaccess-list-number{permit|deny}protocol[sourcesource-
wildcarddestinationdestination-wildcard]
[operatoroperan][established][log]
access-list-number访问控制列表表号100~199
permit|deny表示在满足测试条件的情况下,该入口是允许还是拒绝后面指定地址的通信流量
protocol用来指定协议类型,如IP/TCP/UDP/ICMP/GRE/IGRP
sourcedestination源和目的,分别用来标识源地址和目的地址
source-wildcard、destination-wildcard---反码
operatoroperan---lt(小于)、gt(大于)、eq(等于)、neq(不等于)、和一个端口号
esablished------如果数据包使用一个已建立连接。便可以允许Tcp信息量通过

例如:
拒绝所有从172.16.4.0到172.16.3.0的ftp通信流量通过E0

1.创建ACL
Router(config)#access-list101denytcp172.16.4.00.0.0.255172.16.3.00.0.0.255eq21
Router(config)#access-list101permitipanyany
2.应用到接口上
Router(config)#interfacefastethernet0/0
Router(config-if)#ipaccess-group101out

拒绝来自指定子网的Telnet通信流量
Router(config)#access-list101denytcp172.16.4.00.0.0.255172.16.3.00.0.0.255eq23
Router(config)#access-list101permitipanyany
应用到接口:
Router(config)#interfacefastethernet0/0
Router(config-if)#ipaccess-group101out
命名访问控制列表
可以使用一个字母数字组合的字符代替前面所使用的数字来表示ACL,称为命名ACL

可以在下列情况下使用命名ACL
需要通过一个字母数字串组成的名字来直观的表示特定的ACL
对于某一方面给定的协议,在同一路由器上,有超过99个的标准ACL或者有超过100个的扩展ACL需要配置
命名ACL时,应该注意
IOS11.2以前的版本不支持命名ACL
不能用同一个名字命名多个ACL.另外.不同类型的ACL命名不能使用相同的名字.
命名IP访问列表允许制定的访问列表删除单个条目.
给ACL命名的命令语法如下:
Router(config)#ipaccess-list{standard|extended}name
命名访问控制列表下,permit和deny命令的语法格式与前述的有所不同:
Router(config{std|ext}-nacl)#{permit|deny}{source[source-wildcarcd]|any}{test
conditions}[log]

删除时命令前面加no
例如
拒绝通过E0口从172.16.4.0到172.16.3.0的telnet通信流量而允许其他的通信流量
(1)创建名为jie的命名访问控制列表
Router(config)#ipaccess-listextendedcisco
(2)指定一个或多个Permit及deny条件
Router(config-ext-nacl)#denytcp172.16.4.00.0.0.255172.16.3.00.0.0.255eq23
Router(config-ext-nacl)#permitipanyany
(3)应用到接口E0的出方向
Router(config)#interfacefastethernet0/0
Rouer(config-if)#ipaccess-groupjieout

(4)查看ACL列表
showipinterface
(5)显示所有Acl的内容。
showaccess-list