如何访问控制列表ACL


    访问控制列表 :
    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