ACL 访问控制列表 实验

一、简介

1、ACL - Access Control List - 访问控制列表。

2、ACL是一系列有序语句

(1)有序:

        ACL有序号,执行时按顺序自上而下查找并匹配。

        默认先写的语句序号靠前。--- 所以注意书写规则的顺序,精确的规则放在前面。 

        如果查完了列表没有匹配的条件,则默认拒绝所有 deny all。--- 所以全是deny的ACL中,最后一条应该写上permit any

 access-list 10 permit 0.0.0.0 255.255.255.255 等同于  access-list 10 permit any。

这里的255.255.255.255是通配符,形似子网掩码,但子网掩码的0和1必须连续,通配符不限制。通配符中,标0的位置表示固定,标1的位置表示可变

拓展ACL的permit any要写两遍any,分别表示源和目的:access-list 100 permit any any

access-list 10 permit 10.1.1.1 0.0.0.0 等同于  access-list 10 permit host 10.1.1.1

(2)语句:

        ACL语句指定了条件动作,若满足条件则执行动作。

        ACL动作有:permit/deny

        ACL条件比较复杂,根据条件的书写区别分类。

3、ACL用于过滤流量/匹配流量进行下一步操作。

        但ACL不能过滤自身产生的流量(比如不能过滤loopback的in方向过滤环回口产生的流量,但可以在环回口流量出接口的out方向过滤掉)

4、ACL需要在R/SW的接口处调用,物理/虚拟接口都能调用。需要区分方向in/out

        一个接口,每方向,每种ACL类型(IP、MAC、……类型),只能调用一个ACL。多个易冲突,且一个ACL够用。

5、对ACL进行删改

二、类型

1、IP ACL

  • 标准ACL:只根据ip报头中的S-IP地址匹配。所以标准ACL应该写在靠近终点的地方
  • 拓展ACL:基于IP包的五元组匹配(S-IP \ D-IP \ Protocol \ S-port \ D-port)五元组能判断不同数据包是否属于同个数据流。所以拓展ACL应该写在靠近起点的地方

2、二层ACL

  • 基于MAC / VLAN / port的ACL

3、自定义ACL

  •     · 基于应用层内容的ACL,思科不支持,需要在防火墙上配

三、标准ACL

有命名/编号两种创建方式。

推荐用命名。可以调整序列号以修改语句执行顺序,也可以单独删除某条规则。

标准ACL编号的范围是1-99  1300-1999

见上图,编号方式创建的ACL在写规则的时候要带编号。

而命名方式创建的ACL直接从动作开始写即可。

四、扩展ACL

有命名/编号两种创建方式。

推荐用命名。可以调整序列号以修改语句执行顺序,也可以单独删除某条规则。

拓展ACL编号的范围是100-199 2000-2699

上图是一个扩展ACL的例子。

意思是:如果有tcp流量来自10.1.1.0/24网段,源端口小于1024(可以不写,代表任意),访问20.1.1.0/24网络的http协议,则放行。

lt - less than \ eq - equal \ gt - greater than \ neq - not equal

五、实验 - 标准ACL

1、搭建拓扑

搭好拓扑如上(R2R3之间统一都连e0/1口),配好物理和环回口的IP地址。

2、全网互通

配路由协议,测试全网互通

配个eigrp,宣告网段。这里只截取R1的命令。

3台都配完后,检查路由表:

测试连通性:

3、用编号方式写标准ACL

【先用编号做一遍,再删掉用命名做一遍。】

写两条,一条拒绝2.2.2.2 , 一条permit any。

调用。因为用的是标准ACL,所以最佳调用位置是R3环回口的in方向(这里导致后面出现问题)

检查:

show access-lists 可以加编号,因为只有一组ACL所以直接show就好

show run看loopback 0 ,往后翻也能看到ACL

4、测试连通性

???2.2.2.2还是能正常ping通4.4.4.4

4.4.4.4也能ping通2.2.2.2

怀疑是环回口的问题,把调用接口从R3环回口换成了R3连R2的e0/1。

先在环回口删掉调用命令,再进入e0/1调用。

再去R1上测试连通性,这下2.2.2.2ping不通4.4.4.4了。

......表示不通,U.U.U表示发过去没有回包。

但1.1.1.1还是正常通信。

所以ACL不能在环回口上调用吗?记得前面写过ACL不能过滤自身环回口产生的流量,但过滤2.2发来的应该没问题吧?还是说ACL不能在虚拟接口上调用呢?还是虚拟机的问题?

***猜测:环回口是路由器内的接口,在环回口调用时,2.2的流量经过e0/1已进入路由器内部,所以只会正常转发。所以可以说ACL在环回口调用无效。***

5、删掉ACL

在接口删掉调用

删掉ACL

再看已经没有了

2.2ping一下,可以通。

6、用命名方式写ACL

命名方式写前面要加ip。ip access-list + name

直接从动作开始写。写好调用

7、测试连通性

2.2ping不通4.4

show ip access-lists可以看到匹配的包数量,show access-lists看不到。

加一条序号小于10的规则,可以在保持调用ACL的情况下让2.2ping通4.4。

(这种只有命名可以做,编号的做不了)

进入命名配置ACL的模式后,先写序号,再写动作。

2.2又能ping通4.4了

六、实验 - 扩展ACL

扩展ACL,过滤条件比较细,所以应该设置在靠近源的接口。因为环回口流量是路由器自己产生的,ACL无法过滤,所以在R2 e0/0的in方向调用ACL。

1、环境准备

把R3的环回口5.5 和 telnet配置好。

测试用1.1.1.1 telnet 4.4.4.4。用2.2.2.2 ping 5.5.5.5

测试成功,可以在R2上写ACL了。

2、扩展ACL - 标号

如下图。编写,调用。

3、测试

1.1 telnet 4.4显示目的不可达

2.2 ping 5.5 显示U.U.U,不可达

成功

4、扩展ACL - 命名

先删掉之前的标号扩展ACL。

测试下,可以ping通,可以telnet上。

配置,调用如图。

tcp那行命令没加源端口号是表示源端口号任意。

icmp那行没写源&目端口号是因为icmp没有端口号。

5、测试

如图。成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值