包过滤技术
包过滤技术
基于协议特定的标准,路由器在其端口能够区分包和限制包的能力叫包过滤(Packet Filtering)。其技术原理在于加入IP过滤功能的路由器逐一审查包头信息,并根据匹配规则决定包的前行或被舍弃,以达到拒绝发送可疑的包的目的。过滤路由器具备保护整个网络、高效快速并且透明等优点,同时也有定义复杂、消耗CPU资源、不能彻底防止地址欺骗、涵盖应用协议不全、无法执行特殊的安全策略并且不提供日志等局限性
技术原理
包过滤技术(IP Filtering or packet filtering) 的原理在于利用路由器监视并过滤网络上流入流出的IP包,拒绝发送可疑的包。由于Internet 与Intranet 的连接多数都要使用路由器,所以Router成为内外通信的必经端口,Router的厂商在Router上加入IP 过滤 功能,过滤路由器也可以称作包过滤路由器或筛选路由器(Packet FilterRouter)。防火墙常常就是这样一个具备包过滤功能的简单路由器,这种Firewall应该是足够安全的,但前提是配置合理。然而一个包过滤规则是否完全严密及必要是很难判定的,因而在安全要求较高的场合,通常还配合使用其它的技术来加强安全性。
包过滤技术是指网络设备(路由器或防火墙)根据包过滤规则检查所接收的每个数据包,做出允许数据包通过或丢弃数据包的决定。包过滤规则主要基于IP包头信息设置,包括如下内容:
1、TCP/UDP的源或目的端口号
2、协议类型:TCP、UDP、ICMP等
3、源或目的IP地址
4、数据包的入接口和出接口
数据包中的信息如果与某一条过滤规则相匹配并且该规则允许数据包通过,则该数据包会被转发,如果与某一条过滤规则匹配但规则拒绝数据包通过,则该数据包会被丢弃。如果没有可匹配的规则,缺省规则会决定数据包是被转发还是被丢弃。
举例说明:如图所示,如果我们需要允许IP地址为192.168.0.1的电脑浏览网页(建立HTTP连接),允许IP地址为192.168.0.2的电脑与Internet建立FTP连接,不允许其他电脑与Internet通信,可以在路由器设置如下过滤规则:
1、允许源IP地址为192.168.0.1、目的端口号为80的数据包通过(HTTP的端口号为80)。
2、允许源IP地址为192.168.0.1、目的端口号为53的数据包通过(DNS的端口号为53,在浏览网页时通常需要进行域名解析)。
3、允许源IP地址为192.168.0.2、目的端口号为21的数据包通过(FTP的端口号为21)。
4、缺省禁止所有的其他连接。
包过滤规则允许Router取舍以一个特殊服务为基础的信息流,因为大多数服务检测器驻留于众所周知的TCP/UDP端口。例如,Telnet Service 为TCP port 23端口等待远程连接,而SMTP Service为TCP Port 25端口等待输入连接。如要封锁输入Telnet、SMTP的连接,则Router舍弃端口值为23、25的所有的数据包。
表9.1 一些常用网络服务和使用的端口
典型的过滤规则有以下几种:允许特定名单内的内部主机进行Telnet输入对话、只允许特定名单内的内部主机进行FTP输入对话、只允许所有Telnet 输出对话、只允许所有FTP 输出对话、拒绝来自一些特定外部网络的所有输入信息。
有些类型的攻击很难用基本包头信息加以鉴别,因为这些独立于服务。一些Router可以用来防止这类攻击,但过滤规则需要增加一些信息,而这些信息只有通过以下方式才能获悉:研究Router选择表、检查特定的IP选项、校验特殊的片段偏移等。这类攻击有以下几种:
源IP地址欺骗攻击:入侵者从伪装成源自一台内部主机的一个外部地点传送一些信息包;这些信息包似乎像包含了一个内部系统的源IP地址。如果这些信息包到达Router的外部接口,则舍弃每个含有这个源IP地址的信息包,就可以挫败这种源欺骗攻击。
源路由攻击:源站指定了一个信息包穿越Internet时应采取的路径,这类攻击企图绕过安全措施,并使信息包沿一条意外(疏漏)的路径到达目的地。可以通过舍弃所有包含这类源路由选项的信息包方式,来挫败这类攻击。
残片攻击:入侵者利用IP残片特性生成一个极小的片断并将TCP报头信息肢解成一个分离的信息包片断。舍弃所有协议类型为TCP、IP片断偏移值等于1的信息包,即可挫败残片的攻击。
从以上可看出定义一个完善的安全过滤规则是非常重要的。通常,过滤规则表格的形式表示,其中包括以某种次序排列的条件和动作序列。每当收到一个包时,则按照从前至后的顺序与表格中每行的条件比较,直到满足某一行的条件,然后执行相应的动作(转发或舍弃)。有些数据包过滤在实现时,“动作”这一项还询问,若包被丢弃是否要通知发送者(通过发ICMP信息),并能以管理员指定的顺序进行条件比较,直至找到满足的条件。
对流进和流出网络的数据进行过滤可以提供一种高层的保护。建议过滤规则如下:
(1)任何进入内部网络的数据包不能把网络内部的地址作为源地址。
(2)任何进入内部网络的数据包必须把网络内部的地址作为目的地址。
(3)任何离开内部网络的数据包必须把网络内部的地址作为源地址。
(4)任何离开内部网络的数据包不能把网络内部的地址作为目的地址。
(5)任何进入或离开内部网络的数据包不能把一个私有地址(private address)或在RFC1918中 127.0.0.0/8.)的地址作为源或目的地址。
(6)阻塞任意源路由包或任何设置了IP选项的包。
(7)保留、DHCP自动配置和多播地址也需要被阻塞。0.0.0.0/8 、169.254.0.0/16 、192.0.2.0/24 、224.0.0.0/4 、240.0.0.0/4。
优点
(1)一个过滤路由器能协助保护整个网络。绝大多数Internet防火墙系统只用一个包过滤路由器
(2)过滤路由器速度快、效率高。执行包过滤所用的时间很少或几乎不需要什么时间,由于过滤路由器只检查报头相应的字段,一般不查看数据报的内容,而且某些核心部分是由专用硬件实现的,如果通信负载适中且定义的过滤很少的话,则对路由器性能没有多大影响;
(3)包过滤路由器对终端用户和应用程序是透明的。当数据包过滤路由器决定让数据包通过时,它与普通路由器没什么区别,甚至用户没有认识到它的存在,因此不需要专门的用户培训或在每主机上设置特别的软件。
局限性
(1)定义包过滤器可能是一项复杂的工作。因为网管员需要详细地了解Internet各种服务、包头格式和他们在希望每个域查找的特定的值。如果必须支持复杂的过滤要求的,则过滤规则集可能会变得很长很复杂,并且没有什么工具可以用来验证过滤规则的正确性。
(2)路由器信息包的吞吐量随过滤器数量的增加而减少。路由器被优化用来从每个包中提取目的IP地址、查找一个相对简单的路由表,而后将信息包顺向运行到适当转发接口。如果过滤可执行,路由器还必须对每个包执行所有过滤规则。这可能消耗CPU的资源,并影响一个完全饱和的系统性能。
(3)不能彻底防止地址欺骗。大多数包过滤路由器都是基于源IP地址、目的IP地址而进行过滤的,而IP地址的伪造是很容易、很普遍的。
(4)一些应用协议不适合于数据包过滤。即使是完美的数据包过滤,也会发现一些协议不很适合于经由数据包过滤安全保护。如RPC、X- Window和FTP。而且服务代理和HTTP的链接,大大削弱了基于源地址和源端口的过滤功能。
(5)正常的数据包过滤路由器无法执行某些安全策略。例如,数据包说它们来自什么主机,而不是什么用户,因此,我们不能强行限制特殊的用户。同样地,数据包说它到什么端口,而不是到什么应用程序,当我们通过端口号对高级协议强行限制时,不希望在端口上有别的指定协议之外的协议,而不怀好意的知情者能够很容易地破坏这种控制。
(6)一些包过滤路由器不提供任何日志能力,直到闯入发生后,危险的封包才可能检测出来。它可以阻止非法用户进入内部网络,但也不会告诉我们究竟都有谁来过,或者谁从内部进入了外部网络。
参考资料
最新修订时间:2024-07-01 11:30
目录
概述
技术原理
参考资料