华三ACL
2020-06-24 00:00:00

ACL:access control lists控制访问列表

把路由器当做防火墙使用制定一系列规则。就是基于ACL
当想要限制一个网段访问另一个网段时,在不影响控制层面流量(不删除路由条目)的情况下,就可以基于ACL来实现。
基于IPv4 IPv6 IPx MAC ARP,可以直接使用acl(过滤流量)。
ACL是整个Internet中最低层的功能,三层功能,直接使用
创建一些比较高级的网络工具使用,这些高级的工具,调用ACL来实现某些高级的需求。
ACL用途
流量过滤:在路由器的接口直接调用ACL时,路由器可以限制从一个网络发出去往另一个网段的报文,可以阻止穿越路由器通行的报文
抓取兴趣流:当ACL被高级的工具调用一并使用的时候,acl可以定义我们想要作用的流量类型,可以使用低级的网络工具ACL来抓取兴趣流量,使用高级网络工具调用ACL,对一些兴趣流量做一些策略           使用更高级的策略嵌套acl使用

ACL用于过滤

直接把一个ACL在路由器的一个接口做一个调用,就可以实现过滤数据流量
一般情况,用ACL过滤数据流量时,ACL一般会包含多个访问控制规则,每个访问控制规则都称之为叫做ACE(access control entry)访问控制条目
一个ACL由多个ACE组成
实现数据层面的路由过滤:当把ACL在路由器的一个接口调用之后,这个接口想要转发报文时,需要经过每条ACE的匹配一个ACE就限制了来自什么地方去往什么地方的流量是否能通过,只有一个ACE允许流量通过的时候,这个流量才能被发送,反之,如果没有一个ACE允许通过,则直接被拒绝
实现控制层面的路由过滤:在VTY接口调用ACL,实现当一台PC,想要telnet ssh tftp路由器的时候,路由器会优先判断这个PC的IP地址是不是ACL匹配的,如果被匹配,就可以telnet ssh ,如果不匹配,就不能telnet ssh ,即使出示了正确的用户名和密码也不能实现远程网管
如果没有配置ACL任何报文都可以在网络中随意通行,只要路由器有相应的路由条目
直接调用,过滤流量:
在物理接口调用实现数据层面流量的过滤
在vty接口调用实现管理层面流量:telnet ssh tftp ftp
?制层面流量:hello报文 传递路由条目(控制路由表的生成)
ACL在被网络高级工具调用时,用于分类,流量抓取嵌套acl
ipsec vpn:整个Internet环境中最安全的一个VPN机制,实现当一个常量的流量想要通过VPN发送另一个场景时发送的流量是以加密的形式发送的
运行ipsec vpn需要制定该园区网哪个网段的PC发送流量去往另一个园区网的哪个网段的PC时,流量需要被保护
重分发:一个路由器既运行EIGRP又运行OSPF,默认两个进程不会传递路由
ACL可以用来抓取控制层面的路由条目
执行重分发时默认该路由器会把它获悉的所有来自OSPF的路由直接引入Eigrp域,使用ACL就可以让某些OSPF的路由引到Eigrp中
NAT:在NAT中调入ACL可以告知一台路由器什么样的PC发送的报文去往公网之前要给它做一个地址转换
直接在路由器的物理主接口调用ACL是可以选择调动方向的:
入向调用:该ACL只会作用于通过这个接口接收到的流量
出向调用:当路由器需要通过这个接口转发流量的时候,使用ACL调用
出向调用ACL(路由表高于ACL优先级)
路由器通过一个接口收到一个数据包,首先会查找路由表,看看是否有路由条目,如果没有报文直接被丢弃,如果有相应的路由条目选择适当的出战接口准备转发,然后查看该接口有没有调用出站方向的ACL,如果没有,报文就直接发走;如果有,就进行ACL的匹配,如果有一条ACL匹配就发送,没有就丢弃
只能过滤穿越流量,不能过滤路由器自己生成的流量
入向调用ACL(ACL优先级高于路由表)
如果在路由器入站方向调用ACL时,路由器收到一个数据包时先匹配ACL再查路由表;
可以实现所有接收流量的过滤。
ACL的匹配原则
ACL有多个ACE在匹配的时候按照一个顺序来一条一条匹配
这个顺序取决于每个ACE的序列号,默认创建一个ACL所写的第一个ACE的序列号缺省为10,第二个为20,第三个为30
ACL创建出来之后,所有的ACE都是按照序列号从小到大排序的
最小的在最上面,最大的在最下面
当使用ACL来匹配数据包时,会从上往下匹配
当使用ACL来匹配报文时,只要有一个ACE匹配到报文,这个ACE会立即执行策略,接下来不管还有多少个ACE都不再继续匹配
一个ACL至少需要配一个ACE,通过命令来配置的ACE称为显式ACE
隐式ACE永远为该ACL序列最大的ACE,默认隐式ACE能够匹配来自于任何源去往任何目的的任何流量,这个隐式ACE只要匹配到流量,该流量一定会被丢弃 Deny
一个报文进入路由器ACL怎样匹配?
首先匹配第一个ACE看执行的结果是Permit还是Deny
如果匹配到并且是Permit,就会转发,Deny直接丢弃
如果匹配到最后一条时,直接丢弃
Types  of  ACLS
基于IPV4的ACL
标准的ACL(Standard ACL):只能基于流量的源IP地址来决定是否允许这个流量通行
只能基于流量的源来允许或过滤任何流量
过滤颗粒度极大(原因要么允许你来自某个源的一切流量,要么拒绝你来自某个源的一切流量
扩展的ACL(Extended ACL):能基于源目IP地址来决定是否允许这个流量通行
可以允许或拒绝某些协议的流量,可以同时基于源目IP地址,
上层协议号以及源目端口号来实现流量的精确控制
创建标准ACL和扩展ACL的方式
以数字的方式来创建ACL  ACL的名称为纯阿拉伯数字
以命名式的方式来创建ACL  可包含数字,字符,符号等一系列信息
当ACL的编号为纯数字时 1-99,1300-1999  标准ACL
                        100-199,2000-2699  扩展ACL
命名式的ACL,可手工通过来选择该ACL是标准ACL还是扩展ACL,任意选择名称 后面跟着standard 或者extended 来指定标准还是扩展
IOS版本12.3以上创建ACL的灵活性
 (1)12.3版本前,某个ACL的ACE写错了,只能把整个ACL删除,不能单独删除ACE
(2)12.3版本后,可以单独把ACE删除,再重新创建
(1)12.3版本前,默认写的第一个ACE为10,不能改变,每个ACE都间隔为10s,不能在中间添加
(2)12.3版本后,可以指定ACE的序列号来创建
配置ACL的原则
需要根据需求创建相应的标准ACL和扩展ACL来过滤想要过滤的流量
创建完要调用时,一台路由器的一个接口基于一个协议站以及一个方向只能调用一个ACL,路由器的一个接口入向可以调用一个ACL,出向也可以调用一个ACL
ACL匹配时,使用序列号自顶向下匹配
每一个ACL的最后端总会有一个隐藏Deny任何的语句,所以想要创建一个ACL,在显式的ACE中至少包含一条Permit语句
ACL使用全局模式创建,创建完之后在接口配置模式入向或出向调用,过滤数据层面的流量,
ACL可以过滤穿越路由器的流量
当调用标准ACL时,尽可能地靠近目的地址调用
当调用扩展ACL时,尽可能地靠近流量的源调用
静态ACL与动态ACL
标准ACL扩展ACL都成为静态ACL,当一个接口调用静态ACL后,这个接口自从调用该ACL开始,这个静态ACL就会一直工作,永远也不会停止
动态ACL
要创建动态ACL,里面只能包含一条动态ACE,默认这条动态ACE是不能工作的,需要动作触发
在路由器的一个接口调用了一个带有动态ACE的ACL,默认动态的ACE不会工作,可以用PC Telnent到路由器出示正确的用户名和密码,路由器判断这个PC是合法的PC,这个路由器会为这个PC自动开放一个动态的ACE,让这个ACE暂时性的工作,当不用时,经过一段时间会不工作
Ip  access-list  extended  X (名字)创建扩展ACL
Permit  [协议]  [SIP] 反码 [DIP] 反码  允许什么协议的从…到…
Dymic  test  permit  ip  host  [SIP]  host  [DIP]  动态ACL
Host 就相当于反码0.0.0.0
Autocommand  X  password  X  创建本地认证库
在接口调用先创建认证
Line vty 0 4
Autocommand access-enable host
Login local
进入另一个接口调用
Ip access-group X in  在入站方向调用
删除ACL  no ip access-list extended X
基于时间的ACL
Time-range X (名字)
Absolute start 时:分:秒 日 月(英语标识)年 end时:分:秒 日 月 年  立即生效时间
全局:access-list X(数字) permit  [协议]  [SIP] 反码 [DIP] 反码 time-range X 启用时间 /echo 可永久ping通
进接口调用 ip access-group X in
特权:set clock 时:分:秒 日 月(英语标识) 年
Ping X.X.X.X repeat X 可以pingX次
自反ACL
内网访问外网直接发送,外网需要验证
同一个接口调用,不同方向
中间设备

1
2
3
4
5
Ip access-list extend [名字] (不能为纯数字)
Permit ip[SIP] 0.0.0.255 [DIP] 0.0.0.255 reflect X 自反ACE名字
Ip access-list extend [名字] (不能为纯数字)
Permit ip host [SIP] host [DIP] 指定外网可以进内网
Evaluate X (自反ACE的名字)

进靠近外网的接口调用
出方向调用自反的ACL
如方向调用外网的ACL
默认内网ping外网可以通,外网ping内网不通
反码全为0用host,全为1用any
标准ACL使用IP地址和反码匹配流量的源
扩展ACL可以使用IP地址+反码+IP地址+反码来匹配流量的源和目的
标准的IPV4 ACL 纯三层工具,只会抓取三层报头的SIP地址
创建ACL:access-list 数字 permit/deny [SIP] 反码
调用物理接口:ip access-group 数字 in(入向)/out(出向)
在vty调用:access-class 数字 in
做管理层面的控制
Access-list 数字 permit 192.168.1.0 0.0.0.255
Line vty 0 4
Access-class 数字 in
只能被192.168.1.0网段的PC进行网管
扩展的IPV4 ACL 四层工具 即可匹配三层信息又可匹配四层信息
可以基于三层报头中的SIP,DIP地址或者协议号
如果是TCP/UDP报文还可以基于源目端口号来做流量的允许或拒绝的工作
创建:access-list 数字 permit/deny 协议号 SIP 反码 源反码 源端口号  (如果没写,代表任意的端口号都可以匹配) DIP 目的反码 目的端口号
对于TCP或UDP某些高级服务流量做允许或过滤一般只会写目的端口号
Ip access-group 数字 in/out 物理接口调用
Access-list 数字 permit ip any any  ip代表的任何流量
允许来自任何源去往任何目的的任何流量
Eq代表等于
Show ip access-list 查看状态
Show time-range 查看设置的时间
版本12.3以上的命名式ACL
Ip access-list standard/extended name(可以为纯数字)
序列号 permit/deny SIP反码  标准
序列号 permit/deny SIP反码 DIP 反码 扩展
Ip access-group name in/out 调用
Show access-list 显示ACL
如果要增加ACE或删除ACL要进入ACL中
ip access-list st name
X permit SIP
No X
扩展 ip access-list exended name
增加 X permit 协议号 SIP 反码 DIP 反码 eq x
Permit直接调用代表允许流量通过
       被高级工具调用时时匹配,仅仅用来抓取兴趣流
运用zone-based policy firewall 把路由器完全模拟为防火墙
zone-based就是路由器上能使用的基于自反ACL原理的最高级的工具
中间路由器配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
定义zone:Zone security name1 内网
Zone security name2 外网
定义class-map:Class-map type inspect match-all Icmp(name)
                Match protocol icmp
Exit
Class-map type inspect match-all HTTP(name)
                Match protocol http
Exit
Class-map type inspect match-all FTP(name)
                Match protocol ftp
Exit
Class-map type inspect match-all telnet
                Match protocol telnet
Exit
policy-map type inspect match-all name
class type inspect ICMP
inspect
class type inspect Telnet
inspect
class type inspect http
inspect
class type inspect ftp
inspect
exit

做路由策略

1
2
Zone-pair security 名字 source name2
Service-policy type inspect name

允许内网访问外网,但是流量全部被监测

1
2
3
4
Exit
Zone-pair security 名字 source name1 destination name2
Service-policy type inspect name
Exit

把相应的接口划入相应的zone
连接内网的接口
Zone-member security name1
连接外网的接口
Zone-member security name2
挂上之后,两者发送的流量都会被审计,可以基于审计信息来做一些比较高端的策略,比如:发现外网想要攻击内网时,可以直接把流量干掉

已使用 Microsoft OneNote 2016 创建。