admin 管理员组

文章数量: 887021

ACL

1.access-list 与ip access-list的区别

access-list 是用数字来定义----acl(标准或扩展ACL,用数字定义) 
ip access-list 是用名字来定义acl(命名ACL 命名前面要加 standard or extended
2.应用在端口上的访问控制列表
1、如果在路由器R1上配置标准的访问控制列表,阻止PC1访问PC3,如配置的ACL为access-list 1 deny 192.168.1.254 0.0.0.0 access-list 1 permit any。如果将此访问列表应用到f0/1接口int f0/1
ip access-group 1 (in/out)不管此处是in还是out PC1都将无法访问PC2,但是这两种情况下,数据包被阻止的情况不一样,如果应用的是 ip access-group 1 out,那么从PC1传送出来的数据包,只能传到f0/1接口,但不能通过此接口,因为此时访问列表将PC1发送的数据包给阻止了。
但是如果应用的是 ip access-group 1 in应用到f0/1接口的,那么从PC1传输的数据包可以通过f0/1接口到达PC2,但是,此时从PC2返回给PC1的流量将无法通过f0/1,因为此时f0/1的的访问列表应用的是in(即入口访问方式),所以进入该接口的数据包将会被阻止。
2、但是如果此处用的不是标准的访问控制列表(即使用的是扩展的访问控制列表),情况将会有有所不同。
如 access-list 100 deny ip host 192.168.1.254 host 192.168.2.254
access-list 100 permit ip any any
如果将此访问控制列表应用在f0/1接口下,如 int f0/1 ip access-group 100 (out/in)此处只有是使用的是out时,才能阻止PC1访问PC2,因为但PC1发送的数据包到达f0/1接口时,就被访问控制列表所阻止了,所以无法到达目的主机PC2.
但是如果使用的是ip access-group in应用在f0/1接口下,PC1 的数据包将能通过f0/1的接口到达PC2,也许此有人会认为,PC1的数据包能通过f0/1,但是PC2返回给PC1 的数据包通不过f0/1的,因为f0/1应用的是in,可以阻止进入的流量,但是你有没有考虑到此时,从PC2返回的给PC1的数据包的源地址和目的地址是什么,(此时返回的源地址是PC2的IP地址,目的地址是PC1的IP地址),而应用在F0/1的ACL的阻止的源地址是PC1的IP地址,目的地址是PC2的IP地址,所以当将返回给PC1的数据包的源地址和目的地址与ACL中阻止的地址相比较的时候,根本就没有匹配的,所以数据包就可以通过f0/1了。

3.应用在vlan上的访问控制列表
网络上的问题:vlan间的访问控制
要阻止vlan9 192.168.9.142访问vlan20,
应用到vlan20的in方向,只配置deny ip host 192.168.9.142 any的时候,192.168.9.142不能访问vlan20的资源,只要一加上permit ip any any就可以访问了,感觉第一条根本没有匹配上,只有permit ip any any起作用。
最佳答案 :
假设你的192.168.9.142地址属于vlan9,vlan20的网段是192.168.20.0/24.
应该做ACL
ip access-list extended test
deny ip host 192.168.9.142 192.168.20.0 0.0.0.255
permit ip any any
把这个ACL应用到vlan9接口的in 方向。(扩展访问控制列表要靠近源地址)
这样做的好处就是 192.168.9.142访问vlan20的流量在网关处就被拒绝了,这样就防止没必要的流量在你的网络中流通。如果你把acl放到vlan20去,你192.168.9.142的流量会发送到vlan20才被拒绝。
实际应用:192.168.88.0/24为财务网段,下面两个控制列表有何不同
A应用在vlan的入方向上
#inter vlan 88
#ip access-group caiwu-out out
ip access-list extended caiwu-out
5 permit ip host 192.168.18.112 192.168.88.0 0.0.0.255
10 deny ip 192.168.0.0 0.0.191.255 192.168.88.0 0.0.0.255
20 permit ip any 192.168.88.0 0.0.0.255
!

B应用在vlan的出方向上
#inter vlan 88
#ip access-group caiwu-in in
ip access-list extended caiwu-in
permit ip 192.168.88.0 0.0.0.255 host 192.168.18.112
10 deny ip 192.168.88.0 0.0.0.255 192.168.0.0 0.0.191.255
20 permit ip any any

4.ACL做vlan间的单向访问
以下配置及说明以Cisco配置为前提。
因为通信是相互的,所以Cisco设备中的ACL在应用中默认是双向限制的。
如何按需实现单向访问?即不能让B访问A,但允许A访问B。假设A和B属于不同的Vlan,Vlan间的路由通过三层交换机实现。
此时有两种方法实现单向访问控制:
1)在三层交换机上做Vlan-Filter;
2)利用reflect做ACL。
基于你的拓扑结构,是采取单臂路由来实现Vlan间的通信,所以只能采取方法2,并在路由器做配置。
配置如下:(两步)
//第一步:建立访问控制列表
ip access-list extended ACL-inbound //“ACL-inbound”是自定义的ACL名称
//我并不阻止Vlan10内部的主机访问外网,为什么还要建立Vlan10站内的ACL呢?
//这是因为在这里要指定“reflect”策略,在制定站外策略(Vlan20访问Vlan10)时需要用到!
permit ip host 192.168.10.2 host 192.168.20.2 reflect ACL-Ref
//指定一个reflect策略,命名为“ACL-Ref”,在制定站外ACL时要用到
permit ip any any //允许站内任意主机到站外任意地址的访问,必配,否则Vlan10其他主机无法出站访问!
ip access-list extended ACL-outbound //站外访问控制策略
evaluate ACL-Ref //允许前面定义的reflect策略(ACL-Ref)中指定通信的返回数据
deny ip host 192.168.20.2 host 192.168.10.2 //阻止192.168.20.2访问192.168.10.2
permit ip any any //允许站外其他任意主机访问Vlan10内的任意主机
//第二步:端口应用ACL
interface fa0/0.1 //进入Vlan10的通信端口配置
ip address 192.168.10.1 255.255.255.0
ip access-group ACL-inbound in //应用站内访问控制策略“ACL-inbound”
ip access-group ACL-outbound out //应用站外访问控制策略“ACL-outbound”
以上,供参考
以下为华为盒式交换机配置
假设,要求192.168.1.0/24网段用户可以主动访问192.168.2.0/24网段用户,但反过来192.168.2.0/24网段用户不能主动访问192.168.1.0/24。
由TCP建立连接和关闭连接的过程可知,只有在TCP中间连接过程的报文才会ACK=1或者RST=1。根据这个特点,配置如下两种ACL规则,允许TCP中间连接过程的报文通过,拒绝其他TCP报文通过,就可以限制192.168.2.0/24网段主动发起的TCP连接。
acl nu 3000
rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag established // established表示ACK=1或者RST=1,表示允许TCP中间连接过程的报文通过
rule deny tcp source 192.168.2.0 0.0.0.255 //拒绝其他TCP报文通过
traffic-filter vlan 10 inbound acl 3000 //在vlan下应用或接口下应用
以下为锐捷盒式交换机配置
Ruijie# show access-lists 101
ip access-list extended 101
10 deny tcp 192.168.100.0 0.0.0.255 192.168.200.0 0.0.0.255 match-all syn
20 permit ip any any
通过验证可以确认此时PC-B无法主动发起TCP连接访问PC-A,但是由于只是限制TCP连接,对于ICMP或UDP报文,依然可以主动访问到PC-A。

反ACL(Reflective ACL)是动态ACL技术的一种应用。设备根据一个方向的ACL,可以自动创建出一个反方向的ACL(自反ACL),该ACL和原ACL的源IP地址和目的IP地址、源端口号和目的端口号完全相反。自反ACL有一定的老化周期。如果在老化周期内有符合自反ACL规则的报文通过接口,该接口的自反ACL规则将再被保留至下一老化周期;如果在老化周期内没有符合自反ACL规则的报文通过接口,该接口的自反ACL规则被删除,这样大大增加了安全性。
利用自反ACL,可以实现单向访问控制,比如只有当内网用户先访问了外网后才允许外网访问内网,从而能够很好的保护企业内部网络,使其使免受外部非法用户的攻击。
本例,就是将高级ACL进行自反,实现内网主机能主动与Internet中的服务器建立UDP连接,但Internet中的服务器不能主动与内网主机建立UDP连接,达到内外网单向访问控制的目的。
操作步骤
配置高级ACL

创建高级ACL 3000并配置ACL规则,允许UDP报文通过。

system-view
[HUAWEI] sysname Switch
[Switch] acl 3000
[Switch-acl-adv-3000] rule permit udp //允许UDP报文通过
[Switch-acl-adv-3000] quit
配置

由于来自Internet的报文从接口GE2/0/1进入Switch,所以可以在接口GE2/0/1的出方向配置自反ACL功能,对UDP报文进行自反。

[Switch] interface gigabitethernet 2/0/1
[Switch-GigabitEthernet2/0/1] traffic-reflect outbound acl 3000 //自反ACL应用在接口出方向
[Switch-GigabitEthernet2/0/1] quit

可通过在核心交换机上配置流策略实现ICMP和TCP业务的单向访问,在ping过程中,由于报文交互存在icmp echo和reply报文,因此可以配置ACL匹配其他网段主动发起的去往运维网段的echo报文,匹配流行为是拒绝。同样的,在TCP的三次握手当中,TCP主动发起方会发起syn请求报文.可以配置ACL匹配其他网段主动发起的去往运维网段的syn报文,匹配流行为是拒绝。相关核心交换机的配置操作如下
步骤一:在核心交换机S7706上新建高级ACL匹配内网其他网段发起的去往运维部门192.168.7.0网段ping业务的echo报文和TCP业务的syn报文
acl number 3001
rule 15 permit icmp source 192.168.6.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 icmp-type echo
rule 20 permit tcp source 192.168.6.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 tcp-flag syn
rule 25 permit icmp source 192.168.8.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 icmp-type echo
rule 35 permit icmp source 192.168.8.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 tcp-flag syn
步骤二:创建traffic classifier流分类匹配高级ACL兴趣流并创建traffic behavior设置动作为拒绝,在流策略下绑定对应的流分类和流行为,匹配来自于内网其他业务网段发起的去往运维部门网段的ping报文和TCP报文被拒绝
traffic classifier danxiang operator or precedence 20
if-match acl 3001
traffic behavior danxiang
deny
traffic policy danxiang match-order config
classifier danxiang behavior danxiang
步骤三:由于运维部门192.168.7.0网段的业务只在405接入交换机下面,因此在核心交换机互联405交换机的接口G2/0/3下应用流策略在outbound方向即可,实现核心交换机拒绝内网其他网段主动发起的去往运维部门192.168.7.0网段的icmp和TCP报文从G2/0/3口出去
interface GigabitEthernet2/0/3
port link-type trunk
port trunk allow-pass vlan 5 to 30
traffic-policy danxiang outbound

5.ACL与VACL
我们常说的VLAN之间的访问控制,它的实现方式是将ACL直接应用到VLAN的虚端口上,与应用到物理端口的ACL实现方式是一样的。而VLAN访问控制(VACL),也称为VLAN访问映射表,它的实现方式与前者完全不同。它应用于VLAN中的所有通信流,支持基于ETHERTYPE和MAC地址的过滤,可以防止未经授权的数据流进入VLAN.目前支持的VACL操作有三种:转发(forward),丢弃(drop),重定向(redirect)。
VACL很少用到,在配置时要注意以下几点:
1) 最后一条隐藏规则是deny ip any any,与ACL相同。
2) VACL没有inbound和outbound之分,区别于ACL.
3) 若ACL列表中是permit,而VACL中为drop,则数据流执行drop.
4) VACL规则应用在NAT之前。
5) 一个VACL可以用于多个VLAN中;但一个VLAN只能与一个VACL关联。
6) VACL只有在VLAN的端口被激活后才会启用,否则状态为inactive.
下面使用Cisco3560交换机作为实验来详细的说明上面的陈述
网络基本情况是划分了三个vlan:vlan10、vlan20和vlan30,vlan虚端口的IP地址分别为192.168.10.1/24、192.168.20.1/24和192.168.30.1/24.
访问控制要求:vlan10和vlan20之间不能访问,但都能访问vlan30.
(1)通过vlan之间ACL实现
interface Vlan10
ip address 192.168.10.1 255.255.255.0
ip access-group 101 in
interface Vlan20
ip address 192.168.20.1 255.255.255.0
ip access-group 102 in
interface Vlan30
ip address 192.168.30.1 255.255.255.0
ip classless
ip http server
access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
access-list 102 permit ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255
(2)通过VACL实现
access-list 103 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
access-list 103 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
access-list 104 permit ip 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255
access-list 104 permit ip 192.168.30.0 0.0.0.255 192.168.20.0 0.0.0.255
vlan access-map test1
action forward
match ip address 103
vlan access-map test2
action forward
match ip address 104
vlan filter test1 vlan-list 10
vlan filter test2 vlan-list 20

华为交换机案例
【S交换机系列网络侧防御配置案例】

  1. 建立针对高危端口的ACL规则
    

acl number 3000 // 3000到4000之间没有使用的ACL皆可

rule 5 permit tcp destination-port eq 445

rule 10 permit tcp destination-port eq 135

rule 15 permit tcp destination-port eq 137

rule 20 permit tcp destination-port eq 139

rule 25 permit tcp destination-port eq 3389

rule 30 permit udp destination-port eq 445

rule 35 permit udp destination-port eq 135

rule 40 permit udp destination-port eq 137

rule 45 permit udp destination-port eq 139

rule 50 permit udp destination-port eq 3389

  1. 建立流策略
    

traffic classifier deny-bingdu operator and

if-match acl 3000 // 注意跟之前ACL对应

traffic behavior deny-bingdu

deny

traffic policy deny-bingdu

classifier deny-bingdu behavior deny-bingdu

  1. 应用流策略
    

// 接口下应用示例,系统视图下运行该脚本

interface GigabitEthernet0/0/1

traffic-policy deny-bingdu inbound

traffic-policy deny-bingdu outbound

// 全局应用示例,系统视图下运行该脚本

traffic-policy deny-bingdu global inbound

traffic-policy deny-bingdu global outbound

// 端口组下应用示例,系统视图下运行该脚本,可以避免多个端口下重复配置

port-group deny-bingdu

group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/10 // 注意端口选择

traffic-policy deny-bingdu inbound

traffic-policy deny-bingdu outbound

【说明】

· 建议在核心和汇聚交换机配置该脚本,如果内网已有电脑中毒,则需要在其接入交换机配置脚本;

· 最好在所有端口下配置,次选在全局和上行端口配置;

· traffic-policy在全局、同一端口下只能应用一次,如之前已有流策略应用,则会配置失败;可在其流策略里增加classifier deny-bingdu behavior deny-bingdu;

· S2700SI系列交换机不支持acl,S2700/S3700不支持出方向流策略;

CE交换机防御配置案例指导
1、 配置ACL匹配需要保护的目的端口号,选取设备上一个没有使用的高级ACL,例如:
Acl 3000

Rule 5 permit tcp destination-port eq 135

Rule 10 permit udp destination-port eq 135

Rule 15 permit tcp destination-port eq 137

Rule 20 permit udp destination-port eq 137

Rule 25 permit tcp destination-port eq 139

Rule 30 permit udp destination-port eq 139

Rule 35 permit tcp destination-port eq 445

Rule 40 permit udp destination-port eq 445

Rule 45 permit tcp destination-port eq 3389

Rule 50 permit udp destination-port eq 3389

2、 配置流分类匹配ACL

Traffic classifier test

if-match acl 3000

3、 配置流行为丢弃

Traffic behavior test

deny

4、 配置流策略

Traffic policy test

classifier test behavior test

5、 将策略配置在全局入方向

Traffic-policy test global inbound

6、 提交配置

Commit

注意:请将策略应用在设备的入方向,CE12800出方向策略匹配IP中的字段,只能对三层转发的流量生效

AR路由器推荐防御方案

适配版本

V200R005、V200R006、V200R007、V200R008、V200R009、V200R010

注意:配置前请确认是否有正在使用135、137、139、445、3389端口的服务,避免影响正常业务

  1. 建立针对高危端口的ACL规则

acl number 3000

rule 5 permit tcp destination-port eq 135

rule 10 permit tcp destination-port eq 137

rule 15 permit tcp destination-port eq 139

rule 20 permit tcp destination-port eq 445

rule 25 permit udp destination-port eq 135

rule 30 permit udp destination-port eq 137

rule 35 permit udp destination-port eq 139

rule 40 permit udp destination-port eq 445

rule 45 permit tcp destination-port eq 3389

rule 50 permit udp destination-port eq 3389

  1. 建立流策略

traffic classifier virus operator or

if-match acl 3000

traffic behavior virus

deny

traffic policy virus

classifier virus behavior virus

  1. 内网接口应用流策略

interface VlanifXXX //内网网关使用的是Vlanif接口

traffic-policy virus outbound //出方向应用流策略

interface GigabitEthernetX/X/X //内网网关使用的是物理接口

traffic-policy virus outbound //出方向应用流策略

如内网使用多个接口,请逐一进行流策略应用。

***三层交换机的单向访问案例


可通过在核心交换机上配置流策略实现ICMP和TCP业务的单向访问,在ping过程中,由于报文交互存在icmp echo和reply报文,因此可以配置ACL匹配其他网段主动发起的去往运维网段的echo报文,匹配流行为是拒绝。同样的,在TCP的三次握手当中,TCP主动发起方会发起syn请求报文.可以配置ACL匹配其他网段主动发起的去往运维网段的syn报文,匹配流行为是拒绝。相关核心交换机的配置操作如下

步骤一:在核心交换机S7706上新建高级ACL匹配内网其他网段发起的去往运维部门192.168.7.0网段ping业务的echo报文和TCP业务的syn报文

acl number 3001

rule 15 permit icmp source 192.168.6.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 icmp-type echo

rule 20 permit tcp source 192.168.6.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 tcp-flag syn

rule 25 permit icmp source 192.168.8.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 icmp-type echo

rule 35 permit icmp source 192.168.8.0 0.0.0.255 destination 192.168.7.0 0.0.0.255 tcp-flag syn

步骤二:创建traffic classifier流分类匹配高级ACL兴趣流并创建traffic behavior设置动作为拒绝,在流策略下绑定对应的流分类和流行为,匹配来自于内网其他业务网段发起的去往运维部门网段的ping报文和TCP报文被拒绝

traffic classifier danxiang operator or precedence 20

if-match acl 3001

traffic behavior danxiang

deny

traffic policy danxiang match-order config

classifier danxiang behavior danxiang

步骤三:由于运维部门192.168.7.0网段的业务只在405接入交换机下面,因此在核心交换机互联405交换机的接口G2/0/3下应用流策略在outbound方向即可,实现核心交换机拒绝内网其他网段主动发起的去往运维部门192.168.7.0网段的icmp和TCP报文从G2/0/3口出去

interface GigabitEthernet2/0/3

port link-type trunk

port trunk allow-pass vlan 5 to 30

traffic-policy danxiang outbound

步骤四:在电脑测试,从运维部门192.168.7.0网段可以ping通内网其他网段,内网其他网段不能ping通运维部门网段。运维部门可以访问到内网其他网段的文件共享(FTP协议)等TCP业务,测试通过

***对比精准过滤 ***
通过traffic-filter调用

sys

[Huawei]acl 3000 //创建高级ACL(3000~3999)

[Huawei-acl-adv-3000]

[Huawei-acl-adv-3000]rule permit ip source192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 //配置允许192.168.1.0段去访问192.168.2.0段

[Huawei-acl-adv-3000]rule deny ip source192.168.1.0 0.0.0.255 destination 192.168.4.0 0.0.0.255 //配置拒绝192.168.1.0段去访问192.168.=4.0段

[Huawei-acl-adv-3000]dis thi //查看当前配置是否配置成功

acl number 3000

rule5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255

rule10 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.4.0 0.0.0.255

return

[Huawei-acl-adv-3000]q //退出ACL视图

[Huawei]int g0/0/1 //进入对应的接口

[Huawei-GigabitEthernet0/0/1]traffic-filterinbound acl 3000 //接口下调用ACL 3000

[Huawei-GigabitEthernet0/0/1]q //退出接口视图

[Huawei]

上面的这个配置有点粗糙。没错,配置完1.0不能访问2.0,反过来2.0ping1.0也不通了。因为通信是相互的,icmp和tcp协议都存在一个对方要回信号(TCP三次握手)

下面是一个实现精确单向控制的ACL

交换机V100R005以后版本可以通过下面的方法配置针对ICMP和TCP报文的单向访问。

下面是交换机实现从A不能访问B,但能从B访问A需求的示例
假设192.168.10.0是A的地址段(属于VLAN10),192.168.20.0是B的地址段(属于VLAN20)

1、创建ACL,制定访问控制规则(默认是permit)
acl 3000
rule 5 deny icmp source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 icmp-type echo //配置ICMP单向访问规则 注解一下ehco的意思是第一个请求包,规则拒绝的是icmp中10请求20,
rule 10 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 tcp-flag syn //配置TCP单向访问规则 注解一下syn是三次握手的第一个动作,就被deny了
quit

对于TCP协议,需要允许B->A,报文头中SYN Flag的类型为ack(010000)或rst(000100)的TCP报文:
----------V2R2版本及以前的配置------------
rule 9 permit tcp source Y.Y.Y.Y 0.0.0.255 destination X.X.X.X 0.0.0.255 tcp-flag ack
rule 10 permit tcp source Y.Y.Y.Y 0.0.0.255 destination X.X.X.X 0.0.0.255 tcp-flag rst
----------V2R3版本及以后的配置------------
rule 10 permit tcp source Y.Y.Y.Y 0.0.0.255 destination X.X.X.X 0.0.0.255 tcp-flag established

2、配置流分类,匹配ACL
traffic classifier c1
if-match acl 3000
quit

3、配置流行为
traffic behavior b1
quit

4、配置流策略,关联流分类和流行为
traffic policy p1
classifier c1 behavior b1
quit

5、应用流策略
应用到接口上
interface gigabitethernet 1/0/1
traffic-policy p1 inbound
或者应用到vlan上
vlan 10
traffic-policy p1 inbound
或者在全局应用
traffic-policy p1 global inbound

本文标签: ACL