博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防火墙——无状态分组过滤器和有状态分组过滤器的对比
阅读量:4180 次
发布时间:2019-05-26

本文共 3353 字,大约阅读时间需要 11 分钟。

一、防火墙概述

1.1引出防火墙的原因:

安全的网络系统既要保障正常的数据交换过程,又要能够检测用于实施攻击的数据交换过程。阻止用于实施攻击的数据交换过程需要做到以下两点:一是能够在网络间传输,或者用户终端输入输出的信息流中检测出用于实施攻击的信息流;二是能够丢弃检测出用于实施攻击的信息流。

防火墙位于网络之间,或者用户终端与网络之间。具有以下功能:一是能够检测出用于实施攻击的信息流,并阻断这样的信息流;二是能够允许正常信息流通过。

防火墙工作机制:依据配置的安全策略允许或阻断操作。

1.2防火墙分类:

个人防火墙

只保护单台计算机,用于对进出计算机的信息流实施控制,因此,个人防火墙通常是分组过滤器。
无状态分组过滤器:只根据单个IP分组携带的信息确定是否过滤掉该IP。
有状态分组过滤器:不仅根据IP分组携带的信息,而且还根据IP分组所属的会话的状态确定是否过滤掉该IP分组。
网络防火墙
通常位于内网和外网之间的连接点,对内网中的资源实施保护。目前作为网络防火墙的主要是:分组过滤器、电路层代理、应用层网关。

分组过滤器:根据用户指定的安全策略对内网和外网之间传输的信息流实施控制,它对信息流的发送端和接收端是透明的,所以分组过滤器的存在不需要改变终端访问网络的方式。

电路层代理:终端先向电路代理层请求建立TCP连接,电路层代理在完成对终端用户的身份鉴别后,和服务器建立TCP连接,并将这两个TCP绑定在一起。

应用层网关:对应用层数据进行内容安全检查,应用层各字段值是否正确?请求消息和响应消息是否匹配?文件内容是否包含进制传播的非法内容或病毒?

防火墙功能—防火墙的功能主要包含以下几个:

1.服务控制:只允网络间相互交换和特定服务相关的信息流
2.方向控制:只允许网络之间交换与由属于某个特定网络的终端发起的3特定服务相关的信息流。
3.用户控制:不同网络之间只允许传输与授权访问用户合法访问网络资源相关的信息流。
4.行为控制:不同网络只允许传输与行为合理的网络资源访问过程相关的信息流。

防火墙的局限性:

1.无法防御网络内部终端发起的攻击。
2.不能阻止病毒的传播。
3.无法防御利用防火墙安全策略允许的信息传输过程实施的攻击

二、分组过滤器

2.1无状态分组过滤器和有状态分组过滤器的区别:

无状态分组过滤器:只根据单个IP分组携带的信息确定是否过滤掉该IP。(基于单个IP分组)

有状态分组过滤器:不仅根据IP分组携带的信息,而且还根据IP分组所属的会话的状态确定是否过滤掉该IP分组。(基于一个会话)
分组过滤器一般指无状态分组过滤器,通过制定规则对每一个IP分组的单向传输过程独立进行控制,但实际应用中常常需要针对某个服务相关的一组IP分组的传输过程实施控制,这种控制过程一是双向的,完成服务过程中需要双向传输IP分组;二是相关性,同一传输方向,不同顺序的IP分组之间存在相关性,两个不同传输方向的IP分组之间存在相关性,这种情况下的IP分组传输过程需要有状态分组过滤器机制实施控制。

判别是否是响应消息的依据:一是响应消息是属于终端A发起建立的与Web服务器之间的TCP连接的TCP报文,即TCP报文的源和目的IP地址、源和目的端口号等于标识该TCP连接的两端插口。二是响应消息和终端A发送给Web服务器的请求消息存在相关性,即如果终端A发送的是建立TCP连接请求报文,则响应消息是同意建立TCP连接的响应报文,如果终端A发送的是HTTP请求报文,则响应消息是HTTP响应报文。这就意味着终端A至Web服务器传输方向可以通过无状态分组过滤器实现允许与终端A访问Web服务器相关的TCP报文正常转发的访问控制,而Web服务器至终端A方向的过滤规则必须根据当前TCP连接状态和终端A刚发送给Web服务器的请求报文的内容动态设置,这就是有状态分组过滤器的本质含义。

无分组状态过滤器

过滤规则:由一组属性值(源IP地址、目的IP地址、源和目的端口号、协议类型)和操作组成,如果某个IP分组携带的信息和构成规则的一组属性值匹配,意味着该IP分组和规则匹配,对该IP分组实施规则制定的操作。
过滤规则格式:
协议类型= ,源IP地址= ,源端口号= ,目的IP地址= ,目的端口号= ;操作。
两种过滤规则集设置方法:
1)黑名单—是列出所有禁止传输的IP分组类型,没有明确禁止的IP分组类型都是允许传输的。
2)白名单—是列出所有允许传输的IP分组类型,没有明确允许的IP分组类型都是禁止传播的。

路由器R1接口1输入方向的过滤规则集如下:

协议类型=TCP,源IP地址=192.1.1.1/32,源端口号=,目的IP地址=192.1.2.7/32,目的端口号=80;正常转发。
协议类型=TCP,源IP地址=192.1.1.7/32,源端口号=21,目的IP地址=192.1.2.1/32,目的端口号=
;正常转发。
协议类型=TCP,源IP地址=192.1.1.7/32,源端口号=20,目的IP地址=192.1.2.1/32,目的端口号=;正常转发。
协议类型=
,源IP地址=any,目的IP地址=any;丢弃。
路由器R2接口2输入方向的过滤规则集如下:
协议类型=TCP,源IP地址=192.1.2.1/32,源端口号=,目的IP地址=192.1.1.7/32,目的端口号=21;正常转发。
协议类型=TCP,源IP地址=192.1.2.1/32,源端口号=
,目的IP地址=192.1.2.1/32,目的端口号=20;正常转发。
协议类型=TCP,源IP地址=192.1.2.7/32,源端口号=80,目的IP地址=192.1.2.1/32,目的端口号=;正常转发。
协议类型=
,源IP地址=any,目的IP地址=any;丢弃。

有状态分组过滤器:

引出有状态分组过滤器的原因:
但上述过滤规则中直接允许Web服务器发送的、源端口号为80的TCP报文沿着Web服务器至终端A方向传输
一是只允许由终端A发起建立与Web服务器之间的TCP连接;
二是没有规定这种传输过程必须在由终端A发起建立与Web服务器之间的TCP连接后进行,也就是没有作用顺序限制;
三是由于需要用两端插口标识TCP连接,因此,上述过滤规则并没有明确指出只有属于由终端A发起建立与Web服务器之间的TCP连接的TCP报文才能沿着Web服务器至终端A方向传输。

针对上述三点,有状态分组过滤器的工作原理如下:

1.终端A至Web服务器传输方向上的过滤规则允许终端A传输与终端A发起访问Web服务器的操作有关的TCP报文;
2.初始状态下,Web服务器至终端A传输方向上的过滤规则拒绝一切IP分组;
3.只有当终端A至Web服务器传输方向上传输了与终端A发起访问Web服务器的操作相关的TCP报文之后,Web服务器至终端A传输方向才允许传输作为对应的响应报文的TCP报文。

有状态分组过滤器根据功能分为会话层和应用层两种类型的有状态分组过滤器。这里的会话层是指分组过滤器检查信息的深度限于与会话相关的信息,与OSI体系结构的会话层没有关系。应用层是指分组过滤器检查信息的深度涉及应用层协议数据单元(PDU)中有关的字段。

1)会话层有状态分组过滤器
一个方向配置允许发起创建某个会话的IP分组传输的过滤规则集。创建会话之后,所有属于该会话的报文可以从两个方向传输。也就是说一旦终端A发出请求建立与Web服务器之间的TCP请求报文,路由器R1在会话表中创建一个会话;创建该会话之后,所有属于该会话的TCP报文允许经过路由器R1接口1输入输出。
除了TCP会话(用TCP连接两端端口号标识会话),还可以是UDP会话(用报文两端端口号标识会话)、ICMP会话(用报文两端地址、请求报文标识符和序号标识会话)
2)应用层有状态分组过滤器
它与会话层分组过滤器有以下不同:
1.应用层有状态分组过滤器需要分析应用层协议数据单元,所以过滤规则中要指定应用层协议。
2.一个方向需要配置允许传输请求报文的过滤规则,另一个方向自动生成允许传输该请求报文对应响应报文的过滤规则。
3.应用层检查响应报文与请求报文的相关性。

转载地址:http://zwhai.baihongyu.com/

你可能感兴趣的文章
简述Java集合框架
查看>>
jQuery+ajax实现省市区(县)下拉框三级联动
查看>>
Spring中的AOP 面向切面编程
查看>>
简述Spring中的JDBC框架
查看>>
MyBatis 动态SQL
查看>>
Spring MVC体系结构和处理请求控制器
查看>>
浏览器内核的整理稿
查看>>
暴力搜索内存空间获得API的线性地址
查看>>
CTF编码
查看>>
万能密码原理和总结
查看>>
缓冲区溢出学习
查看>>
Excel高级使用技巧
查看>>
速算,以后留着教孩子
查看>>
让你变成ps高手
查看>>
在可执行jar中动态载入第三方jar(转贴)
查看>>
考虑体积重量的01背包问题—基于遗传算法
查看>>
K-means 聚类算法
查看>>
带约束的K-means聚类算法
查看>>
约束优化方法
查看>>
VRPTW建模与求解—基于粒子群算法
查看>>