设计、制作 : 谭献海 [email protected] 2006 年 9 月

19
设设 设设 设设 设设 设设设 [email protected] 2006 年 9 年

Upload: jase

Post on 19-Mar-2016

144 views

Category:

Documents


15 download

DESCRIPTION

第 15 章 防火墙系统. 设计、制作 : 谭献海 [email protected] 2006 年 9 月. 防火墙是一类防范措施的总称 是一种隔离技术 防火墙作为网络安全的第一道屏障, 放置在两个网络之间强制执行访问控制策略,以保证内部网络的安全。. 概 述. 包过滤防火墙 : 一般工作在网络层, 主要根据数据包的包头信息控制数据包的流动。这类防火墙的核心是过滤算法的设计。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

设计、制作设计、制作:谭献海[email protected]

2006年 9月

Page 2: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

概 述概 述

防火墙是一类防范措施的总称是一种隔离技术 防火墙作为网络安全的第一道屏障,放置在两个网络之间强制执行访问控制策略,以保证内部网络的安全。

Page 3: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

防火墙的分类

防火墙的分类

包过滤防火墙:一般工作在网络层,主要根据数据包的包头信息控制数据包的流动。这类防火墙的核心是过滤算法的设计。 代理防火墙:采用代理( Proxy )方式的防火墙(又称应用层网关)实际上是一组代理程序的集合,当内部网络用户访问外部资源时,需要先将请求转交给防火墙的代理程序,由后者再和外界的服务器进行联系。代理服务器在获得返回数据之后,先经过安全检查,再转交给用户。

Page 4: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

包过滤防火墙体系结构

包过滤防火墙体系结构

图 1 包过滤防火墙硬件结构图

内部网络

外部网卡

内部网卡

包过滤防火墙

因特网

1. 一般体系结构

内部主机数据往外

数据接收器 数据发送器 内网卡数据外往

数据发送器 数据接收器 外网卡数据往外

外网数据往内

数据内往

数据往内

Page 5: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

包过滤防火墙功能模块

包过滤防火墙功能模块

2. 包过滤防火墙软件功能模块: 报文拦截 过滤规则的设置 报文分析及包过滤 报文转发 网络地址转换( NAT ) 流量统计。

Page 6: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

包拦截与转发常用实现技术

包拦截与转发常用实现技术

Winsock 技术 NDIS 中间层驱动程序 VPACKET.VxD libpcap

Packet Driver ……

Winpcap

Page 7: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

过滤规则过滤规则

包过滤规则的设置过程:首先,确定自己的安全需求及包过滤规则要达到的安全目标,明确什么是应该和不应该被允许的,然后制定合适的安全策略。其次,必须正式规定允许的包类型、包字段的逻辑表达式。最后,还必须用防火墙支持的语法重写表达式。 创建包过滤规则示例 1.创建几个允许流入和流出 SMTP连接的例子,这样 Email可以进行传送,如表 1 规则集 A 所示:

规则 方向 协议 源地址 目的地址 源端口 目的端口

动作1 流入 TCP 外部 内部 >=1024 25 允许2 流出 TCP 内部 外部 25 >=1024 允许3 流出 TCP 内部 外部 >=1024 25 允许4 流入 TCP 外部 内部 25 >=1024 允许5 * * * * * * 拒绝

Page 8: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

过滤规则过滤规则

2. 在 TCP 协议头字段中,有一个字段是 ACK 位,也称为确认位。这一字段只在连接后置位。在包过滤器中,通过检查这一位来决定通信的方向,可以建立只允许所需方向的连接-不论是流入还是流出。例如,如果需要客户端建立一个从工作站到因特网上服务器的 Telnet 会话,但不允许相反方向的 Telnet 会话,那么要建立和表 2 规则集 B 相似的规则:

规则 方向 协议 源地址

目的地址

源端口

目的端口

ACK位

动作1 流出 TCP 内部 外部 >=

102423 均可 允许

2 流入 TCP 外部 内部 23 >=1024

置位 允许3 流入 TCP 外部 内部 23 >=

1024复位 拒绝

Page 9: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

常用的包过滤规则

常用的包过滤规则

(1) 过滤规则序号 FRNO(Filter rule Numbler) 。它决定过滤算法执行时过滤规则排列的顺序。正确地排列过滤规则是至关重要的,一般将重要的规则放在前面。 (2) 过滤方式( Action )包括允许( Allow )和禁止 (Block) ; (3) 源 MAC 地址( Source MAC address ); (4) 源 IP 地址 SIP ( Source IP address ); (5) 源端口 SP(Source port) ; (6) 目的 MAC 地址( Destination MAC address ); (7) 目的 IP 地址 DIP(Destination IP address) ; (8) 目的端口 DP(Destination port) ; (9) 类型协议标志 PF(Protocol flags option) ; 表示请求连接的单独的 SYN 表示连接确认的 SYN/ACK 表示连接终断的 FIN (10) 最后一项是注释 (Comment) 。

Page 10: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析

协议解码模块对捕获到的数据包进行分析,根据过滤规则来判断该数据包合法与否,如果合法,则转发;否则丢弃。

协议解码模块支持下列协议的处理:以太帧、 IP ARP/RARP 、 ICMP 、 IGMP 、 TCP 、 UDP 等。

首先提取并分析接收到的以太帧,格式如表 3 以太网物理帧数据格式 所示:

前同步码 目的地址 源地址 帧类型 帧数据 CRC

8 字节 6 字节 6 字节 2 字节 可变长度 4 字节 TYPE=08 00 ( 16 进制),说明是 IP 数据包 08 06 ( 16 进制),说明是 ARP 数据包 80 35 ( 16 进制),说明是 RARP 数据包 ……

Page 11: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析一般步骤

报文分析一般步骤

包过滤规则

分析报头字段

应用下一规则

是 否 允许传输是 转发

是 否 是可疑包

是否被阻塞否

记录可疑包是

阻 塞包

是 否 最 后一条规则

否 是

结束

Page 12: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析报文分析

由此提取出 ARP 数据包和 IP 数据包。下图为 ARP报文分析流程图。

Page 13: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析报文分析

Page 14: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析报文分析

版本号 首部长度 服务类型 总长度标志符 标志 分片偏移量

寿命 协议 首部校验和源站 IP 地址

目的站 IP 地址IP 选项+填充

表 4 IP 数据包格式

其中,协议字段的值标明了 IP数据包的内容类型,若为 6说明为 TCP 包,若为 17说明为 UDP 包,若为 1说明为 ICMP 包,若为 2说明为 IGMP 包,等等。

Page 15: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

IPIP

报文分析报文分析

Page 16: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

报文分析报文分析

HTTP 数据是通过 TCP 进行传输的,通过判断 IP 报头 中协议字段的值可以提取 TCP 包。 TCP 报文格式为:源端口 目的端口

发送序号确认序号

首部长度 保留 标志比特 窗口校验和 紧急指针

TCP 选项+填充因为 HTTP 服务的端口号是 80 ,所以通过检查 TCP报头中的端口号就可以知道是不是 HTTP 数据,若目的端口号为 80 ,则说明是 HTTP 数据包,我们就可以进一步对 HTTP 报文进行必要的内容过滤。

Page 17: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

网络地址转换(

网络地址转换(NANATT

) )

防火墙的另外一个功能就是进行网络地址转换( NAT , Network Address Translation )将专用网络中的专用(私有) IP 地址转换成在因特网上使用的全球唯一的公共(合法的) IP 地址。

以下为 TCP NAT 实例:

Page 18: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

网络地址转换(

网络地址转换(NA

NA

TT

))128.32.32.68

Server

PROTOSADDRDADDRSPORTDPORTFLAGSCKSUM

TCP24.1.70.210128.32.32.684096080SYN0x2436

2

2. NAT gateway 发现 SYN 标志置位 , 往 NAT 地址转换表中增加一个条目 , 然后利用网关的外部 IP 地址 24.1.70.210 改写报文,更新报文的校验和 .

Internet10.0.0.3 24.1.70.210

NATGateway

10.0.0.1

PROTOSADDRDADDRSPORTDPORTFLAGSCKSUM

TCP128.32.32.68 24.1.70.2108040960SYN, ACK0x8041

3

3. 服务器响应 SYN ACK 报文,该报文被发送到 NAT 网关的 IP 地址

Client Server IPAddr Port IPAddr Port NATPort 10.0.0.3 1049 128.32.32.68 80 40960. . . .. . . . .. . .

NAT Translation Table

PROTOSADDRDADDRSPORTDPORTFLAGSCKSUM

TCP10.0.0.3128.32.32.68104980SYN0x1636

1

1. 主机希望与 web 服务器 128.32.32.68建立连接 , 它使用它的内部地址 10.0.0.3发送 SYN 报文

PROTOSADDRDADDRSPORTDPORTFLAGSCKSUM

TCP128.32.32.68 10.0.0.3801049SYN, ACK0x7841

4

4. NAT 网关查找地址转换表 , 找到匹配的源和目的地址和端口号 , 利用内部 IP地址改写报文

128.32.32.68

Page 19: 设计、制作 : 谭献海 xhtan@home.swjtu 2006 年 9 月

流量统计流量统计

每接收到一个数据包,就根据该数据包的数据长度进行网络流量分类统计。流量统计除了根据 IP地址统计之外,还可以根据 MAC 地址和IP 报头中的协议以及 TCP 报头中的端口号(应用)进行流量统计。 流量统计以后,还要提供流量查询及流量统计报表等功能。根据用户流量统计,并根据用户流量控制用户对计费网络的访问。由流量与费率的乘积就可以进行计费。