防火墙技术及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 包过滤防火墙

顾名思义,包过滤防火墙是基于包(Packet )级别过滤的防火墙,它工作在OSI(Open System Interconnection)模型的网络层和传输层,因此又称为网络级防火墙采用静态IP报文过滤技术(Static Packet Filter)对流经防火墙的业务流量进行过滤。防火墙收到包,进入TCP/IP协议栈进行解封装(De-encapsulation),经过物理层、数据链路层到达网络层。包过滤系统中收到的IP报文的头部如图1-3所示。

图1-3 IP报文头部

图1-3中的源IP地址、目标IP地址等信息与预先配置的访问控制列表(Access Control List,ACL)进行比对,如果命中ACL规则,就根据规则设置的动作进行阻断或者放行。包过滤防火墙工作在传输层,可以看到TCP/UDP的头部,但是只能根据头部中的源端口、目标端口、标志位进行分析和过滤。相比后面介绍的基于状态检测的防火墙,包过滤防火墙缺少对方向的辨别和数据报文的关联(流)。

因此包过滤防火墙的核心就是ACL规则ACL规则设置得是否合理、是否全面至关重要。表1-1就是一个典型的ACL规则示例。

表1-1 访问控制列表(ACL)规则示例

访问控制列表(ACL)是有顺序的优先匹配列表的第一条(序号1)如果没有命中规则就会匹配第二条(序号2)直到找到能够匹配的规则如果都没有命中就将报文丢弃。包检测流程如图1-4所示。

图1-4 包检测流程

第一条规则,放行了内部地址访问外部地址的TCP、目标端口为80的访问。

第二条规则,放行了外部地址响应内部地址请求的TCP、ACK标志位的报文,目标端口为客户端请求的端口(>1023),源端口为任意端口。

第三条规则,拒绝除了匹配第一条和第二条规则外的所有报文。

包过滤防火墙具有如下优点:

1)因为只检查报文头部,因此检测效率很高,一般使用专用的处理器(ASIC芯片),报文处理延迟较低。

2)安全规则支持源及目标IP、源及目标端口、协议和标志位。相比下一代防火墙的规则,包过滤防火墙简单很多,易于理解和配置。

3)包过滤防火墙只支持IP层和传输层头部的控制,对用户的应用协议不关心,对用户是透明的,不会干扰到应用层的处理。

包过滤防火墙也有缺点,具体如下:

1)因为实际应用(如UDP、RPC)中的端口往往是动态变化的,无法固定开放某几个端口,因此需要对内开放所有高端口的访问,这就暴露了内部的服务端口,很容易成为黑客的攻击目标。

2)只适用于小规模网络,大型网络规则数可能达到上万条,大量规则的匹配会加大防火墙CPU的处理压力。此外,因为网络规模较大,安全规则的复杂度也会急剧上升,几乎无法维护。

3)包过滤防火墙是无连接状态的,容易遭到如TCP重放和挟持的攻击,也只能防御源地址为内网地址的IP地址欺骗攻击,攻击者很容易逃逸规则的控制。

4)因为包过滤是基于网络层的,所以无法抵御攻击特征在应用层的威胁,如木马蠕虫、SQL注入、XSS攻击等。