30-安全技术,ACL

1.ACL:Access Control List 访问控制列表 (第一代防火墙)
 
ACL基于数据包的包头的4个字段来定义过滤规则:
    ip头的源地址、目标地址;
    tcp头的源端口、目标端口;
0
例如:
sys
acl 3000    #创建一个名为3000的acl
#acl的规则:允许1.1.1.1:1024到2.2.2.2:80的流量
rule 1 permit tcp source 1.1.1.1 0.0.0.0 source-port eq 1024 destination 2.2.2.2 0.0.0.0 destination-port eq 80
acl规则定义时并不一定4个元素全需要,例如,只给源地址定义规则:
acl 2000
rule 1 permit so 192.168.10.0 0.0.0.0    #允许来自192.168.10.0的流量
 
查看已经配置的acl规则:
d th
 
 
2.ACL应用场景 
1)acl可以用来过滤流量;
如图:
    通过定义acl规则,使192.168.1.0网段的主机A和主机B可以上网,但无法访问内网服务器A;
    192.168.2.0网段的主机C和主机D不可以上网,能访问服务器A;
0
 
2)通过acl筛选数据后做后续动作
例如:
    利用acl规则,筛选出192.168.2.0网段的数据,然后给这些数据做加密 
 
 
3.ACL工作原理
0
  • ACL由一条或多条规则组成
  • 每条规则必须选择动作:允许permit或拒绝deny
  • 每条规则都会一个id序列号(缺省值为5,步长默认为5)
  • 序列号越小越先进行匹配
  • 只要有一条规则和报文匹配,就停止查找,称为命中规则
  • 查找完所有规则,如果没有符合条件的规则,称为未命中规则
  • ACL只是一个流量匹配工具,需要应用在实际的接口或其他技术内才会激活
  • 应用在接口时必须选择方向:入站或出站
  • 不能过滤由设备自己产生的流量
 
先细后粗:
    在配置ACL时,通常会将较细的规则序列号设置设置较小来提高优先级;
    例如,172.16.1.1/24  属于172.16.1.0/24网段 ;
    在配置ACL时,如果 172.16.1.0/24网段的规则优先级较高,根据命中规则,172.16.1.1/24会匹配该网段的规则之后停止查找;
    导致优先级较低的172.16.1.1/24的规则无法生效;
 
 
0
 
 
4.ACL类型
分为数字型ACL和命名ACL
 
1)数字型ACL
对于高级的设备支持匹配的序号越多;
分类
编号范围
参数
基本ACL
2000~2999
 源IP地址等
高级ACL
3000~3999
源IP地址、目标IP地址、源端口、目标端口等
二层ACL
4000~4999
源MAC地址、目标MAC地址、以太网帧类型等
基本ACL:
     比较简单,只能匹配源地址
    例如:
        acl number 2000
        acl编号为2000时,只能给源ip地址制定规则;无法给目标ip、源端口、目标端口定匹配规则;
 
2)命名型ACL
优点:更容易识别该
例如:acl name nogame
命名型ACL可以自己制定类型;
默认为高级类型advance,也就是相当于编号3000-3999,也就是可以指定源IP地址、目标IP地址、源端口、目标端口的规则;
命名型ACL也可以后面跟数字指定编ACL编号;
如果不指定编号,会自动分配一个的ACL编号(从大到小分配)
 
查看ACL信息:
dis acl all
可以看到:
    前面指定的命名型acl name nogame,默认类型高级Advanced acl,自动分配了一个编号3997
 
 
5.正掩码、反掩码、通配符
在配置acl过滤规则时,会使用到ip地址;
ip地址后面跟的是通配符,而不是掩码;
 
例如:
    0.0.0.255就是地址1.0.0.0的通配符
    表示1.1.1.x的地址为能匹配的地址;
    比如,1.1.1.2可以匹配;1.1.0.2就无法匹配;
名称
规则
作用
举例
备注
掩码
连续的1和0
IP地址
255.255.255.0
1对应网络位,0对应主机位
反掩码
连续的1和0
路由协议
0.0.0.255
0表示必须的位,1表示无须匹配的位
反掩码 = 255.255.255.255 - 正掩码
通配符
任意的1和0
ACL
0.0.255.0
0必须匹配,1无须匹配
通配符和反掩码类似,都是0的位表示必须匹配,1的位表示无需匹配;
通配符比反掩码更自由,也就是不需要连续的0和连续的1; 
举例
备注
192.168.0.1 0.0.0.0
匹配一个主机地址
(只有192.168.0.1能匹配)
192.168.0.0 0.0.0.255
匹配一个网段
(192.168.0.0 - 192.168.0.255)
192.168.0.1 0.0.0.254
匹配网段内奇数地址
254 = 11111110
最后一位为0,必须匹配,
也就是最后一位必须和192.168.0.1的最后一位一样
192.168.0.1的最后一位 = 00000001的最后一位 = 1
匹配的地址为:192.168.0.xxxxxxx1
192.168.0.0 0.0.0.254
匹配网段内偶数地址
x.x.x.x 255.255.255.255
匹配所有地址
 
6.ACL配置
命令
配置
Acl 2000
创建一个基本ACL
Rule 5 permit/deny source 192.168.1.0 0.0.0.255
配置ACL的规则:允许或拒绝源地址为192.168.1.0网段内的所有流量
Acl 3000
创建一个高级ACL
Rule 5 permit/deny tcp source 192.168.1.0 0.0.0.255 destination 8.8.8.8 0 destination-port eq 80
       eq    等于
       gt     大于
        lt     小于
        range  范围
配置ACL的规则:允许或拒绝源地址192.168.1.0网段内所有流量去访问8.8.8.8的80端口
traffic-filter inbound/outbound acl 2000
在接口下调用,出去的流量/进来的流量中匹配ACL2000
Display acl 2000
验证ACL2000
Display traffic-filter applied-record
查看设备上所有基于ACL调用情况
 示例1:
    如图在路由器RTA的右接口g0/0/0的出去的流量调用了acl2000;
    拒绝了192.168.1.0网段的流量从RTA的g0/0/0接口出去;
    导致的结果是,主机A无法联网,主机B可以联网;
0
 
示例2: 
    定义了一个acl3000,有两条规则;
    导致的结果是:
        主机A无法访问FTP服务器;
        主机B无法访问私有服务器;
0
 
7.ACL调用方向建议
    1】基本ACL尽量调用在离目标最近的出站接口Outbound
        基本acl只能允许或拒绝所有协议
        如下图,禁止pc2访问pc4的acl最好在AR2的g0/0/1接口调用,因为离目标pc4最近;
        如果在AR1的g0/0/1调用,可能导致pc2无法和pc1通信;
    2】高级ACL尽量调用在离源头最近的入站接口Inbound
         如下图,高级acl禁止pc1访问pc4的80端口;
         最好在AR1的g0/0/1端口调用;这样的好处是,目标流量在开始就被阻止了,减轻了中间链路的负担;
        因为高级acl可以指定更息的规则,因此不必担心其它流量被阻止;
     3】ACL的规则一般是先细后粗
0
 
 
 
 
 
posted @ 2021-05-21 15:54  L丶银甲闪闪  阅读(312)  评论(0编辑  收藏  举报