目录
一、ACL概述
二、ACL的组成
三、ACL分类
四、举例说明
1、基于标准ACL和基础的高级ACL应用
2、基于端口的ACL
一、ACL概述
访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。通过ACL来对报文进行过滤,可以根据业务需求来对这些报文进行允许或阻止的策略。
目的:
① 防止重要的资源被恶意访问,造成损失。
② 防止带宽被随意挤占,提高业务的带宽质量。
③ 防止外网的病毒侵入,给内部网络造成安全隐患。
作用:
① 在流量经过的网络设备的进或出接口上,匹配流量产生允许或拒绝的动作。
② 定义感兴趣流量,为其他策略或协议提供帮助。
二、ACL的组成
ACL编号:由数字组成,用于标识ACL。
规则:相当于条件判断语句。
定义,也可以系默认(默认步长5)。ACL编号范围0~4294967294,规则编号由小到大进行排序。匹配规则:由上向下匹配,一旦匹配成功一条规则,则停止匹配,华为设备默认末尾允许所有,思科设备默认末尾拒绝所有。
动作:permit/deny两种动作,即允许/拒绝。
匹配项:如协议、源目IP、源目端口等。
三、ACL分类
① 标准ACL:仅关注数据包中的源IP地址,编号范围2000--2999。
使用:由于仅关注数据包中的源IP地址,故在调用的时候,应该尽量靠近目标,避免无法访问其他网段。
② 高级ACL:关注数据包中得源、目标IP地址、协议号、端口号等信息,编号范围3000--3999。
使用:由于高级ACL精确的匹配了流量源、目标IP地址等,故调用的时候尽量靠近源头,避免流量在网络中占用资源。
四、举例说明
1、基于标准ACL和基础的高级ACL应用
拓扑图
目前测试全网可达
例1 PC2可以访问PC3、PC4,PC1不可以访问PC3、PC4。
根据需求可以分析,PC3、PC4是处于同一个网段,可以使用标准ACL能更简单。
PC2可以访问PC3、PC4,在华为设备上末尾隐含允许动作,所以不需要定义。
PC1不可以访问PC3、PC4,那么就需要定义拒绝的动作,标准ACL是尽量靠近目标,所以在R2上面去定义ACL,并且调用在去PC3、PC4的接口上。
在R2上定义ACL
//定义ACL编号
[R2]acl 2000
//抓取源流量
[R2-acl-basic-2000]rule 5 deny source 192.168.1.1 0 //或者0.0.0.0,此处叫做通配符
[R2-acl-basic-2000]qu
//进入调用接口
[R2]int g0/0/1 [R2-GigabitEthernet0/0/1]traffic-filter ?
//注:入方向
inbound Apply ACL to the inbound direction of the interface
//注:出方向
outbound Apply ACL to the outbound direction of the interface
//在接口调用ACL
[R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
测试
此时PC1无法ping通PC3、PC4,满足需求。
此时PC2可以ping通PC3、PC4,满足需求。
例2 PC1不能ping通PC3,可以ping通PC4,PC2可以ping通PC3,但是不能ping通PC4。
根据需求,需要进行精确的匹配数据包的源、目标IP以及协议,所以需要用到高级ACL。
PC1不能ping通PC3,ping的协议是ICMP,源IP-192.168.1.1,目标IP-192.168.2.1。PC1可以ping通PC4,还是一样,华为设备末尾隐含允许所有。
PC2不能ping通PC4,ping的协议是ICMP,源IP-192.168.1.2,目标IP-192.168.2.2。
高级ACL是越靠近源头越好,避免流量出去造成链路的消耗。
在R1上进行定义ACL
[R1]acl 3000
//根据需求选择协议
[R1-acl-adv-3000]rule 5 deny ?
<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)
[R1-acl-adv-3000]rule 5 deny icmp source 192.168.1.1 0 destination 192.168.2.1 0
[R1-acl-adv-3000]rule 10 deny icmp source 192.168.1.2 0 destination 192.168.2.2 0
[R1-acl-adv-3000]qu
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 3000
测试
PC1 ping PC3超时,ping PC4是可以的,满足需求
PC2 ping PC3是可以的,ping PC4超时,满足需求
2、基于端口的ACL
拓扑图---用路由器模拟PC使用
测试全网可达,并且PC1可以远程登录PC2。
配置远程登录命令
//进入aaa视图
[PC2]aaa
//创建用户并设置权限级别以及密码
[PC2-aaa]local-user huawei privilege level 15 password cipher 123456
Info: Add a new user.
//开启huawei用户telnet远程登录服务
[PC2-aaa]local-user huawei service-type telnet
[PC2-aaa]qu
//限制远程登录用户数量
[PC2]user-interface vty 0 4
//绑定aaa
[PC2-ui-vty0-4]authentication-mode aaa
[PC2-ui-vty0-4]qu
例3 PC1可以ping通PC2,但是无法远程登录到PC2
telnet服务是基于tcp的23端口号,使用到端口号,也必须用到高级ACL。
在R1上定义ACL
[R1]acl 3001
[R1-acl-adv-3001]rule 5 deny ?
<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)
//定义动作,目标端口号等于(eq)23,进行拒绝操作
[R1-acl-adv-3001]rule 5 deny tcp source 192.168.1.1 0 destination 192.168.2.2 0 destination-port eq 23
[R1-acl-adv-3001]qu[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001
[R1-GigabitEthernet0/0/0]qu
测试
PC1是可以ping PC2,telnet到PC2无法连接,满足需求。