( 1 ) 不能彻底防止地址欺骗
大多数包过滤路由器都是基于源 IP地址和目的 Ip地址而进行过滤的。 而数据包的源地址、 目的地址及 IP的端口号都在数据包的头部,很有可能被窃听或假冒 (Ip地址的伪造是很容易、很普遍的) ,如果攻击者把自己主机的 Ip地址设成_个合法主机的 Ip地址,就可以很轻易地通过报文过滤器。 所以, 包过滤最主要的弱点是不能在用户级别上进行过滤, 即不能识别不同的用户和防止 IP地址的盗用。过滤路由器在这点上大都无能为力。即使绑定 MAc地址,也未必是可信的。对于一些安全性要求较高的网络, 过滤路由器是不能胜任的 。
( 2 ) 无法执行某些安全策略
有些安全规则是难于用包过滤系统来实施的。 比如, 在数据包中只有来自于某台主机的信息而无来自于某个用户的信息, 因为包的报头信息只能说明数据包来自什么主机, 而不是什么用户,若要过滤用户就不能用包过滤。.再如,数据包只说明到什么端口,而不是到什么应用程序, 这就存在着很大的安全隐患和管理控制漏洞 。 因此数据包过滤路由器上的信息不能完全满足用户对安全策略的需求 。
( 3 ) 安全性较差
过滤判别的只有网络层和传输层的有限信息, 因而各种安全要求不可能充分满足; 在许多过滤器中, 过滤规则的数目是有限制的, 且随着规则数目的增加, 性能会受到很大的影响;由于缺少上下文关联信息,不能有效地过滤如 uDP、 RPC一类的协议;非法访问一旦突破防火墙, 即可对主机上的软件和配置漏洞进行攻击; 大多数过滤器中缺少审计和报警机制, 通常它没有用户的使用记录, 这样, 管理员就不能从访问记录中发现黑客的攻击记录。 而攻击一个单纯的包过滤式的防火墙对黑客来说是比较容易的, 他们在这一方面已经积累了大量的经验。
( 4) 一些应用协议不适合于数据包过滤
即使在系统中安装了比较完善的包过滤系统, 也会发现对有些协议使用包过滤方式不太合适。比如,对 UNIX的 r系列命令(rsh、 rlogin)和类似于 NFS协议的RPC,用包过滤系统就不太合适。
(5 ) 管理功能弱数据包过滤规则难以配置, 管理方式和用户界面较差; 对安全管理人员素质要求高; 建立安全规则时, 必须对协议本身及其在不同应用程序中的作用有较深入的理解 。
从以上的分析可以看出, 包过滤防火墙技术虽然能确保一定的安全保护, 且也有许多优点,但是包过滤毕竟是早期防火墙技术,本身存在较多缺陷,不能提供较高的安全性。因此, 在实际应用中, 很少把包过滤技术当做单独的安全解决方案, 通常是把它与应用网关配合使用或与其他防火墙技术揉合在一起使用,共同组成防火墙系统。