趙階旭


[摘 要]在網絡管理中,一方面要做好日常的維護工作保持網絡時刻暢通,另一方面還要確保網絡的安全,并需要對網絡中的流量進行控制。Cisco的訪問控制列表(access control list,ACL)就提供了這一安全機制,標準ACL根據數據包中的源地址過濾數據包,擴展ACL可以基于源地址、目標地址、協議及其端口號等信息過濾數據包,更準確的把握過濾內容即實現流量控制。本文通過對路由器訪問控制列表基本原理,配置原則及實現功能的介紹,探討了命名訪問控制列表中特有自反列表技術,實現流量控制,以提高網絡資源安全性。
[關鍵詞]ACL;established;自反ACL;網絡安全
在網絡日益開放的今天,各類網絡病毒及網絡攻擊大量出現,內部網絡的數據及其安全性也亟待解決,但如何保證數據資源的安全性已經成為公司的戰略問題。網絡安全采用的技術手段有很多,而通過訪問控制列表對數據包進行過濾,是實現網絡安全的基本手段之一。
一、訪問控制列表及基本原理
ACL(access control list)是指應用到路由器或者三層交換機接口上的指令列表,通常稱為訪問控制列表。ACL根據定義的一系列規則過濾數據包,即允許或者拒絕數據包通過接口。ACL使得網絡資源允許合法授權用戶使用,避免非法用戶訪問。它通常用于局域網部門之間控制網絡流量。
ACL一般分為最基本的兩大類標準ACL和擴展ACL,另外還有命名ACL、基于時間ACL、動態ACL和自反ACL幾種,這些ACL都是在兩大基本列表發展而來,不同場合應用不同種類的ACL。標準ACL根據數據包中的源地址過濾數據包,擴展ACL可以基于源地址、目標地址、協議及其端口號等信息過濾數據包,更準確的把握過濾內容,提高網絡安全性能。
二、自反ACL功能及應用場景
自反ACL允許最近出站數據包的目的地發出的應答流量回到該出站數據包的源地址。這樣您可以更加嚴格地控制哪些流量能進入您的網絡,并提升了擴展訪問列表的能力。網絡管理員使用自反ACL允許從內部網絡發起的會話的IP流量,同時拒絕外部網絡發起的IP流量。此類ACL使路由器能動態管理會話流量。路由器檢查出站流量,當發現新的連接時,便會在臨時ACL中添加條目以允許應答流量進入。自反ACL僅包含臨時條目。當新的IP會話開始時(例如,數據包出站),這些條目會自動創建,并在會話結束時自動刪除。
在實現網絡安全的策略中,當在出口網關路由上配置了ACL,拒絕INTERNET的數據訪問LAN時,會導致LAN訪問外部INIERNET的回包沒辦法通過網關進入LAN,導致LAN無法訪問外網,如圖2-1。這種情況下為了識別內部網絡發起的IP流量,同時拒絕外部網絡發起的IP流量就必須使用自反訪問控制列表實現。
三、擴展訪問控制列表的established參數的局限性
帶established參數的擴展ACL相比,自反ACL能夠提供更為強大的會話過濾。盡管在概念上與established 參數相似,但自反ACL還可用于不含ACK或RST位的UDP和ICMP。established選項還不能用于會動態修改會話流量源端口的應用程序。Permit established 語句僅檢查ACK和RST位,而不檢查源和目的地址。
Established參數只有當這個會話是TCP建立連接之后才進行匹配,通俗的講內部網絡發起的TCP會話出去,established初始會話初始值假設為0,外部應答包的返回值應該加1返回,應當以返回的標志比特位進行驗證,凡是返回值為1的就認為是內部發出去回來的允許進入內網。相反外部網絡發起的會話初始值是0,就拒絕掉該數據包進入內網,從而達到防治外部網絡主動攻擊內網的行為。如:
permit tcp host 23.0.0.3 eq telnet host 23.0.0.2 established 這條語句表示允許23.0.0.3用自己的23號端口對23.0.0.2的TCP請求進行回復。這條語句也可以換一種寫法: permit tcp host 23.0.0.3 eq telnet host 23.0.0.2 ack rst (如圖3-1TCP包首部)
理論上可以實現我們的控制效果,但是在實際應用中我們的TCP等報文頭部信息特別容易偽裝,目前有很多的修改頭部信息的軟件,快速修改報文信息可以通過Permit established 語句的檢查,還有一個重要特點是非TCP報文是沒有established,比如ICMP報文的回包是沒辦法控制的,因此擴展訪問控制列表的established存在很大的局限性,所以這種方法還是沒根本解決我們控制危險流量的目的。
四、自反ACL應用
如何應用自反ACL實現控制外部流量的目的呢?下面我們分析自反ACL的用法。自反ACL本質是由三個ACL組成:一內網允許出去的ACL,二外網拒絕所有的ACL ,三外部自動生成的返回ACL組成。
1)建立一個命名的訪問控制列表R2(config)#ip access-list extended R1-R3
2)嵌入命名的ACL中的自反列表R2(config-ext-nacl)#permit ip any any reflect network
3)在接口e0/0的in方向應用列表R2(config-if)#ip access-group R1-R3 in
4)創建一個命名的列表R2(config)#ip access-list extended deny-all
5)設置自反列表對應項R2(config-ext-nacl)#evaluate network
6)設置列表規則R2(config-ext-nacl)#deny ip any any
7)在接口e0/1的in方向應用列表R2(config-if)#ip access-group deny-all in
8)驗證:show 出三條列表,第三條為反射列表,內容為空。當用R1 ping R3時
R2#show access-lists
Extended IP access list R1-R3
10 permit ip any any reflect network
Extended IP access list deny-all
10 evaluate network
20 deny ip any any
Reflexive IP access list network
當用R1 ping R3時,自反ACL可以記錄流量中的協議,并對源地址和目標地址進行交換匹配,從而可以使R1出去的流量從外網返回來。
R2#show access-lists
Extended IP access list R1-R3
10 permit ip any any reflect network (11 matches)
Extended IP access list deny-all
10 evaluate network
20 deny ip any any (15 matches)
Reflexive IP access list network
permit icmp host 192.168.2.1 host 192.168.1.1 (20 matches) (time left 294)
五、注意事項
自反ACL不能直接應用到接口,而是“嵌套”在接口所使用的擴展命名IP ACL中。自反ACL 僅可在擴展命名IP ACL中定義。自反ACL不能在編號ACL或標準命名ACL中定義,也不能在其它協議ACL中定義。自反ACL可以與其它標準和靜態擴展ACL一同使用。
參考文獻:
[1]粱廣民,王隆杰.思科網絡實驗室路由、交換實驗指南.電子工業出版社,2007.
[2]張國靖. 網絡設備配置與調試項目實訓.電子工業出版社,2015年第三版.
[3]陳勇兵.路由器訪問控制列表應用于實踐.實驗技術與管理,2010年3月第3期.