防火墙技术实现

来源:互联网 发布:最好的java讲师 知乎 编辑:程序博客网 时间:2024/05/19 08:37

防火墙对内外网络之间的传输进行控制,从防火墙的实现技术上来说也就是一下四种技术,包过滤技术,状态监测技术,NAT技术,应用级网关技术

1. 包过滤技术,这是最防火墙最基本的过滤技术了,就是根据一些设定好的安全策略进行检查过滤和筛选。这些安全规则是根据包中的信息来进行设定的,需要判断的信息包括,IP源地址,目标地址,协议类型,TCP或UDP的目的端口,ICMP的消息类型,TCP选项等等。包过滤防火墙是具有优先级规则的,每个需要检测的数据包要按照规则的前后顺序依次匹配,最后一条规则为防火墙的默认规则,一般默认规则也就会设置为2个情况,一种是全部通过,另一种是全部阻断,往往会设置为全部阻断,最后一条防火墙默认规则会将不匹配前面所有规则的数据包全部按默认方法处理。包过滤规则成本低,实现起来方便,速度快,但是在网络应用较多的时候配置起来就十分复杂了,而且主要在网络层和传输层来进行过滤拦截,不能阻断应用层攻击,也不支持对用户的连接认证。还不能防止IP欺骗,比如攻击者可以首先通过大量的数据包来探测出大概的包过滤规则,然后伪造大量的合法数据包就可以进行攻击

2. 状态拦截技术,也叫动态包过滤技术,不像包过滤规则那样部署一个静态的过滤规则,而是增加了对数据包连接状态变化的考虑,通过在防火墙的核心部分来建立起数据的连接状态表,利用这个状态表来跟踪每一个会话,记录有用的信息以及帮助识别不同的会话。现在说说这个实现过程,比如现在一个内网主机A和一个外网主机B,两者之间要进行通信,A向B发送一个TCP第一次握手请求,好了这个时候防火墙记录下来这个请求,然后将这个数据包的信息加入到状态连接表中,通过这个链接表动态跟踪后续的网络连接,好了现在这个外网主机收到了这个连接请求向其回复第二次握手的数据包,当防火墙收到这个数据包的时候,然后会从状态连接表中查找,正好发现了第一次握手的数据包信息,然后防火墙认为这是已经存在的连接的一部分,然后允许这个应答包通过,连接终止时,防火墙会把这个连接从状态连接表中删除。状态监测防火墙可以动态地记录各个连接的状态,可以在连接终止之后及时阻断后序的连接,防止伪造流量的通过,可以有效阻止更多伪造网络地址的DoS攻击,而不用为大量的正常访问请求来长久地开放大量的端口,但是当其处理无连接状态的UDP和ICMP数据包时,就无法提供动态的连接检查了,而且当在处理FTP请求的时候,FTP需要建立两个TCP连接,而且FTP标准协议下,FTP客户端在内网,服务端在外网,而且FTP的数据连接时从服务端到客户端的一个变化的端口,因此状态连接防火墙需要打开整个端口范围才允许第二个连接通过,此外就是连接非常大的网络,状态连接防火墙的分析工作所占用的时间也是比较多的,这样就会造成网络的延迟

3. 地址翻译技术(NAT),目前来说合法的IPv4地址已经远远不够用了,所以现在很多局域网都是使用的私有网段的IP地址,无法与外部直接相连,NAT技术可以将这个局域网内部合法的内部IP地址解析为合法的外网的IP地址,这样内网的内部IP地址计算机无需变动也能与外网连接。当局域网的主机使用10.0.0.0,172.16.0.0和192.168.0.0这三个网段,如果内网的计算机需要与外网的计算机进行通信,然后再由网关处NAT来将内部的IP翻译为外部的IP,外部的数据包进入之后,NAT再将外部的IP翻译为内部的IP,从而实现内网与外网之间的正常通信,同时外网来的数据包只能看到由NAT翻译之后的公网IP地址,所以NAT还可以保护和隐藏内网的计算机,下面来简单说一下3种不同的内部实现过程:

a) 静态NAT,就是将内部的IP域公有的IP建立一一对应的关系,

b) NAT池,就是动态分配,事先由管理员定义好一组公网的IP地址,用户需要对外访问的时候,防火墙会从这些公网的IP地址池中动态抽取一个没有被使用的IP给用户,用户完成访问之后,防火墙将回收这个IP地址,当其他用户需要的时候再分配给他们

c) 端口地址转换PAT,就是用户的一个操作会映射到公网IP的一个端口,这样可以由一个公网的IP,得到65535个端口连接6万多部主机

4. 应用级网关,说白了就是代理服务器,与我们生活密切相关的科学上网代理服务器是干什么的不用我多说吧,代理服务器可以为内网的用户提供HTTP,FTP或某些特定的网络服务,相对于外网来说,代理服务器又是Internet的一台客户机,代理服务器主要就是转发功能,在内网的客户发送了对某网站站点的请求,代理服务器把这个请求发送到网站的web服务器,web服务器传回的数据包,代理服务器在经过安全检查之后再转发给内网的服务器

5. 包过滤技术是在网络层进行的,通过检查某些安全规则来允许或禁止访问,NAT技术是在网络层和传输层进行的过滤,代理服务器就是在应用层进行的,而且对不同的应用服务器进行过滤,因此可以对常见的高层应用协议做更细的控制,但是代理服务器不允许用户直接访问网络,所以效率较低,而且应用级网关需要对每一个特定的Internet服务来安装相应的代理服务软件,在内网的用户需要安装这个软件的客户端,比如我们科学上网用的XXX是吧,而且并不是所有的Internet应用服务都可以使用代理。


首发于我的个人网站: 点击打开链接

0 0