包過濾技術是基于協議特定的標準,路由器在其端口能夠區分包和限制包的技術。基于協議特定的標準,路由器在其端口能夠區分包和限制包的能力叫包過濾(Packet Filtering)。其技術原理在于加入IP過濾功能的路由器逐一審查包頭信息,并根據匹配和規則決定包的前行或被舍棄,以達到拒絕發送可疑的包的目的。
包過濾技術缺點及局限性如下:
定義包過濾器可能是一項復雜的工作。因為網管員需要詳細地了解Internet各種服務、包頭格式和他們在希望每個域查找的特定的值。如果必須支持復雜的過濾要求的,則過濾規則集可能會變得很長很復雜,并且沒有什么工具可以用來驗證過濾規則的正確性。
路由器信息包的吞吐量隨過濾器數量的增加而減少。路由器被優化用來從每個包中提取目的IP地址、查找一個相對簡單的路由表,而后將信息包順向運行到適當轉發接口。如果過濾可執行,路由器還必須對每個包執行所有過濾規則。這可能消耗CPU的資源,并影響一個完全飽和的系統性能。
不能徹底防止地址欺騙。大多數包過濾路由器都是基于源IP地址、目的IP地址而進行過濾的,而IP地址的偽造是很容易、很普遍的。
一些應用協議不適合于數據包過濾。即使是完美的數據包過濾,也會發現一些協議不很適合于經由數據包過濾安全保護。如RPC、X- Window和FTP。而且服務代理和HTTP的鏈接,大大削弱了基于源地址和源端口的過濾功能。
正常的數據包過濾路由器無法執行某些安全策略。例如,數據包說它們來自什么主機,而不是什么用戶,因此,我們不能強行限制特殊的用戶。同樣地,數據包說它到什么端口,而不是到什么應用程序,當我們通過端口號對高級協議強行限制時,不希望在端口上有別的指定協議之外的協議,而不懷好意的知情者能夠很容易地破壞這種控制。
一些包過濾路由器不提供任何日志能力,直到闖入發生后,危險的封包才可能檢測出來。它可以阻止非法用戶進入內部網絡,但也不會告訴我們究竟都有誰來過,或者誰從內部進入了外部網絡。