HCIA-访问控制列表基础

Access Control List

一,了解ACL

1,ACL是个什么东西?

ACL,中文名称是“访问控制列表”,他是由一系列规则,(也就是描述报文的匹配条件的判断语句)组成。

而这些匹配条件是由五元组构成的。

五元组分别是报文的源地址,目的地址,源端口,目的端口,协议号等

打个比方,就比如说,ACL就是一个过滤器,ACL规则就相当于滤芯,而我,安装什么样的滤芯(根据报文特征匹配的一系列ACL规则),ACL就能过滤出什么样的报文了。

2,为什么需要ACL?

根据规则过滤的ACL,能够做到阻塞攻击报文,为不同类型的报文提供差分服务,对Telnet登入/FTP文件下载进行控制等功能,从而提高网络环境的安全性和网络传输的可靠性。

3,ACL是怎样工作的?

ACL工作主要是根据规则进行的。

ACL的规则里面包括他的规则编号(顺序)动作(允许或者拒绝)规则匹配的地址段(源/源-目的)生效时间段

二,认识ACL

1,ACL分类

(1)基于ACL规则定义方式的划分,可分为:基本ACL,高级ACL,二层ACL,用户自定义ACL和用户ACL。

(2)基于ACL标识方法的划分,则可分为:数字型ACL命名型ACL

注意:

用户在创建ACL时可以为其指定编号,不同的编号对应不同的ACL。

为了便于记忆呢也可以创建命名型ACL,就是在创建ACL的时候为其指定名称。

命名型ACL也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。

如果不指定ACL编号,系统则会为其自动分配一个数字型ACL的编号。

ACL分类
ACL结构

基本ACL:

主要是针对报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999

acl 2000

​ rule 5 permit source 1.1.1.0 0.0.0.255

高级ACL:

可以根据IP报文中的源IP地址,目的IP地址,协议类型,TCP或UDP的源目端口号等元素进行匹配。

acl 3000

rule 5 deny tcp source 192.168.1.2 0 destination 10.1.1.1 0


---------/* 华为设备格式命令 */------------
//基本ACL
[Huawei-acl-basic-2000]rule 5 permit ?
  fragment             Check fragment packet
  none-first-fragment  Check the subsequence fragment packet  
  source               Specify source address
  time-range           Specify a special time
  vpn-instance         Specify a VPN-Instance
  <cr>                 Please press ENTER to execute command 

//高级ACL
[Huawei-acl-adv-3000]rule 5 permit ?
  <1-255>  Protocol number
  gre      GRE tunneling(47)
  icmp     Internet Control Message Protocol(1)
  igmp     Internet Group Management Protocol(2)
  ip       Any IP protocol
  ipinip   IP in IP tunneling(4)
  ospf     OSPF routing protocol(89)
  tcp      Transmission Control Protocol (6)
  udp      User Datagram Protocol (17)

2,ACL的规则

(1)一条ACL可以由多条“deny 或 permit”语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能由矛盾的地方,因此ACL的匹配顺序是十分重要的。

(2)华为设备支持两种匹配排序: 自动排序(auto模式),和配置顺序(config模式)。缺省的ACL匹配顺序模式是Config模式。

  • 自动排序:是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度,从高到低的顺序进行报文匹配。
  • 配置方式:acl 3001 match-order auto ·

  • 配置排序:系统按照ACL规则编号从小到大的顺序进行报文匹配,从校到大依次进行匹配。

3,ACL的匹配机制

ACL的匹配机制

各应用场景中ACL的默认动作各有不同,对命中/未命中ACL规则报文的处理机制也各不相同,比如:

  • 流策略中的ACL默认动作是permit,在流策略中应用ACL时,如果ACL中存在规则但报文未匹配上,该报文任何可以正常通过。
  • Telnet中的ACL默认动作是deny,在Telnet中应用ACL时,如果ACL中存在规则,但报文未匹配上,该报文会被拒绝通过。
  • 黑名单模块中的ACL处理机制与其他模块有所不同。在黑名单中应用ACL时,无论ACL规则配置成permit还是deny,只要报文命中了规则,该报文都会被系统丢弃
/* 流策略中应用ACL,使设备对 192.168.1.0/24网段的报文进行过滤,拒绝192.168.1.2和192.168.1.3主机报文进行通过,允许192.168.1.0/24网段的其他地址报文通过。*/
 rule 5 deny source 192.168.1.2 0 
 rule 10 deny source 192.168.1.3 0 
     
/* 在流策略中应用ACL,使设备对 192.168.1.0/24网段的报文进行过滤,允许192.168.1.2 和 192.168.1.3主机地址的报文进行通过,拒绝192.168.1.0/24网段的其他地址的报文通过。*/
 rule 5 permit source 192.168.1.2 0 
 rule 10 permit source 192.168.1.3 0 
 rule 15 deny source 192.168.1.0 0.0.0.255 
     
/* 在Telnet中应用ACL,仅允许管理员(172.16.105.2)能够Telnet到设备,其他用户不允许登入。*/
  rule 5 permit source 172.16.105.2 0
/* 在Telent中应用ACL,不允许两台主机登入(172.16.105.3 和 172.16.105.4)Telnet登入设备,其他用户允许Telnet登入*/
  rule 5 deny source 172.16.105.3 0
  rule 10 deny source 172.16.105.4 0 
  rule 15 permit 
     
/* 在FTP中应用ACL,不允许用户在周六的00:00 ~ 8:00 期间访问FTP服务器,允许用户在其他任意时间访问FTP服务器。*/
   time-range t1 00:00 to 08:00 sat     //创建一个时间段,名字t1,00:00 到 08:00 周六
   time-range t2 00:00 to 23:59 daily   //创建一个时间段,名字t2,00:00 到 23:59 每天
   acl number 2000
     rule 5 deny time-range t1 
     rule 10 permit time-range t2

三,使用ACL

1,ACL的应用场景

ACL的应用场景

2,ACL的常用匹配项

a,生效时间段 : 周期时间段,绝对时间段

周期时间段: 以星期为参数来定义时间范围,以一周为周期,循环生效。(比如:每周一的8点至12:00)
格式: time-range 时间名称 开始时间 to 结束时间 { days } & <1-7>
注意
时间名称 要以英文字母开头。
开始和结束时间 的格式为: 小时:分钟 to 小时:分钟
day: 有多种表达方式。

  • Mon,Tue,Wed,Thu,Fri,Sat,Sun 中的一个或者几个的组合,也可以用数字标识,0表示星期日,1表示星期一 等等。
  • working-day: 从星期一到星期五。工作日。
  • daily: 每天,一周七天。
  • off–day: 包括星期六星期日两天。

例如:time-range bf-time 13:30 to 14:00 daily
// 每天的13:30 到14:00 是bf-time 时间段。

绝对时间段:从某年某月的某日的某一时间开始,到某年某月的某一时间结束,表示规则在这段时间范围内生效。
格式: time-range 时间段名称 from 时间1 日期1 [ to 时间2 日期2 ]

  • 时间段名称: 以英文字母开头。 名字可以重复。
  • 时间1 和 时间2: [ 小时:分钟 ]
  • 日期1 和 日期2: [ YYYY/MM/DD ],表示 年/月/日
b. IP承载的协议类型:基于协议类型过滤报文

常用的协议号如下:
icmp 1
TCP 6
UDP 17
GRE 47
IGMP 2
IP 任何IP层协议
IPinIP 4
OSPF 89

比如说: 当设备某个接口下的用户存在大量的攻击者时,如果希望额能够禁止这个接口下的所用用户接入网络,则可以通过指定的协议类型为IP 来屏蔽这些用户的IP流量来到达目的地。

rule deny ip //表示拒绝IP报文通过。

再比如说,设备上打开透明防火墙功能后,再缺省情况下,透明防火墙会在域间丢弃所有入域间的报文,包括业务报文和协议报文。如果希望像OSPF这样的动态路由协议报文能够正常通过防火墙,保证路由的互通,这时,可以指定OSPF协议类型通过即可。

rule permit ospf //表示允许OSPF报文通过。

c. 源/目的 IP地址及其通配符掩码

源IP地址及其通配符掩码格式: source { source-address source-wildcard | any }
目的IP地址及其通配符掩码格式: destination { destination-address destination-wildcard | any }

IP地址与 通配符掩码共同确定的地址范围

0.0.0.0 255.255.255.255 任意IP地址
172.18.0.0 0.0.255.255 172.18.0.0/16网段的IP地址
172.18.5.2 0.0.0.0 仅172.18.5.2这一个主机地址
172.18.8.0 0.0.0.7 172.18.8.0/29 网段的IP地址
172.18.8.8 0.0.0.7 172.18.8.8/29 网段的IP地址
10.1.2.0 0.0.254.255通配符掩码中的1和0不连续
· ·· 10.1.0.0/24 ~ 10.1.254.0/24 网段之间且第三个字节为偶数的IP地址。

d. TCP和UDP端口号

源端口号格式: source-port {eq port | gt port | lt port | range port-start port-end}
目的端口号格式:destination-prot {eq port | gt port | llt port range port-start port-end }
eq是等于,gt是大于,lt是小于,range是范围
端口号可以是数字,也可以是字符串,比如 80 可以是 www

3,在接口上应用ACL

ACL 无法直接在接口上应用,但是可以通过以下两种方式,将ACL与业务模块(流策略 ,简化流策略)绑起来,再在接口上应用。

方式一:在接口上应用流策略
1,配置流分类
a,在系统视图下,执行命令traffic classifier classifier-name [ operator{and | or } ] [ precedence precedence-value ],进入流分类试图。
b,执行命令if-match acl { acl-number | acl-name },配置ACL应用于流分类。
·
2,配置流行为
在系统试图下,执行命令traffic behavior behavior-name,定义流行为并进入流行为试图
redirect ip -nexthop 12.1.1.2 // 重定数据流
·
3,配置流动作
报文的过滤有两种流动作: denypermit
·
4,配置流策略
a.在系统视图下,执行命令traffic policy policy-name [ match-roder{ auto | config } ],定义流策略并进入流策略视图。
b.执行命令classifier classifier-name behavior behavior-name,在流策略中为指定的流分类配置所需流行为,即绑定流行为和流分类
·
5,应用流策略
在接口视图下,执行命令 traffic-policy policy-name { inbound | outbund },应用流策略。

方式二:在接口下应用简化流策略

  • 基于ACL的报文过滤
    traffic-filter inbound acl xxx
    traffic-filter outbound acl xxx
    traffic-secure inbound acl xxx
  • 基于ACL的流量监管
    traffic-limit inbound acl xxx
    traffic-limit outbound acl xxx
  • 基于ACL的重定向
    traffic-redirect inbound acl xxx
  • 基于ACL的重标记
    traffic-remark inbound acl xxx
    traffic-remark outbound acl xxx
  • 基于ACL的流量统计
    traffic-statistic inbound acl xxx
    traffic-statistic outbound acl xxx
  • 基于ACL的流镜像
    traffic-mirror inbound acl xxx

4,配置实例

a.使用高级ACL限制不同网段的用户互访

如下图所示,某公司通过交换机实现各部门的互联,为了方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址,同时为了隔离广播域,又将两个部门划分在不同的VLAN中,现要求交换机能限制两个网段之间的互访,防止公司机密泄露。

高级ACL实验


#
vlan batch 10 20 
#
acl number 3001
  rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
acl number 3002
  rule 10 deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
#
traffic classifier tc1 operator or precedence 5   //流分类
  if-match acl 3001 
  if-match acl 3002
#
traffic behavior tb1    //流行为
  deny
#
traffic policy td1 match-order config    //流策略
  classifier tc1 behavior tb1 
#
int g 1/0/1 
   traffic-policy td1 inbound   //应用流策略
#
int g 1/0/2
   traffic-policy td1 inbound  
b.使用基本ACL限制Telnet登录权限

如下图所示,PC设备之间路由可达,用户希望简单方便的配置和远程管理设备,可以在服务器端配置Telnet用户使用AAA验证登录,并配置安全策略,保证只有符合安全策略的用户才能登入设备。
基本ACL

配置思路:

1,配置Telnet方式登录设备,以实现远程维护网络设备。

2,配置管理员的用户和密码,并配置AAA认证策略,保证只有认证通过后的用户才能登录设备。

3,配置安全策略,保证只有符合安全策略的用户才能登录设备。

操作步骤

//开启 telnet 功能
telnet server enable 
//配置VTY用户界面的最大个数
user-interface maximum-vty 15
//配置允许用户登陆设备的主机地址
acl 2000 
  rule 5 permit source 10.1.1.1 0 
  quit
user-interface vty 0 14 
   protocol inbound  telnet 
   acl 2000 inbound 
//配置VTY用户界面的终端属性
user-interface vty 0 14
   shell 
   idle-timeout 20 
   screen-length 0 
   history-command max-size 20 
//配置VTY用户界面的用户认证方式
user-interface vty 0 14
   authentication-mode aaa
   quit
//配置登入用户的相关信息
aaa
   local-user admin1234 password irreversible-cipher 123
   local-user admin1234 service-type telnet
   local-user admin1234 privilege level 3
   quit
//进入客户端验证
进入Windows的命令提示符,使用telnet登入设备。
    telnet 10.137.217.177
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值