【web安全】第四弹:防火墙技术笔记
参考资料:
《黑客攻防演习》第二版 Ed SKoudis Tom Liston著
《防火墙、入侵检测与VPN》 马春光 郭方方著
OSI在理论上将网络分为七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。在实际应用的时候,一般分为四层或五层,物理层、数据链路层、网络层、传输层、应用层。物理层传输的是101000,即二进制数据流。数据链路层传输的是数据块,用专业名词来讲,传输的是帧。数据链路层的作用(待补充)。网络层的作用(待补充)。
防火墙在通常意义上来说,是一组硬件设备(路由器、计算机、网络设备等的组合)。防火墙通常安装在内部网络和外部网络的交界点上,这样有利于防火墙对全网的流量监控。而日渐普及的个人防火墙的位置在联网主机的网络接口上。
处于不同位置的防火墙可以实现不同级别的网络过滤功能。比如网络层防火墙可以快速的过滤数据包,但无法理解数据包的内容。而代理防火墙位于应用层,虽然过滤速度较慢,但却可以理解数据流的含义,进而能够对其进行深入的检测和控制。
防火墙的分类
1. 传统数据包过滤器
逻辑位置在网络层,可以在路由器上实现,主要围绕单个数据包。设备会分析数据包,决定数据包是否要被丢弃。
通常根据源IP地址和目标IP地址或者端口号以及TCP控制位等来判断。
数据包若具有置位的SYN位,意味着它是连接初始化的一部分,若具有置位的ACK位,表示它是已建立连接的一部分。
数据包过滤器会有自己的过滤规则,每个规则制定某个特定类型的数据包是被接受还是丢弃。
匹配的时候,有两种匹配方法:最佳匹配,首次匹配。
首次匹配的思想如下:设备受到数据包,开始扫描规则,与数据包相匹配的第一条规则被应用。常见格式是先罗列可通过的数据包,最后加一条匹配所有的数据包的丢弃规则。
主要优点:处理速度较快,快速决定是否丢弃或接受某个数据包。在连接局域网到互联网的内部网络路由器和边界路由器上应用广泛
主要缺点:对数据包实际做了什么了解很少,无法判断进入的数据包是对Web请求的响应还是一个攻击。UDP数据包由于没有控制位,也有同样的问题。攻击者很容易透过过滤。
2. 状态数据包过滤器
由传统数据包过滤器升级而来~仍是位于网络层。有一定的记忆功能,可以记住先前通过该设备的数据包,并基于记忆对后面的数据包做出决策。
内部有一个数据表,存储每个活动连接和其他可记忆的数据包。过滤器可以根据数据包过滤规则和状态表本身做出决策。
当一个带有SYN控制位的TCP数据包的一部分数据包被发送时,状态表会记住它。当一个新的数据包试图通过这个设备时,过滤器除了参考静态规则,还会查看状态表。
如果规则规定,只有属于先前连接的一部分才可以通过过滤器,那如果先前有个SYN数据包,ACK就可通过过滤器,否则ACK被丢弃。
黑客的猥琐思想又粗线了:如果带ACK的数据包可以穿过过滤器,那我可以用工具生成这样的数据包,不停的向目标发送数据包撒~
- -所以状态数据包过滤器还有一个设置:对一个SYN数据包的记忆,往往在10S到90S之间,在这个时间间隔之后,SYN数据包会失效,被发送的ACK数据包也会被丢弃。
另一方面,状态过滤器还会记住由内部发往外部的请求的SYN数据包,如果一个ACK数据包来自一个系统,并且与SYN条目对应,则允许进入网络。如果没有对应的SYN条目,数据包会被丢弃。
对于UDP,只有存在前一个外出的数据包,才允许进入的UDP数据包通过。
对FTP,传输需要两个连接:FTP控制连接和FTP数据连接。可以配置状态过滤器,使之只在建立了FTP控制连接之后才允许FTP数据连接。
主要缺点:数据较慢,但定制的专用芯片,可以在一定程度上弥补这个缺点
主要优点:大大提高了安全性
3. 基于代理的防火墙
代理位于应用层,详尽搜索协议,没有传统数据包过滤器遇到的ACK攻击问题,因为ACK不是有意义的应用请求的一部分。
基于代理的防火墙可以梳理应用级协议。例如,一个Web代理可以确保所有信息都是正确格式化的HTTP,而不仅仅检查确保他们是前往目标TCP端口80。
代理可以允许或者拒绝应用级功能。对于FTP,代理可以允许FTP GET,拒绝FTP PUT,允许用户下载,拒绝用户上传
主要缺点:速度较慢,且需要CPU开销和内存开销
常见防火墙的实际功能
1. 包过滤
上面已有具体介绍,不赘述
2. 代理
将用户访问请求变成由防火墙代为转发,外部网络看不见内网的结构,也无法直接访问内部网络的主机。
3. 网络地址转换
屏蔽内网的IP地址,对内网用户起到保护作用。可以用来缓解由于网络规模的增长带来的IP短缺的问题。
通常内网预留IP地址为
10.x.x.x
172.16.x.x至172.31.x.x
192.168.x.x
4. VPN
VPN在公共不安全网络上建立一个逻辑的专用数据网络来进行信息的安全传递。原本为独立产品,近些年越来越多厂家将防火墙和VPN集成在一起。
5. 其他
用户身份认证,记录警报分析和升级,管理功能
【web安全】第四弹:防火墙技术笔记的更多相关文章
- Web标准:四、纵向导航菜单及二级弹出菜单
Web标准:四.纵向导航菜单及二级弹出菜单 知识点: 1.纵向列表 2.标签的默认样式 3.css派生选择器 4.css选择器的分组 5.纵向二级列表 6.相对定位和绝对定位 1)纵向列表 可以看 ...
- 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记》[转]
转载地址:http://bbs.chinaunix.net/archiver/tid-1823500.html 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 ...
- HT for Web的HTML5树组件延迟加载技术实现
HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的 ...
- jQuery 关于IE9上传文件无法进入后台问题的原因及解决办法(ajaxfileupload.js第四弹)
第四弹的诞生完全不在自己最初的计划之中,是有个网友看了先前关于<ajaxfileupload.js系列>的文章后提出的问题,由于自己一直是用chrome浏览器去测试demo,完全忽略IE浏 ...
- IPV6技术笔记(剖析IPv4toIPv6)
IPV6技术笔记 IPv6地址入门概念 什么是IPv6? IPv6,全称Internet Protocol version 6,即网际协议版本6,也叫互联网通信协议第六版.是互联网工程任务组(IETF ...
- 技术笔记:Indy的TIdSMTP改造,解决发送Html和主题截断问题
使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点的Indy版本9,公司限制... 1.邮件包含TIdText和TIdAttachment时会出现T ...
- java web学习总结(四) -------------------HTTP协议
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- 前端学习 第四弹: HTML(一)
前端学习 第四弹: HTML(一) 元素分类:块元素 内联元素 块级元素在浏览器显示时,通常会以新行来开始(和结束). 例子:<h1>, <p>, <ul>, &l ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
随机推荐
- AndroidのUI设计研究(一)——自定义ProgressBar
最近迷上进度条,使用进度条可以增强用户体验,让用户心里有个底,再无奈的等待中体会loading的乐趣. 记得以前优乐美的官网,进入主页加载资源,显示给用户看的就是,炫彩背景下,一个杯子里的奶茶随着加载 ...
- Java多线程-工具篇-BlockingQueue(转)
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列 类,为我们快速搭建高质量的多线程程序带来极大的 ...
- ArcGIS中文件共享锁定数据溢出 这个方法不行,建议用gdb,不要用mdb
ArcGIS中文件共享锁定数据溢出 (2011-11-24 15:52:41) 转载▼ 标签: 杂谈 分类: GIS 文件共享锁定数溢出.(Error 3052)1. Access数据库,同时操作大量 ...
- Android_Broadcast
/** * Broadcast(广播):是一种广泛运用的在应用程序之间传输信息的机制 * * BroadcastReceiver(广播接收者) * 是对发送出来的广播进行过滤接收并响应的一类组件,它就 ...
- mono & apache install
1.red hat 6安装完后网卡是默认不启动的 作为双生兄弟的CENTOS同样如是 第一步 设置网卡开机启动 进入 路径此目录下修改网卡配置文件 如果网卡驱动正常 会有如下文件 只要修改 ifcfg ...
- win 10应用商店下载应用错误码0x80070422
Win10应用商店下载应用提示错误0x80070422怎么办? 一些安装了Win10系统的朋友们在使用过程中发现,在使用WIn8应用商店下载免费应用的时候,系统提示:错误0x80070422,这是怎么 ...
- effective c++(03)之const使用方法
char greeting[] = "hello"; char* p = greeting; //non-const pointer,non-const data const ch ...
- Oracle抓取表结构的语句
oracle --------------------------------------- SELECT case when t.COLUMN_ID=1 then t.table_name en ...
- iOS Crash文件的解析
iOS Crash文件的解析 开发程序的过程中不管我们已经如何小心,总是会在不经意间遇到程序闪退.脑补一下当你在一群人面前自信的拿着你的App做功能预演的时候,流畅的操作被无情地Crash打断.联想起 ...
- UIPanGestureRecognizer的使用
UIGestureRecognizer是一个定义基本手势的抽象类,具体什么手势,在以下子类中包含: 1.拍击UITapGestureRecognizer (任意次数的拍击) 2.向里或向外捏 ...