应用场景:
路由器有一种功能叫自反ACL,能够实现单向访问的需求,比如A用户能够主动访问B,但是B用户不能主动访问A,但是交换机的安全ACL是通过硬件芯片直接实现,所以没有自反ACL的逻辑,无法实现同样的效果。但是如果您需要控制的A,B用户之间的数据流是TCP这样的带有状态位的协议时,因为每次访问前都需要先进行TCP会话协商,有三次握手的过程,就可以考虑利用TCP
SYN位的发起方来变相的控制A能主动发起到B的访问,但是B不能主动访问A,从而实现类似于自反ACL的功能。
特别适用于一些敏感服务器,比如提供给外网访问他的FTP,WEB服务等,但是出于安全考虑,不允许这些服务器去访问internet上面的其他TCP的服务。交换机依靠TCP
FLAG实现基于TCP的访问限制,其他非TCP协议,比如ICMP报文和UDP报文将无法做限制。
功能简介:
ACLs
的全称为接入控制列表(Access Control Lists),也称为访问列表(Access Lists),俗称为防火墙,在有的文档中还称之为包过滤。ACLs
通过定义一些规则对网络设备接口上的数据报文进行控制:允许通过或丢弃。对数据流进行过滤可以限制网络中的通讯数据的类型,限制网络的使用者或使用的设备。安全ACLs
在数据流通过网络设备时对其进行分类过滤,并对从指定接口输入或者输出的数据流进行检查,根据匹配条件(Conditions)决定是允许其通过(Permit)还是丢弃(Deny)。
ACLs
由一系列的表项组成,我们称之为接入控制列表表项(Access Control Entry:ACE)。每个接入控制列表表项都申明了满足该表项的匹配条件及行为。访问列表规则可以针对数据流的源目MAC、源目IP地址、TCP/UDP上层协议,时间区域等信息,通常分为如下几种类型的ACL:IP标准ACL,IP扩展ACL,MAC扩展ACL,专家级Expert
ACL,IPv6扩展ACL,报文的前80字节的ACL 80等。
ACL部署原则:
ACL通过过滤数据包并且丢弃不希望抵达目的地的数据包来控制通信流量。然而,网络能否有效地减少不必要的通信流量,这还要取决于网络管理员把ACL放置在哪个地方。
原则:根据减少不必要通信流量的通行准则,管理员应该尽可能地把ACL放置在靠近被拒绝的通信流量的来源处。
举个例子:我们经常见到对常见病毒端口进行过滤的ACL,那么这种ACL应用在哪里比较合适呢?
对于网络中的用户来说,这个防病毒端口的过滤显然用在最接近用户的交换机上来做比较好,这样可以从源头上控制被感染的机器采用病毒端口进行通讯,减少对其他交换机上用户带来的应用。
如果要控制外网进来的流量对服务器的端口访问过滤,那么这种限制就应该放在这个网络的出口处较好,这样可以将这种非法流量从一开始就拒之门外。当然如果内网也需要对服务器的端口访问进行过滤,那么由于内网的源IP很多,目的IP一致的情况下,在靠近目标IP的地方做ACL过滤,因为这样只需要一个ACL即可,否则你需要在很多设备上去分别部署,因为你要控制所有的源到这个目的IP的访问,影响效率。而如果你在接近服务器的交换机上部署ACL,那么你只需要一个ACL即可。
总结如下:
1、对常见的病毒端口过滤的ACL,一般部署在接入层交换机上。
2、对外提供公共服务器的服务器,一般建议在接近服务器的交换机上控制对其端口的访问。
3、对于网段间的互访,根据实际情况,可以选择在源或目的网段上做控制,也可以在网络较大的情况,网段互访规则较多的情况下,在中间核心设备上集中部署。
4、对于上下级机构、内外网访问规则间的访问控制,建议在边界设备上集中部署,比如出口路由器,防火墙等。
一、组网需求
客户要求阻止网络B (192.168.100.0)的主机发起到网络 A(192.168.200.0) 的TCP 通信请求,但主机A可以主动访问B,B也可以进行报文回复,实现单向控制的目的。
限制事项:(交换机依靠TCP FLAG实现只能实现基于TCP的限制,ICMP报文和UDP报文无法限制)
二、配置要点
为了在一定程度上保证网络A的安全,要求只允许网络
A 的主机向网络B主机发起的TCP通信请求,B可以证实回应报文,进行双向通信。但是不允许网络B 的主机发起到网络 A 的TCP 通信请求。
三、组网拓扑
四、配置步骤
说明:环境要求阻止网络B 的主机发起到网络 A 的TCP
通信请求,只要过滤从网络B发起经过中间设备G3/2口转发的TCP连接请求报文即可。分析TCP连接过程可知,TCP初始请求报文的TCP首部标志字段的SYN置1且ACK标志位为0。因此,我们可以通过配置扩展访问控制列表的Match-all选项,在G3/2端口的入口方向,对TCP首部SYN标志位置1且ACK标志位为0的报文进行过滤,即可实现网络A单向访问网络B的应用。
方法1:在B上做控制
交换机 SWB的配置命令如下:
Ruijie>en
Ruijie# configure terminal
Ruijie(config)# ip
access-list extended 101 ------>在配置模式下创建扩展访问列表ACL101
Ruijie(config-ext-nacl)#
deny tcp 192.168.100.0 0.0.0.255 192.168.200.0 0.0.0.255 match-all syn ------>拒绝TCP Flag的SYN=1,且其它(包含ACK标志位)标志位为0的报文通过
Ruijie(config-ext-nacl)#
permit ip any any ------>允许其它IP报文通过
Ruijie(config-ext-nacl)#
exit
Ruijie(config)# interface
gigabitEthernet 3/2 ------>进入应用此访问列表的接口G3/2
Ruijie(config-if)# ip
access-group 101 in ------>将ACL 101应用于G3/2入方向的包过滤
Ruijie(config-if)#end
Ruijie#wr
方法2: 在A上做控制
Ruijie# configure terminal
Ruijie(config)# ip
access-list extended 101 ------>在配置模式下创建扩展访问列表ACL101
Ruijie(config-ext-nacl)# deny tcp 192.168.100.0 0.0.0.255
192.168.200.0 0.0.0.255 match-all syn ------>拒绝TCP
Flag的SYN=1,且其它(包含ACK标志位)标志位为0的报文通过
Ruijie(config-ext-nacl)#
permit ip any any ------>允许其它IP报文通过
Ruijie(config-ext-nacl)#
exit
Ruijie(config)# interface
VLAN 100------>进入A网段的VLAN
Ruijie(config-if-VLAN100)#
ip access-group 101 out ------>将ACL 101应用于A网段出口方向的包过滤
Ruijie(config-if)#end
Ruijie#wr
五、功能验证
查看ACL配置命令:
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。