访问控制列表ACL的配置与使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

访问控制列表ACL的配置与使用

访问控制列表,即Access Control List,以下简称ACL,是路由器、交换机等网络设备上最常用的功能之一。可以说大多数的网络协议都跟ACL有着千丝万缕的联系,所以要弄清楚ACL的用法非常重要。

实际上,ACL的本质就是用于描述一个IP数据包、以太网数据帧若干特征的集合。然后根据这些集合去匹配网络中的流量(由大量数据包组成),同时根据策略来“允许”或者“禁止”。

ACL的基本原理:

1、ACL由若干条件,并按照一定的顺序而成,同时每个条件都对应了一个策略:允许或者禁止。

2、收到一个数据帧之后,ACL会按照从上到下的顺序逐一匹配:

●一个条件不匹配就查看下一个;

●任意一个条件匹配后就按照指定的策略执行,并跳出匹配;

●所有条件都不匹配时,默认禁止,即deny。

根据条件描述的不同,我们通常可以将IP ACL分为基本型和扩展型两种。

其中基本型只能就数据包的源ip地址进行匹配;

而扩展型ACL就可以对源IP、目的IP、协议号(判断tcp/udp/icmp等)、源端口号、目的端口号、QoS 参数(tos、precedence)等参数来进行定义,同时在匹配时,还可以根据路由器系统时间(time-range)来变化、还可以选择是否生成日志(log)等,功能非常强大。

显然标准型ACL功能非常简单,而扩展型ACL功能非常强大;但是功能越强大,匹配的越详细,对于路由器等网络设备的性能要求越高,或者对于网速的拖慢越明显。组网时需要酌情使用。

不过有一点,两种类型的ACL在原理上是完全一致的。

标准型ACL只能匹配源IP地址,在实际操作中,有三种匹配方式:

1、any,任意地址

2、,指定ip网段

3、src_range,指定ip地址范围

配置模板:

ip access-list standard //建立一个标准型的ACL,名字自定

{permit | deny} any

{permit | deny}

{permit | deny} src_range

例1:我们需要设置某局域网中只有192.168.1.0网段的用户能够上网(理论上有254个用户),那么应该是

ip access-list standard test

permit 192.168.1.0 255.255.255.0

deny any(隐含生效,无需配置)

例2:我们需要设置某局域网中只有192.168.1.2~192.168.1.80的用户能够上网(理论上有79个用户),本网段的其他用户无法上网,那么应该是

ip access-list standard test

permit src_range 192.168.1.2 192.168.1.80

deny any(隐含生效)

例3:我们需要让某局域网中只有192.168.1.0网段用户上网,但是192.168.1.33这个ip地址的用户要禁止(财务禁止上网)(理论上有253个用户),那么应该是

ip access-list standard test

deny 192.168.1.33 255.255.255.255

permit 192.168.1.0 255.255.255.0

deny any(隐含生效)

注意:

例3中,要表示单个主机的话,掩码必须是4个255,即32位掩码;

同时所有的例子中,各个条目的先后顺序不能搞错,想想看为什么?

扩展型ACL可匹配的条目比较多,前面已经说过,但世纪上最常用的项目也就是源、目的IP,源、目的端口号,以及ip协议号(种类)这5种,这5种就可以用来满足绝大多数的应用。

由于匹配的条目比较多,在一个条件中,这些项目也是有前后顺序的,为:

协议号,源ip地址,源端口号,目的ip地址,目的端口号;

其中,协议号必须写(ip、icmp、tcp、udp等);

源ip地址也必须写,其表示方式也有三种,与标准acl相同(如果不想匹配,以any来代替);

源端口号可以不写,表示any;

目的ip地址必须写;

目的端口号必须写(当协议号为tcp/udp时,源和目的端口号中至少应当写一个)

配置模板:

ip access-list extended

{permit | deny} {ip | icmp | tcp | udp} {any | network | src_range} [src_port] {any | network | src_range} [dst_port]

例1:网络中除了正常的web访问、邮件收发,其他所有的应用都要禁止

ip access-list extended test

permit tcp any any eq 80

permit tcp any any eq 25

permit tcp any any eq 110

deny ip any any(隐含生效,后面不再贴出来了)

例2:禁止本网(192.168.1.0)到172.16.11.0网段的访问,其他的不受限制

ip access-list extended test

deny ip 192.168.1.0 255.255.255.0 172.16.11.0 255.255.0.0

permit ip any any(本条必须写,想想看为什么)

例3:网络中,要禁止所有用户去ping、telnet、http访问某服务器(dns服务器,ip为192.168.1.3),但要其正常提供服务

ip access-list extended test

deny icmp any 192.168.1.3 255.255.255.255

deny tcp any 192.168.1.3 255.255.255.255 eq 23

deny tcp any 192.168.1.3 255.255.255.255 eq 80

permit ip any any

注意:在设置扩展型ACL时,要特别注意各个条件之间的关系,如果是“包含”的话,要把范围小的条目写在前面。

常见的包含关系例如:

icmp包含tcp、udp和icmp;

192.168.0.0 255.255.0.0包含192.168.1.0 255.255.255.0

192.168.1.0 255.255.255.0包含 range 192.168.1.1 192.168.1.10

不指定端口(port any)包含具体指定的端口,如tcp 80

按照前面的介绍,我们了解了ACL的基本原理、配置使用和常见分类,但是他们有什么用呢?

从配置的角度来看,上面的ACL写好之后,啥用都没有。原因是因为没有调用。

具体而言,由哪个模块来调用,就决定了它将起到什么作用,这也是ACL应用广泛的根本原因。

相关文档
最新文档