学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则 第4章 数据包过滤 学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
包过滤器(packet filter)可以根据端口、IP地址和协议这些标准来阻止或者允许信息包的传输。
4.1 理解数据包和数据包过滤 数据包过滤器检查数据包报头,把它撕掉,并且再把它送到网络中的特定位置之前用一个新的报头来代替。下面是一些常见的数据包过滤规则: 1)停止所有入站连接:只允许在端口为80(HTTP)、25(SMTP)和21(FTP)上的出站连接。 2)取消所有去往Internet中不可用的端口的数据包,例如 NetBIOS,但允许与Internet相关的通信量通过,如:SMTP
3)过滤掉任何ICMP重定向或回显(ping)消息,这可能表明黑客正试图寻找开放端口或主机IP地址。 4)删除所有使用IP报头源路由选择功能的数据包,在IP源路由中,数据包的创建方可以有意地部分或者全部控制通过网络传输到目的地的路径。从安全角度讲,源路由选择基本都被认为是一个欺骗行为。
4.1.1 执行数据包过滤的装置 数据包过滤硬件与软件 1)路由器 2)操作系统 3)软件防火墙
4.1.2 数据包的分析 每个数据包由两部分组成:报头和数据,报头中包含着只供计算机读取的信息。所以正确理解数据包报头的组成十分重要,因为它可以帮助配置数据包过滤器来抵抗可能受到的攻击。
4.1.3 关于数据包过滤的快速指南 数据包过滤就是由路由器或者防火墙检查数据包报头后,决定是否让数据包通过的过程,数据包过滤设备评估报头的信息并且把它和已经设立的规则相比较,如果信息符合其中的一个“允许”规则,则允许数据包通过。另一方面,如果信息与一个“拒绝”规则相匹配,数据包被删除。 数据包过滤器只检查报头
4.1.4 规则的使用 软件个人防火墙程序在保护一台计算机时能起到一定的作用,但是他们会在网络工作中造成一些问题。它们经常阻塞网络计算机之间的通信,除非设立允许通信的规则。所以必须建立一个访问列表,它包括局域网中的所有计算机的名字和IP地址,以便它们可以相互通信。 例:Norton Internet security 2006
4.2 数据包过滤的方法 4.2.1 无状态数据包过滤 也称作静态数据包过滤,它在做出是否阻塞一个数据包的决定时不关心连接的状态,但在需要完全阻止从子网络或者其他网络过来的通信时是有用的。 1)按IP数据包报头标准过滤 无状态包过滤器独立的查看每个数据包的报头,它将报头数据与它的规则集相比较,然后只发送那些与规则匹配的数据包。
例:如果过滤器已经设立了一个固定的规则,即所有来自外部网络的连接都被阻断,只接收一个外部主机的请求,它将舍弃与那个请求有关的数据包。 例:如果包过滤器设立一个让所有进来的HTTP通信都必须路由到IP地址是192.168.100.2的公共Web服务器上的规则,那么它会把任何一个HTTP数据包送往192.168.100.2。
2)按照TCP或者UDP端口号过滤 按照TCP或者UDP端口号过滤的方式,经常被称作端口过滤或者协议过滤。 例如:仅允许web的TCP80端口、电子邮件的TCP25端口和FTP的TCP21端口上的通信。 3)按照ICMP消息类型过滤 ICMP为TCP/IP发挥着家务管理协议的作用,它帮助网络处理各种各样的通信问题。ICMP可以被黑客用来攻击网络中的计算机,因为ICMP没有验证方法来确认一个数据包的接收者,黑客可以尝试中间人攻击,在攻击中它们模仿预期的接收者。
4)按段标记过滤 理论无害处,从安全角度看,保持段的安全有困难,因为TCP和UDP端口号仅仅提供到数据包的开始处,端口号出现在段0处,段1或者以后的段很容易通过过滤器,因为它们不包括任何端口信息。黑客可以更改一个数据包的IP报头,使其从段1或者更高的段号开始,这样所有的段都会通过过滤器并且可以访问内部资源。 设置防火墙/数据包过滤器阻止所有的分段数据包或者仅仅允许完整的数据包通过。
5)按ACK标记过滤 TCP包中的ACK位这部分信息表明数据包是否正请求连接或者一个连接是否已经建立。数据包请求连接时把ACK位设置为0,已经连接的请求将ACK位设置为1。黑客可以在一个数据包中插入一个为1的虚假ACK位,试图欺骗主机,让主机认为一个连接正在进行 设置防火墙仅仅允许ACK位为1的数据包访问指定的端口。
6)可疑的入站数据包的过滤 (1)阻断所有源IP地址处于内部网络范围之内的入站数据包 (2)阻断所有把回送地址127.0.0.1作为源IP地址的入站通信 (3)阻断具有一个没有分配任何网络源IP地址的通信,例如:0.X.X.X、1.X.X.X或者2.X.X.X
4.2.2 有状态数据包过滤 可以维护连接状态的记录。通过“记忆”那些数据包是活动连接的一部分,那些不是,有状态过滤器可以做出“智能”的决定,允许正确回应已确定连接的通信,拒绝那些包括虚假信息的“仿制”数据包的通信。
4.3 设立专用的数据包过滤规则 4.3.1 适应多种变化的数据包过滤规则 设立包过滤规则的诀窍是考虑用于某种通信的所有可能端口或某个特殊协议的所有变化。 4.3.2 适用于ICMP的数据包过滤规则 4.3.3 阻断ping包的数据包过滤规则 规则 协议 传输协议 源IP地址 目标IP地址 ICMP消息 动作 1 入站ICMP ICMP 任意 源抑制 允许
4.3.4 启用Web访问的数据包过滤规则 4.3.5启用DNS访问的数据包过滤规则 12 入站HTTP TCP 任意 协议 传输协议 源IP地址 源端口号 目标IP地址 目标端口号 动作 12 入站HTTP TCP 任意 192.168.2.32 80 允许 规则 协议 传输协议 源IP地址 源端口号 目标IP地址 目标端口号 动作 16 出站DNS TCP 192.168.2.31 任意 53 允许
4.3.6启用FTP访问的数据包过滤规则 4.3.7 使用电子邮件的数据包过滤规则 规则 协议 传输协议 源IP地址 源端口号 目标IP地址 目标端口号 动作 20 控制入站FTP TCP 任意 192.168.1.25 21 允许 规则 协议 传输协议 源IP地址 源端口号 目标IP地址 目标端口号 动作 25 出站POP3 TCP 192.168.2.1/24 任意 110 允许