# ACL概述 基础跟高级实验

#### 为什么会有ACL

  

  随着网络的飞速发展,网络安全和网络质量问题日益突出

  - 企业重要服务器资源被随意访问,导致企业机密信息泄露
  - Internet病毒肆意侵略企业内网
  - 网络带宽被各类业务随意占用,导致重要的业务带宽得不到保障,用户上网体验差

#### 如何解决这些问题

   以上种种问题,对正常的网络通信造成了很大的影响,为了提高网络安全和网络质量,ACL问世

#### ACL是什么 
  - ACL:访问控制列表
  - 是一个包含了多个“规则”的列表,不同规则通过 “规则号”进行区分
  - 每个“规则”都包含:动作+条件两部分内容
  - **动作分为:**允许(permit)和拒绝(deny)
  - **条件分为:**地址、端口、通配符
  - ACL本质上是一种报文过滤器,可以根据规则来过滤数据报文,比如允许数据通过,比如拒绝数据通过

#### ACL的作用
  - 对网络中数据报文进行识别,做流量过滤,做访问控制,做行为控制
  - 提高内网安全性, 提高带宽利用率

#### ACL类型
  - **基本ACL**:过滤三层数据报文

        ACL编号: **2000~2999 **  条件:**源IP地址**

  - **高级ACL**:可以过滤三层数据报文也可以过滤四层数据报文

        ACL编号: **3000~3999**   条件:**五元组**(源IP/目标IP/协议号/源端口/目标端口)

        二层ACL : 

       ACL编号:  4000~4999 用于匹配源MAC地址、目的MAC地址、802.1q优先级等

#### ACL组成
  - **ACL编号**:用于标识ACL  基本:2000-2999    高级:3000-3999
  - 规则:即描述报文匹配条件的判断语句

         &:  **规则编号**:用于标识规则,范围: 0~4294967294

         &:动作:包括permit/deny两种动作,表示允许/拒绝

         &:匹配项:地址、端口、通配符····

#### ACL匹配原则
  - 根据ACL规则编号从小到大匹配(编号越小越优先被匹配)
  - 匹配即停止(匹配上了第一条规则,就按照规则的动作去执行,不在向下查找第二条规则)
  - 如果数据报文没有匹配到第一条规则,继续向下查找第二条规则,如果匹配,则按照第二条规则的动作去执行
  - 如果所有的规则都无法匹配,则执行隐含规则
  - 隐含规则(默认规则):隐含规则有两个一个允许所有,一个拒绝所有

        &:允许所有:只要使用traffic-filter调用ACL规则时默认规则是允许所有

        &:拒绝所有:只要不使用traffic-filter调用ACL就是拒绝所有

  

#### 通配符
  - 使用源/目的IP地址定义为规则的匹配项时,需要在IP地址后面指定通配符掩码,确定一个地址范围
  - IP地址通配符掩码与IP地址的反掩码类似,也是一个32比特位的数字字符串
  - IP地址通配符掩码的作用是,定义IP地址中的哪些位将被检查
  - IP地址通配符掩码也是有0和1组成的,“0”表示“检查相应的位”,“1”表示“不检查相应的位,总结:**“检查0,忽略1”**
  - 举例:

         找老婆要求:  女   18岁   漂亮   有钱     0.0.0.0      {4个字段全部检查}

         找老婆要求:  女   18岁   漂亮   有钱     0.0.0.255  {只检查前3个字段}

         找老婆要求:  女   18岁   漂亮   有钱     0.0.255.255  {只检查前2个字段}

         找老婆要求:  女   18岁   漂亮   有钱    0.255.255.0  {检查第1和第4个字段}

         找老婆要求:  女   18岁   漂亮   有钱    255.0.0.255  {检查第2和第3个字段}

                            **192.   168.     1. **    **  0  **         **  0.0.0**.**255**{通配符:只检查前面3个字段}

                  **前面 必须是192.168.1**    **后面不检查**

  

 

#### 拓扑

  ![](https://secure2.wostatic.cn/static/m43AG6em9LuGh8DT4pbzQu/image.png?auth_key=1688430769-5GZi1fMC285gKR4QQY9Vj-0-eca1cef5dfe9d9d53e0394aeb499d7db)

#### 需求
  - PC1不能访问Server1
  - PC2可以访问Server1
  - 允许其他所有流量互通(允许PC1访问PC2)

#### 配置思路

  -分析PC1和Server1的数据转发路径
-判断在那个设备上配置ACL
-判断在那个接口上调用ACL

#### 配置步骤

  第一步:配置PC和Server的IP地址,掩码,网关

  第二步:配置ACL

    -配置R1的接口IP地址

    -在R1中配置基本ACL(拒绝192.168.1.0/24 访问server1)

    -在R1的g0/0/0调用ACL

  第三步:验证与测试

    PC1不能访问Server1

    PC2可以访问Server1

第一步:配置PC1/2和Server1的IP地址,掩码,网关
第二步:在R1中配置ACL
R1配置:
[R1]int g0/0/0
[R1-G0/0/0]ip address 192.168.100.254 24
[R1-G0/0/0]int g0/0/1
[R1-G0/0/1]ip address 192.168.1.254 24
[R1-G0/0/1]int g0/0/2
[R1-G0/0/2]ip address 192.168.2.254 24
[R1-G0/0/2]quit
[R1]acl 2000    //创建基本ACL
[R1-acl-basic-2000]rule 10 deny source 192.168.1.0  0.0.0.255  //配置基本ACL规则
[R1-acl-basic-2000]quit
[R1]int g0/0/0
[R1-G0/0/0]traffic-filter outbound acl 2000    //在接口上调用ACL对数据报文进行过滤

第三步:测试与验证
PC1 ping  Server1  不通
PC2 ping  Server1  通
PC1 ping  PC2      通

[R1]display acl  all   //查看acl
[R1]display traffic-filter applied-record   //查看acl调用信息

====================================================================
备注1:命令解析
acl 2000   
   rule 10 deny source 192.168.1.0  0.0.0.255
 
字段解析:
acl 2000 :表示的ACL的名字,代表是基本ACL
rule 10 :表示的是规则10  (10代表规则的编号)
deny : 表示的是动作,deny代表拒绝
source : 表示的源,在当前规则中代表的是源IP地址
192.168.1.0  :在当前规则中代表的是源IP地址段
0.0.0.255 :表示的通配符,在当前规则中代表,检查的字段是192.168.1 (前三个字段)

备注2:命令解析
int g0/0/0
traffic-filter outbound acl 2000

字段解析:
traffic-filter :表示的是流量过滤
outbound :表示的是出方向上过滤数据报文

备注:
一个接口的同一个方向上只能调用基于一个ACL进行报文过滤
如果要进行更改,则要先undo原来调用的acl

 

第一步:配置Client1/PC1/Server1的IP,掩码,网关
第二步:配置路由,让网络互通
R1配置:
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0]int g0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/2]quit
[R1]ip route-static 0.0.0.0 0 192.168.12.2

R2配置:
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.23.2 24
[R2-GigabitEthernet0/0/1]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 192.168.2.254 24
[R2-GigabitEthernet0/0/2]quit
[R2]ip route-static 192.168.1.0 24 192.168.12.1
[R2]ip route-static 192.168.3.0 24 192.168.23.3


R3配置:
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 192.168.23.3 24
[R3-GigabitEthernet0/0/0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip address 192.168.3.254 24
[R3-GigabitEthernet0/0/2]quit
[R3]ip route-static 0.0.0.0  0 192.168.23.2

第三步:在R1中配置ACL
R1配置:
[R1]acl 3000
[R1-acl-adv-3000]rule 10 permit tcp source 192.168.1.1 0 destination 192
.168.3.1 0 destination-port eq www
[R1-acl-adv-3000]rule 20 permit ip source 192.168.1.1 0 destination 192.
168.2.0 0.0.0.255  
[R1-acl-adv-3000]rule 30 deny ip source 192.168.1.1 0 destination any
[R1-acl-adv-3000]quit
[R1]int g0/0/2
[R1-GigabitEthernet0/0/2]traffic-filter inbound acl 30
总结:
调用基本ACL,尽量在离目标近的接口上调用,避免数据被误杀
调用高级ACL,尽量离源近的接口上调用,避免无效的流量占用有限的带宽

命令解析:
acl 3000 :高级acl
rule 10 :规则10
permit :允许
tcp :tcp协议
ip : ip协议
source :源
192.168.1.0 :源IP地址
0 :通配符:0代表绝对匹配,代表唯一的一个IP地址
destination :目标
192.168.3.1  0 :目标IP地址,通配符为 0
destination-port :目标端口
eq :等于
www :web服务
any :表示所有IP地址
inbound :入向流量

备注:
如果是对售后部所有主机做规则,这样配置写通配符
rule 10 permit tcp source 192.168.1.0 0.0.0.255 
rule 20 permit ip source 192.168.1.0 0.0.0.255 
rule 30 deny ip source 192.168.1.0 0.0.0.255

如果是仅仅对售后部PC1做规则,这样配置写通配符
rule 10 permit tcp source 192.168.1.1 0 
rule 20 permit ip source 192.168.1.1 0
rule 30 deny ip source 192.168.1.1 0

第四步:验证与测试
client1 可以访问server1的web服务
client1 可以ping 通 192.168.2.0/24 的主机
client1 不能ping 通 server1 (192.168.3.1)
client1 不能ping 通 192.168.12.1
client1 不能ping 通 192.168.12.2
client1 不能ping 通 192.168.23.2
client1 不能ping 通 192.168.23.3
client1 不能ping 通 192.168.3.254

高级acl之icmp

 

第一步:配置Client1/PC1/Server1的IP,掩码,网关
第二步:配置路由,让网络互通
R1配置:
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0]int g0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/2]quit
[R1]ip route-static 0.0.0.0 0 192.168.12.2

R2配置:
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.23.2 24
[R2-GigabitEthernet0/0/1]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 192.168.2.254 24
[R2-GigabitEthernet0/0/2]quit
[R2]ip route-static 192.168.1.0 24 192.168.12.1
[R2]ip route-static 192.168.3.0 24 192.168.23.3

R3配置:
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 192.168.23.3 24
[R3-GigabitEthernet0/0/0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip address 192.168.3.254 24
[R3-GigabitEthernet0/0/2]quit
[R3]ip route-static 0.0.0.0  0 192.168.23.2

第三步:在R1中配置ACL
[R1]acl 3000
[R1-acl-adv-3000]rule 10 permit icmp source 192.168.1.1 0 destination 192.168.3.1 0 
[R1-acl-adv-3000]rule 20 permit ip source 192.168.1.1 0 destination 192.168.2.0 0.0.0.255  
[R1-acl-adv-3000]rule 30 deny ip source 192.168.1.1 0 destination any
[R1-acl-adv-3000]quit

[R1]int g0/0/2
[R1-GigabitEthernet0/0/2]traffic-filter inbound acl 3000

备注:
如果是对售后部所有主机做规则,这样配置写通配符
rule 10 permit tcp source 192.168.1.0 0.0.0.255 
rule 20 permit ip source 192.168.1.0 0.0.0.255 
rule 30 deny ip source 192.168.1.0 0.0.0.255

如果是仅仅对售后部PC1做规则,这样配置写通配符
rule 10 permit tcp source 192.168.1.1 0 
rule 20 permit ip source 192.168.1.1 0
rule 30 deny ip source 192.168.1.1 0

第四步:验证与测试
client1 可以ping 通server1 (192.168.3.1)
client1 可以ping 通 192.168.2.0/24 网段内的主机
client1 不能访问 server1 的其他任何服务,比如web服务
client1 不能ping 通 192.168.12.1
client1 不能ping 通 192.168.12.2
client1 不能ping 通 192.168.23.2
client1 不能ping 通 192.168.23.3
client1 不能ping 通 192.168.3.254

acl之telnet

 

第一步:配置路由,让网络互通
R1配置:
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
[R1-GigabitEthernet0/0/0]int g0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/2]quit
[R1]ip route-static 0.0.0.0 0 192.168.12.2

R2配置:
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 192.168.23.2 24
[R2-GigabitEthernet0/0/1]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 192.168.2.254 24
[R2-GigabitEthernet0/0/2]quit
[R2]ip route-static 192.168.1.0 24 192.168.12.1
[R2]ip route-static 192.168.3.0 24 192.168.23.3


R3配置:
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 192.168.23.3 24
[R3-GigabitEthernet0/0/0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip address 192.168.3.254 24
[R3-GigabitEthernet0/0/2]quit
[R3]ip route-static 0.0.0.0  0 192.168.23.2

第二步:配置Telnet远程
R2配置:
[R2]user-interface vty 0 4
[R2-ui-vty0-4]authentication-mode password 
[R2-ui-vty0-4]protocol inbound all
Please configure the login password (maximum length 16):HCIE

R3配置:
[R3]user-interface vty 0 4 
[R3-ui-vty0-4]authentication-mode password 
[R3-ui-vty0-4]protocol inbound all
Please configure the login password (maximum length 16):HCIE

第三步:R2配置基本ACL
R2配置:
[R2]acl 2000
[R2-acl-basic-2000]rule 10 permit source 192.168.1.254 0 
[R2-acl-basic-2000]quit
[R2]user-interface vty 0 4
[R2-ui-vty0-4]acl 2000 inbound    //在vty虚接口调用acl

第四步:R3配置基本ACL
R3配置:
[R3]acl 2000
[R3-acl-basic-2000]rule 10 deny source 192.168.1.254 0
[R3-acl-basic-2000]rule 20 deny source 192.168.12.1 0
[R3-acl-basic-2000]rule 30 permit source any
[R3-acl-basic-2000]quit 
[R3]user-interface vty 0 4 
[R3-ui-vty0-4]acl 2000 inbound    //在vty虚接口调用acl

隐含规则:
&:允许所有:只要使用taffic-filter调用ACL规则时默认规则是允许所有
&:拒绝所有:只要不使用taffic-filter调用ACL就是拒绝所有

备注:使用ACL去过滤telnet 报文的时候,选择在vty 虚接口调用
如果路由器配置了多个接口IP地址,做ACL调用的时候要在每一个接口调用,非常麻烦
所以使用ACL过滤telent报文时,建议在user-interface vty 0 4 接口下调用

第五步:测试与验证
R1的192.168.1.254  可以远程R2的任意一个IP地址
<R1>telnet -a 192.168.1.254  192.168.12.2(R2) 可以成功
<R1>telnet -a 192.168.1.254  192.168.23.2(R2) 可以远程
<R1>telnet -a 192.168.1.254  192.168.2.254(R2) 可以远程


R1的192.168.12.1  无法远程R2
<R1>telnet -a 192.168.12.1  192.168.12.2(R2) 无法远程
<R1>telnet -a 192.168.12.1  192.168.23.2(R2) 无法远程
<R1>telnet -a 192.168.12.1  192.168.2.254(R2) 无法远程

R2可以远程R3
<R2>telnet 192.168.23.3 (R3)可以远程


R3无法远程R2
<R3>telnet 192.168.23.2 (R2)无法远程

R1无法远程R3
<R1>telnet -a 192.168.12.1  192.168.23.3(R3) 无法远程
<R1>telnet -a 192.168.12.1  192.168.3.254(R3) 无法远程

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2301_77277479

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值