扩展访问控制列表配置

冷暖自知 提交于 2019-12-06 08:55:43

知识点:

简介:

访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议(被路由协议是一些用于定义数据报内字段格式并且为用户的通讯传输提供一种机制的协议(也就是打包),如IP、IPX、AppleTalk等。路由协议则负责运输。例如ospf、IGRP)

功能:

配置ACL后,可以限制网络流量,允许特定设备访问,指定转发特定端口数据包等。如可以配置ACL,禁止局域网内的设备访问外部公共网络,或者只能使用FTP服务。

ACL分类:

目前有三种主要的ACL:标准ACL、扩展ACL及命名ACL。
标准的ACL使用 1 ~ 99 以及1300~1999之间的数字作为表号,扩展的ACL使用 100 ~ 199以及2000~2699之间的数字作为表号。

ACL配置位置:

标准ACL要尽量靠近目的端。扩展ACL要尽量靠近源端。

命令配置顺序:

ACL语句会按照先后顺序执行。一个包只要遇到一条匹配的ACL语句后就会停止后续语句的执行。
比如你想deny 源是192.168.1.1 目的是192.168.2.1的主机流量,如果先写access-list 100 permit ip any any (允许任何流量通过)
再写access-list 100 deny ip host 192.168.1.1 host 192.168.2.1
那么第二条是没有效果的,因为第一条已经放行了所有的流量。
我们在写ACL时,一定要遵循最为精确匹配的ACL语句一定要写在最前面的原则

方向:

根据流量方向,进路由器的端口设置为in,出路由器的端口设置为out。

注:1.在acl中默认在最后有一条隐藏语句 deny ip any any(只要配ACL这条命令一定默认会有)。如果想要使这条效果失效,就在末尾加句permit ip any any
2.acl仅对穿越路由器的数据包过滤,对本路由器起源的数据包不过滤。

命令格式:access-list命令
(1)标准访问列表
access-list access-list-number { permit | deny } {source [source-wildcard] | any}
命令解释如下。
access-list:访问列表命令。
access-list-number:访问列表号码,值为1~99.
permit:允许。
deny:拒绝。
source:源IP地址。
source-wildcard:源IP地址的通配符(0表示必须匹配,1表示不用,与掩码相反)。
(2)扩展访问列表
access-list access-list-number { permit | deny } { protocol \ protocol-keyword } { source [ source-wildcard ] | any } { destination destination-wildcard } | any }[protocol-specific options][log]
命令解释如下。
access-list-number:访问列表号码,值为100~199.
protocol \ protocol-keyword:可使用的协议,包括IP、ICMP、IGRP、EIGRP、OSPF等。
destination destination-wild:目的IP地址,格式与源IP地址相同。
protocol-specific options:协议制定的选项。
log:记录有关数据报进入访问列表的信息。

(3)命名控制列表就是给控制列表取个名字,而不是像上面所述的使用访问控制列表号。通过命令访问控制列表可以很方便的管理ACL规则,可以随便添加和删除规则,而无需删除整个访问控制列表了。

创建命名访问控制列表的语法如下:

Router(config)#ip access-list {standard|extended} access-list-name

下面是命令参数的详细说明

standard:创建标准的命名访问控制列表。

extended:创建扩展的命名访问控制列表。

access-list-name:命名控制列表的名字,可以是任意字母和数字的组合。

标准命名ACL语法如下:

Router(config-std-nacl)#[Sequence-Number] {permit|deny} source [souce-wildcard]

扩展命名ACL语法如下:

Router(config-ext-nacl)#[Sequence-Number] {permit|deny} protocol {source souce-wildcard destination destination-wildcard} [operator operan]

无论是配置标准命名ACL语句还是配置扩展命名ACL语句,都有一个可选参数Sequence-Number。Sequence-Number参数表明了配置的ACL语句在命令ACL中所处的位置,默认情况下,第一条为10,第二条为20,以此类推。Sequence-Number可以很方便地将新添加的ACL语句插于到原有的ACL列表的指定位置,如果不选择Sequence-Number,默认添加到ACL列表末尾并且序列号加10。

删去以创建的命名ACL语法如下:

Router(config)#no ip access-list {standard|extended} access-list-name

如果要删除某一ACL语句,可以使用“no Sequence-Number”或“no ACL”语句两种方式。

列如:将一条新添加的ACL加入到原有标准命名ACL的序列15的位置。内容为允许主机192.168.1.1/24访问Internet。

Router(config)#ip access-list standard test1(test1为自己之前命名的)

Router(config-std-nacl)#15 permit host 192.168.1.1

列如:创建扩展命名ACL,内容为拒绝192.168.1.0/24访问FTP服务器192.168.2.200/24,允许其他主机。

Router(config)#ip access-list extended test2

Router(config-ext-nacl)#deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.200 eq 21

Router(config-ext-nacl)#permit ip any any

将命名ACL应用于接口语法如下:

Router(config-if)#ip access-group aaccess-list-name {in|out}

取消命名ACL的应用语法如下:

Router(config-if)#no ip access-group aaccess-list-name {in|out}

acl应用在端口命令:

ip access-group access-list-number {in | out}

参考资料:https://baike.baidu.com/item/ACL/362453
http://blog.csdn.net/u012953265/article/details/38292597

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!