一. 背景

如今计算机安全最严重的威胁之一就是恶意用户或软件通过网络对计算机系统的入侵或攻击,加密技术并不能阻止植入了 “特洛伊木马” 的计算机系统通过网络向攻击者泄露秘密信息,因此需要部署防火墙来保护个人或者企业的网络安全。

用户入侵包括:利用系统漏洞进行未授权登录,或者授权用户获得更高级别的权限等。

软件入侵的方式包括:(1)网络传播病毒、蠕虫和特洛伊木马。

(2)阻止合法用户正常使用服务的拒绝服务攻击(DoS)

二. 防火墙

最为常用的两种防火墙是代理防火墙(proxy firewall ) 和包过滤防火墙(packet-filter)。它们的主要区别是所操作的协议栈的层次,以及由此决定的IP地址和端口号的使用是不同的。简单来说,包过滤防火墙是一个互联网路由器,能够丢弃符合或者不符合特定条件的数据包。而代理防火墙是一个多宿主的服务器主机,它是TCP和UDP传输关联的终点,通常不会再IP协议层中路由IP数据报。

1.包过滤防火墙

(1)包过滤防火墙的结构

下图是一个典型的包过滤防火墙,IGSA是全功能安全网关,DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业内部网络和外部网络之间的小网络区域内。在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和Mail服务器等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络。

防火墙作IP路由器位于一个内网和Inernet之间,只允许特定的流量通过。一种常见的配置是允许所有内网到外网的流量通过,但相反的方向只允许小部分的流量。当使用一个DMZ时,只允许从Internet访问其中的某些特定服务。

(2)包过滤防火墙的过滤规则

包过滤防火墙是一种特殊编程的路由器,能够过滤(丢弃)网络流量。它们一般都可以配置为丢弃或转发数据包头中符合或者不符合标准的数据包,这些标准称为过滤器。

简单的过滤器包括网络层或传输层报头中各个部分的范围比较。最流行的过滤器包括IP地址或者选项、ICMP报文的类型,以及根据数据包中端口号确定的各种UDP或TCP服务。网络管理员回安装过滤器或者访问控制列表(Access Control List,ACL),配置ACL后,可以限制网络流量,允许特定设备访问,指定转发特定端口数据包等。如可以配置ACL,禁止局域网内的设备访问外部公共网络,或者只能使用FTP服务。ACL既可以在路由器上配置,也可以在具有ACL功能的业务软件上进行配置。

包过滤防火墙既可以是无状态的,即独立处理每一个分组。也可以是有状态的,即要跟踪每个连接或会话的通信状态。

无状态的包过滤防火墙:最简单的包过滤防火墙都是无状态的,它单独处理每一个数据报。

有状态的包过滤防火墙:能够通过关联已经或者即将到达的数据包来推断流或者数据报的信息,即那些属于同一个传输关联的数据包或构成同一个IP数据报的IP分片。IP分片使得防火墙的工作变得更加复杂,无状态的包过滤防火墙极易被其混淆。

2.代理防火墙

(1)代理防火墙的原理

代理防火墙并不是真正意义上的互联网路由器,它是一个运行一个或多个应用层网关(Application-Layer Gateways, ALG)的主机,也叫应用网关防火墙,该主机有多个网络接口,能够在应用层中继两个连接之间的特定类型的流量。它通常不像路由器那样做IP转发,但现如今也出现了结合了各种功能的更复杂的代理防火墙。

所以进出网络的应用程序报文都必须通过应用网关。当某应用客户进程向服务器发送一份请求报文时,先发送给应用网关,应用网关在应用层打开该报文,查看该请求是否合法(可根据应用层用户标识ID或其他应用层信息来确定)。如果请求合法,应用网关以客户进程的身份将请求报文转发给原始服务器。如果不合法,报文则被丢弃。例如,一个邮件网关在检查每一个邮件时,根据邮件地址,或邮件的其他首部,甚至是报文的内容(如,有没有“核弹头”,“导弹”等敏感词)来确定该邮件能否通过防火墙。

虽然这种类型的防火墙是很安全的,但它是以脆性和缺乏灵活性为代价的,因为这种类型的防火墙必须为每个传输层服务设置一个代理,任何要使用新服务必须安装一个相应的代理,并通过该代理来操作发起连接。每个应用都需要一个不同的应用网关(可以运行在同一台主机上)。其次,在应用层转发和处理报文,处理负担比较重。另外,对应用程序不透明,需要在应用程序客户端配置应用网关地址。

(2)两种常见的代理防火墙

第一种是HTTP代理防火墙,也称为Web代理,只能用于HTTP和HTTPS协议(Web),这些代理对于内网用户来说就像是Web服务器,对于被访问的外部网站来说就像是Web客户端。这种代理往往提供Web缓存功能。这些缓存保存网页的副本,以便以后访问可以直接从缓存中获取,而不再访问原始的服务器,从而减少网页的延迟。一些Web代理也经常被用来当做过滤器,能够基于“黑名单”来阻止用户访问某些网站。

第二种是基于SOCKS协议的防火墙,目前socks有两个版本:第4版为代理传输提供了基本的支持,第5版增加了强大的认证,UDP传输和IPv6寻址。为使用SOCKS代理,应用程序开发时必须添加SOCKS代理支持功能,同时配置应用程序能够获知代理的位置和版本。一旦配置完成,客户端使用SOCKS协议请求代理进行网络连接,也可以选择性的进行DNS查找。

QQ登录的SOCKS代理:

网络安全:包过滤防火墙和代理防火墙(应用网关防火墙)相关推荐

  1. 网络安全技术第七章——防火墙技术概述及应用(包过滤防火墙 、代理防火墙、状态检测防火墙、分布式防火墙)

    防火墙技术概述及应用 防火墙技术概述及应用 1.防火墙的概念 2.高效可靠的防火墙应具备的基本特性 3.防火墙的基本功能 4.防火墙的基本原理 5.防火墙的类型 (1)包过滤防火墙 (2)代理防火墙 ...

  2. 防火墙关键技术(包过滤、应用代理、网络ip地址转换)

    目录 数据包过滤 包过滤优点 包过滤缺点 应用代理 应用代理优点 应用代理缺点 网络IP地址转换(NAT) 数据包过滤 网络上的数据都是以包为单位进行传输的,每一个数据包中都会包含一些特定的信息,如数 ...

  3. 「网络安全」安全设备篇(1)——防火墙

    什么是防火墙? 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合.它可以通过监测.限制.更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息.结构 ...

  4. 思科ccna认证技术之网络安全基础入门CCNA 1.0 网络硬件防火墙技术解析-ielab

    思科ccna认证技术之网络安全基础入门CCNA 1.0 网络硬件防火墙技术解析-ielab防火墙技术,最初是针对 Internet 网络不安全因素所采取的一种保护措施.顾名思义,防火墙就是用来阻挡外部 ...

  5. 「网络安全」2020年十大最佳开源防火墙保护您的企业网络

    开源防火墙最出名的地方是通过过滤入站和出站流量来保护网络不受威胁,并确保网络安全. 每当我们谈到开源防火墙时,首先映入我们脑海的是"完全免费"."不过,让我来解释一下,开 ...

  6. Linux下防火墙iptables用法规则详及其防火墙配置

    原博主文章更美丽: http://www.cnblogs.com/yi-meng/p/3213925.html iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国 ...

  7. 防火墙产品原理与应用:防火墙接入方式

    目前主要的接入方式:交换方式,路由模式,混合模式,链路捆绑模式,拨号模式. 1,交换模式: 此模式下,防火墙所有接口都为交换接口.对于同一VLAN的数据包在转发时不做任何改动,包括IP和MAC地址,直 ...

  8. ISA防火墙的默认系统策略和防火墙设置

    核心提示:内容概要:Tom在这篇文章中对ISA防火墙的系统策略的设置进行了详尽的说明,并且给出了推荐配置.除此之外,还介绍了ISA防火墙的其他的默认配置,对你理解ISA防火墙的初始配置和系统策略有很好 ...

  9. 防火墙详解(一) 网络防火墙简介

    文章目录 定义 与路由器和交换机的区别 发展历史 防火墙安全区域 定义 防火墙主要用于保护一个网络区域免受来自另一个网络区域的网络攻击和网络入侵行为 "防火墙"一词起源于建筑领域, ...

最新文章

  1. 用表格落地OKR吗,OKR表格如何制定?
  2. 循环遍历Java字符串字符的规范方法——类似python for ch in string
  3. Qt Creator构建并运行示例
  4. c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...
  5. ACM001 Quicksum
  6. Windows常用shell命令大全
  7. java 程序更新_如何关闭JAVA更新程序
  8. 15 —— npm —— package.json 与 package-lock.json 的作用
  9. 【MyBatis笔记】08-输出类型
  10. 转移印花技术基础知识及应用方法
  11. mysql 数值型注入_slq-注入总结(中)
  12. python中md5方法返回值_python中的md5加密
  13. 定义m是第一个数,之后的每个数都是前一个的平方根,一共有n个数,计算总和。
  14. 运用spss modeler运用支持向量机_使用支持向量回归进行Facebook股票预测
  15. 我的spark学习之路(一)
  16. 帝国cms后台界面修改方法 最新版教程
  17. 小米路由器 mini 重新刷回官方固件
  18. 天龙3d服务器维护,天龙八部3D4月6日维护服务器公告
  19. 中奖人js滚动效果_jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可...
  20. 云计算是怎么定义的,核心技术有哪些?

热门文章

  1. gr-osmosdr的安装
  2. python函数参数用法之——双星号
  3. hive一个字段包含另一个字段
  4. vuetify,nginx与cors的使用
  5. Android九宫格界面实现点击每个格点击跳转界面
  6. 这里是一个有关KiTTY本地化程序 cnKiTTY的简单说明~~
  7. c语言程序图书检索源代码,C语言程序设计(图书管理系统)源代码 倾情奉献
  8. (转)Native Extensions for Silverlight (NESL)?
  9. 程序员护眼心得——20171229
  10. javaweb——spring cloud分布式系统(1)搭建配置管理中心