ACL established参数实现端口防护

2018-11-09 12:01
网络安全和信息化 2018年4期
关键词:报文数据包端口

随着各类网络病毒及攻击大量出现,内部网络及数据面临的威胁日益严重。这些病毒、网络攻击第一步总是通过扫描发现和利用各类计算机端口,从而达到入侵的目的。对于网络端口的防护手段很多,常用的是防火墙的包过滤策略。本文主要是针对没有防火墙的网络节点,探讨在路由器中利用ACL established参数实现端口防护。

场景需求

笔者所在公司为大型国企,网络庞大,各省、地市均有自身需要保护的数据资源。现实需求是,需要内部对外访问时候,无任何限制。而外部分公司对内部的访问,则要受到限制,不能无条件的任意访问。构造网络拓扑图,如图1所示。

图1 网络拓扑示意图

笔者所在公司为A公司,上级公司为B公司。A能够访问B公司网络(数据中心、服务器所在区域,A公司的业务要访问B公司),而作为A公司来说,不想B公司无条件访问A公司。也就是说A访问B,但B不能访问A,要求A到B的单向访问控制。

访问控制列表及原理

ACL(Access Control List)是指应用到路由器或者三层交换机接口上的指令列表,通畅成为访问控制列表,是用来实现流识别功能的。可以分为基本ACL、高级ACL、二层 ACL。

ACL的初步设计

rule1 deny ipsource 10.1.1.00.0.0.255

然后将该ACL应用在R1连接A公司交换机的GE 0/0/0口的outbound方向。按照理解,对外访问不做任何限制,而仅阻断掉来自B公司源地址的访问。但是这样配置之后,发现A公司的所有业务全部中断了!笔者赶紧进行回退,然后分析原因。

数据流假如从A发出,那么A作为源地址,第一帧数据可以发现B,但是返回数据包时,B作为了源地址,A作为了目的地址,当返回数据包进入R1时,被R1接口GE0/0/1下的ACL策略阻断了。其实这个可以根据根据TCP的三次握手连接很好的解释。

A公司作为客户端,发送连接请求报文SYN到B公司服务器端,第一次握手;

B服务器接受连接后,回复ACK报文,并为这次连接分配资源,第二次握手;但是这个报文,A是收不到的,被笔者写的ACL阻断了。

这一步后,A收不到B发来的授予连接信息了,也就是SYN+ACK的信息收不到了。也就无法进行第三次握手,无法完成A向B发ACK报文。

因此整个TCP连接无法正常建立,导致了笔者所在的A公司业务全部中断。

Boosting算法问题在于更多关注不能正确分类样本数据,对于边界样本会导致权重失衡,产生“退化问题”。在Boosting基础上使用指数权重产生用于二值分类的AdaBoost算法[28,29]。

ACL established设计

分析出原因后,笔者就针对此向解决办法。主要问题出在TCP的第二次握手上,那么如何让在这个包通过,成为解决问题的关键。

要识别出这个包,就得在这个数据包的包头上做标记进行区分。这里established参数很好的解决了这个问题。在华三/华为的网络设备中,ACL有一个不起眼的属性参数:established。笔者查阅资料,得知established参数就是在TCP连接中的ACK位、

图2 TCP设备中ACL配置

笔者所在公司某个节点路由器的配置如图2所示。RST位进行标记,从而识别出第二次握手的返回包。那么,笔者就将该识别的数据包进行放行,重新设计ACL:

rule 1 permit tcp source 10.1.1.0 0.0.0.255 established

即允许带有标志位的10.1.1.0/24的网络段。

这样之后,从A公司发出的第一次握手数据包就会匹配 rule 1,对 ACK和RST标记为1,而第二次握手的返回报中,由于ACK和RST都为1,即允许通过。

最后完整ACL设计如下:

acl number 3018

rule 1 permit tcp source 10.1.1.0 0.0.0.255 established

rule 999 deny tcp any

最后一条规则是防止其他未允许的其他类似B的公司数据包访问A公司。之后在R1的GE 0/0/1口的outbond方向下应用。

packet-filter 3018 outbound

验证

在配置完成后,笔者进行效果验证。

从笔者所在的A公司访问B公司,所有业务正常。从B公司访问A公司,不能访问。达到了当初预期目标。

这样做的好处在哪里,笔者在此进行总结:

1.能对A公司内部网络进行有效防护。因无法进行TCP连接,很多暴力的扫描、非法访问、病毒传播都无法从外部进入内部网络。

2.不影响A公司业务。对于需要访问外部公司的业务,不受影响。

这样的好处,类似于一个公司内网可以访问外网,但是外网无法访问到公司内网。所以在当今网络安全日益严重的今天,这样的应用场景需求很多。

总结

本文仅采用了一个实例,说明了ACL established 的应用场景,及配置方法。对于大型公司网络段较多,业务较多的场景,需要梳理出业务需求段。

有时既存在A到B的主动访问,还有B到A的主动访问。对于A到B的主动访问,可通过established参数实现返回包通过。而对于B到A的主动访问,直接用不带参数的permit方式允许通过,并将该规则置前,因为ACL是从上到下顺序执行的。

Established参数仅仅对TCP连接过滤,无法过滤UDP协议,因此假如有病毒是通过UDP协议端口传播,只能通过deny源地址进行,无法使用本文所述方法。

猜你喜欢
报文数据包端口
基于J1939 协议多包报文的时序研究及应用
二维隐蔽时间信道构建的研究*
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
CTCS-2级报文数据管理需求分析和实现
硬件解耦三端口变换器的软开关分析与仿真
浅析反驳类报文要点
C#串口高效可靠的接收方案设计
交换机生成树安全
ATS与列车通信报文分析