路由器根據路由表轉發數據,只要存在路由,路由器可以把任何數據轉發到任意目的地。但有時需要對數據進行控制,比如出於安全目的需要過濾那些對網絡進行惡意攻擊的數據包。Internet是一個開放的網絡平台,如何確保數據在這個開放的平台上的安全,越來越成為人們關注的焦點。訪問控制列表(Access Control ACL)就是能夠在路由器上檢查並過濾數據包的技術之一。
ACL概述
隨著計算機網絡應用范圍的擴大,如何控制使用Internet的權限成了網絡管理員面臨的新問題。例如,怎樣識別合法用戶;怎樣拒絕非法用戶的訪問等。訪問控制列表是一個控制網絡數據的有力工具,它可以設定不同的條件,靈活地過濾數據流,在不妨礙合法通信的同時阻止非法或不必要的數據,保護網絡資源。
訪問控制列表的用途非常廣泛,例如:
●出於安全目的,使用訪問控制列表檢查和過濾數據包;
●對數據流進行限制以提高網絡的性能;
●限制或減少路由更新的內容;
●按照優先級或用戶隊列識別數據包;
●定義經由隧道(VPN)傳輸的數據;
●定義地址翻譯的條件。
訪問控制列表由一組有序的條件語句構成,每個條件語句中的關鍵詞Permit(允許)或Deny(禁止)決定了匹配該條件語句的數據是被允許還是被禁止通過路由器的接口。條件中的匹配參數可以是上層協議、源或目的地址、端口號及其他一些選項。訪問控制列表應用在接口上,對通過該接口的數據包進行檢查和過濾。
【提醒】
訪問控制列表不檢查使用該列表的路由器自身產生的數據包。
訪問控制列表對進入路由器的數據(稱為In方向)和從路由器發出的數據(稱為Out方向)分別進行控制。如果只禁止某種數據從某個接口進入,那麼這種數據仍然可以從該接口發送到網絡上。
訪問控制列表是基於協議生成並生效的。每種協議集都有自己的訪問控制列表,它們可以共存於同一台路由器上運行,分別對各自協議的數據包進行檢查過濾。如今Internet只使用單一的IP協議集。
訪問控制列表的條件參數都在IP包中(見圖1),協議號和IP地址(源地址和目的地地址)都在IP包頭部分,端口號在IP包的數據部分,也就是第4層的包頭部分。
路由器檢查每一個通過應用訪問控制列表接口的IP包,將IP包中的參數和訪問控制列表中的條件參數進行比較,如果這兩個參數相同,就意味著該IP包匹配了條件。根據條件語句中的關鍵詞,路由器對IP包進行相應的處理——允許或禁止數據包從接口進或者出。
0 4 8 16 19 24 31 VERS HLEN Service Type Total Lenth Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP Address Destination IP Address IP Options(if any) Padding Data … 圖1 IP包頭結構