词条 | 包过滤技术 |
释义 | 基于协议特定的标准,路由器在其端口能够区分包和限制包的能力叫包过滤(Packet Filtering)。其技术原理在于加入IP过滤功能的路由器逐一审查包头信息,并根据匹配和规则决定包的前行或被舍弃,以达到拒绝发送可疑的包的目的。过滤路由器具备保护整个网络、高效快速并且透明等优点,同时也有定义复杂、消耗CPU资源、不能彻底防止地址欺骗、涵盖应用协议不全、无法执行特殊的安全策略并且不提供日志等局限性。 技术原理包过滤技术(IP Filtering or packet filtering) 的原理在于利用路由器监视并过滤网络上流入流出的IP包,拒绝发送可疑的包。由于Internet 与Intranet 的连接多数都要使用路由器,所以Router成为内外通信的必经端口,Router的厂商在Router上加入IP 过滤 功能,过滤路由器也可以称作包过滤路由器或筛选路由器(Packet FilterRouter)。防火墙常常就是这样一个具备包过滤功能的简单路由器,这种Firewall应该是足够安全的,但前提是配置合理。然而一个包过滤规则是否完全严密及必要是很难判定的,因而在安全要求较高的场合,通常还配合使用其它的技术来加强安全性。 常用的优秀的个人防火墙有Norman Personal Firewall、天网防火墙等。 路由器逐一审查数据包以判定它是否与其它包过滤规则相匹配。每个包有两个部分:数据部分和包头。过滤规则以用于IP顺行处理的包头信息为基础,不理会包内的正文信息内容。包头信息包括:IP 源地址、IP目的地址、封装协议(TCP、UDP、或IP Tunnel)、TCP/UDP源端口、ICMP包类型、包输入接口和包输出接口。如果找到一个匹配,且规则允许这包,这一包则根据路由表中的信息前行。如果找到一个匹配,且规则拒绝此包,这一包则被舍弃。如果无匹配规则,一个用户配置的缺省参数将决定此包是前行还是被舍弃。 包过滤规则允许Router取舍以一个特殊服务为基础的信息流,因为大多数服务检测器驻留于众所周知的TCP/UDP端口。例如,Telnet Service 为TCP port 23端口等待远程连接,而SMTP Service为TCP Port 25端口等待输入连接。如要封锁输入Telnet、SMTP的连接,则Router舍弃端口值为23、25的所有的数据包。 表9.1 一些常用网络服务和使用的端口 服务名称 端口号 协议 说明 ftp-data 20 tcp FTP数据 ftp 21 tcp FTP控制 telnet 23 tcp 如BBS smtp 25 tcp 发email用 time 37 tcp timserver time 37 udp timserver domain 53 tcp DNS domain 53 udp DNS tftp 69 udp gopher 70 tcp gopher查询 http 80 tcp www pop3 110 tcp 收email用 nntp 119 tcp 新闻组,usernet netbios-ns 137 tcp NETBIOS 名称服务 netbios-ns 137 udp NETBIOS 名称服务 netbios-dgm 138 udp NETBIOS 数据报服务 netbios-ssn 139 tcp NETBIOS Session服务 snmp 161 udp SNMP snmptrap 162 udp SNMP trap irc 194 tcp IRC网络聊天服务 ldap 389 tcp 轻型目录服务协议 https 443 tcp SSL加密 https 443 udp 有些类型的攻击很难用基本包头信息加以鉴别,因为这些独立于服务。一些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)一些包过滤路由器不提供任何日志能力,直到闯入发生后,危险的封包才可能检测出来。它可以阻止非法用户进入内部网络,但也不会告诉我们究竟都有谁来过,或者谁从内部进入了外部网络。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。