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