王 格
(湖北國土資源職業(yè)學院 湖北 武漢 430090)
隨著網(wǎng)絡(luò)的飛速發(fā)展,網(wǎng)絡(luò)安全和網(wǎng)絡(luò)服務(wù)質(zhì)量問題日益突出。在網(wǎng)絡(luò)配置和應用中,部分場景需要對某些特定的用戶、流量、服務(wù)、路由等因素進行控制或者選擇過濾,從而達到預期安全策略,保證網(wǎng)絡(luò)安全和可靠的網(wǎng)絡(luò)服務(wù)質(zhì)量[1]。在實現(xiàn)安全控制和選擇過濾的過程中,訪問控制列表(access control list,ACL)是一項緊密關(guān)聯(lián),且被經(jīng)常使用到的技術(shù)。本文結(jié)合學校華為信息與網(wǎng)絡(luò)技術(shù)學院建設(shè)和計算機網(wǎng)絡(luò)建設(shè)與運維“1+X”制度試點工作,將詳細介紹ACL的作用、分類以及工作機制等,并基于虛擬仿真平臺(enterprise network simulation platform,ENSP)環(huán)境,將ACL在四大典型場景(網(wǎng)絡(luò)地址轉(zhuǎn)換,服務(wù)訪問控制,路由策略,策略路由)的應用進行設(shè)計與實現(xiàn)[2]。
ACL是一個通過配置一系列匹配條件(報文的源地址、目的地址、端口號等),實現(xiàn)對經(jīng)過路由器的報文及路由進行判斷、分類和過濾的工具。它是由一系列permit(允許)或deny(拒絕)語句組成的有序規(guī)則列表。
根據(jù)編號的不同,ACL可以分為基本ACL(編號范圍為2000~2999)、高級ACL(編號范圍為3000~3999)、二層ACL(編號范圍為4000~4999)、用戶自定義ACL(編號范圍為5000~5999)、用戶ACL(編號范圍為5000~5999)五大類。其中,基本ACL和高級ACL應用較多[3]。
基本ACL僅僅只能將數(shù)據(jù)包的源地址(從哪里來)作為匹配或過濾標準,即基本ACL只能實現(xiàn)對數(shù)據(jù)包的粗略控制。其語法格式為:rule perimit/deny source網(wǎng)段(或IP)通配符,其中通配符中的0表示嚴格匹配,1表示任意。由于基本ACL只能過濾源IP,為了不影響源主機的其他通信需求,一般將基本ACL部署在離目標端比較近的路由器上。
高級ACL可以將數(shù)據(jù)包的源地址(從哪里來)、目的地址(到哪里去)、協(xié)議類型(如端口號)及應用類型(做什么)等因素作為匹配或過濾標準,即高級ACL可以實現(xiàn)對數(shù)據(jù)包更加精確的控制。其語法格式為:rule perimit/deny協(xié)議(tcp/udp/icmp/ip)source網(wǎng)段(或IP)通配符destination網(wǎng)段(或IP)通配符destination-port eq端口。由于高級ACL可以精準定位某一類數(shù)據(jù)流,為了避免無效的流量占用網(wǎng)段帶寬等資源,一般將高級ACL部署在離源端比較近的路由器上。
ACL一般是先配置規(guī)則,最后在路由器的接口上應用生效。不管是基本ACL還是高級ACL都可以選擇應用部署在數(shù)據(jù)包進入路由器的方向(inbound),或數(shù)據(jù)包離開路由器的方向(outbound)[4]。
ACL匹配工作流程如圖1所示。ACL的工作原則是自上而下順序處理,直到匹配到相應規(guī)則,然后執(zhí)行拒絕或允許操作,且一旦命中即停止匹配。每個ACL可以有多個rule規(guī)則,當一個數(shù)據(jù)包通過配置了ACL的路由器時,首先檢查ACL中的第一條規(guī)則,如果命中(即匹配判斷條件或標準),則根據(jù)這條規(guī)則的動作(permit 還是deny)對數(shù)據(jù)包進行處理。并結(jié)束對該數(shù)據(jù)包的匹配。如果沒有命中第一條規(guī)則,則進行下一條規(guī)則的匹配。處理步驟同上。如果一個數(shù)據(jù)包沒有命中ACL中的任何一條規(guī)則,那么匹配結(jié)果為不匹配,該數(shù)據(jù)包會被丟棄。因為每個ACL在最后隱含拒絕所有[5]。
圖1 ACL的工作流程
(1)場景目的
本場景主要以動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換的實現(xiàn)為例,使用基本ACL,實現(xiàn)將私網(wǎng)地址轉(zhuǎn)換成公網(wǎng)地址。ACL在網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)中應用拓撲圖,如圖2所示。
圖2 ACL在網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)中應用拓撲圖
(2)設(shè)計實現(xiàn)
首先,根據(jù)拓撲圖規(guī)劃,完成相關(guān)設(shè)備IP地址的配置。并完成相關(guān)路由協(xié)議的配置,在路由器R1上配置一條靜態(tài)路由ip route-static 0.0.0.0 0.0.0.0 165.0.0.2,保證內(nèi)網(wǎng)主機后期能夠訪問互聯(lián)網(wǎng)。
其次,在路由器AR1上配置基本ACL,將需要轉(zhuǎn)換的內(nèi)網(wǎng)地址進行匹配捕獲。主要命令實現(xiàn)如下:
[R1]acl 2001
[R1-acl-basic-2001]rule 5 permit source 192.168.0.0 0.0.31.255
在該環(huán)節(jié),使用了基本ACL,其編號為2001,作用是將192.168.10.0/24網(wǎng)段和192.168.20.0/24網(wǎng)段需要進行轉(zhuǎn)換的私網(wǎng)地址進行匹配捕獲,在匹配2個目標網(wǎng)段時,對2個網(wǎng)段進行了匯總處理,匯總后的網(wǎng)段為192.168.0.0/19。
最后,在路由器AR1創(chuàng)建公有地址池address-group 1(地址范圍為165.0.0.100到165.0.0.200),并在G0/0/1接口上將基本ACL 2001捕獲匹配的私有地址轉(zhuǎn)換成公有地址池address-group 1中的公有地址。主要命令實現(xiàn)如下:
[R1]nat address-group 1 165.0.0.100 165.0.0.200
[R1]int G0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2001 address-group 1 no-pat
(3)效果測試
使用PC1或者PC2去ping測試Serve1,同時在AR1使用命令display nat session all 查看網(wǎng)絡(luò)地址轉(zhuǎn)換的情況,或者使用wireshark對接口路由器AR1的G0/0/1接口進行抓包,均可發(fā)現(xiàn)地址轉(zhuǎn)換成功,即實現(xiàn)了內(nèi)網(wǎng)主機訪問互聯(lián)網(wǎng)時,完成私網(wǎng)地址(192.168.10.1)到公網(wǎng)地址的轉(zhuǎn)換(165.0.0.100),實現(xiàn)了場景目的。網(wǎng)絡(luò)地址轉(zhuǎn)換實現(xiàn)效果,如圖3所示。
圖3 網(wǎng)絡(luò)地址轉(zhuǎn)換實現(xiàn)效果
(1)場景目的
本場景使用高級ACL,實現(xiàn)Client1可以訪問Server1的FTP服務(wù),不能訪問www服務(wù);Client2不能訪問Server1的FTP服務(wù),可以訪問WWW服務(wù)。ACL在服務(wù)訪問控制中應用拓撲圖,如圖4所示。
圖4 ACL在服務(wù)訪問控制中應用拓撲圖
(2)設(shè)計實現(xiàn)
首先,根據(jù)拓撲圖規(guī)劃,完成相關(guān)設(shè)備IP地址的配置。
其次,在路由器器R1上配置高級ACL,實現(xiàn)對相關(guān)客戶端訪問相關(guān)服務(wù)的控制。主要命令實現(xiàn)如下:
[AR1]acl 3001
[AR1-acl-adv-3001]rule deny tcp source 192.168.10.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 80
[AR1-acl-adv-3001]rule permit tcp source 192.168.10.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 21
[AR1-acl-adv-3001]rule deny tcp source 192.168.20.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 21
[AR1-acl-adv-3001]rule permit tcp source 192.168.20.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 80
語句rule deny tcp source 192.168.10.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 80,將拒絕Client1訪問Server1的www服務(wù)(端口號80)。語句rule deny tcp source 192.168.20.1 0.0.0.0 destination 192.168.200.1 0.0.0.0 destination-port eq 21,將拒絕Client2訪問Server的FTP服務(wù)(端口號21)。
最后,將高級ACL 3001部署應用在路由器AR1的出接口G0/0/1上。
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]traffic-filter outbound acl 3001
(3)效果測試
發(fā)現(xiàn)Client1可以訪問Server1的FTP服務(wù),不能訪問www服務(wù);Client2不能訪問Server1的FTP服務(wù),可以訪問WWW服務(wù),實現(xiàn)了場景目的。服務(wù)訪問控制實驗效果,如圖5所示。
圖5 服務(wù)訪問控制實驗效果
(1)場景目的
本場景將使用基本ACL,結(jié)合路由策略,實現(xiàn)對特定路由信息的重分布。實現(xiàn)將rip重分布到ospf時,只重分布LoopBack1和LoopBack3的路由信息;將ospf重分布到rip時,只重分布LoopBack2和LoopBack4的路由信息。ACL在路由策略應用拓撲圖,如圖6所示。
圖6 ACL在路由策略應用拓撲圖
(2)設(shè)計實現(xiàn)
首先,根據(jù)拓撲圖規(guī)劃,完成相關(guān)設(shè)備IP地址的配置。
其次,在路由器R2上創(chuàng)建基本ACL,將需要重分布的路由信息進行捕獲。同時在AR2上創(chuàng)建路由策略,將其與相應的ACL進行關(guān)聯(lián),確保僅僅只重分布目標路由信息。創(chuàng)建基本ACL的命令實現(xiàn)如下:
[AR2]acl 2001
[AR2-acl-basic-2001]rule permit source 1.1.1.0 0.0.254.0
[AR2]acl 2002
[AR2-acl-basic-2002]rule permit source 2.2.0.1 0.0.254.0
語句rule permit source 1.1.1.0 0.0.254.0,實現(xiàn)捕獲由路由器AR1產(chǎn)生的LoopBack1和LoopBack3的路由信息,語句rule permit source 2.2.0.1 0.0.254.0,實現(xiàn)捕獲路由器AR3產(chǎn)生的LoopBack2和LoopBack4的路由信息。
創(chuàng)建路由策略的主要命令實現(xiàn)如下:
[AR2]route-policy rip-to-ospf permit node 1
[R2-route-policy]if-match acl 2001
[AR2]route-policy ospf-to-rip permit node 1
[AR2-route-policy]if-match acl 2002
上述命令,創(chuàng)建了2個路由策略,其中名為rip-to-ospf的路由策略,用來關(guān)聯(lián)匹配ACL 2001,名為ospf-to-rip的路由策略用來關(guān)聯(lián)匹配ACL 2002。
最后,在路由器AR2進行路由重分布,分別使用2個已經(jīng)關(guān)聯(lián)了基本ACL的路由策略,實現(xiàn)對特定路由信息的重分布。主要命令實現(xiàn)如下:
[AR2]rip 1
[AR2-rip-1]import-route ospf route-policy ospf-to-rip
[AR2]ospf 1
[AR2-ospf-1]import-route rip route-policy rip-to-ospf
(3)效果測試
查看AR1的路由表,可以發(fā)現(xiàn)將ospf重分布到rip時,只重分布LoopBack2和LoopBack4的路由信息;查看AR3的路由表,可以發(fā)現(xiàn)將rip重分布到ospf時,只重分布了LoopBack1和LoopBack3的路由信息,實現(xiàn)了場景目的。
(1)場景目的
本場景將使用高級ACL,結(jié)合策略路由,實現(xiàn)對特定路由的轉(zhuǎn)發(fā)控制。實現(xiàn)PC1訪問百度時通過ISP1,PC2訪問百度時通過ISP2。ACL在策略路由訪問控制拓撲圖,如圖7所示。
圖7 ACL在策略路由訪問控制拓撲圖
(2)設(shè)計實現(xiàn)
根據(jù)拓撲圖規(guī)劃,完成相關(guān)設(shè)備IP地址的配置。配置路由協(xié)議,在該案例中采用的是rip協(xié)議。并在GW上配置NAT,在該案例中采用的方式是easy ip。最終實現(xiàn)全網(wǎng)互聯(lián)互通。此時,在GW上查看路由信息,可以發(fā)現(xiàn)此時不論是PC1還是PC2,在訪問百度(100.100.100.1)時,均有2條等價路由,形成了負載均衡。
在GW上配置高級ACL,分別實現(xiàn)對PC1、PC2訪問百度的流量進行匹配捕獲。主要命令實現(xiàn)如下:
[GW]acl 3001
[GW-acl-adv-3001]rule 5 permit ip source 192.168.10.1 0 destination 100.100.100.1 0
[GW]acl 3002
[GW-acl-adv-3002]rule 5 permit ip source 192.168.10.2 0 destination 100.100.100.1 0
語句rule 5 permit ip source 192.168.10.1 0 destination 100.100.100.1 0,實現(xiàn)將PC1訪問百度的流量進行捕獲;語句rule 5 permit ip source 192.168.10.2 0 destination 100.100.100.1 0實現(xiàn)將PC2訪問百度的流量進行捕獲。
通過設(shè)置流分類、流行為和流策略,完成策略路由的配置,并將策略路由應用在GW的G0/0/2接口上。
設(shè)置2個流分類,分別關(guān)聯(lián)匹配ACL 3001和ACL 3002。
[GW]traffic classifier 1
[GW-classifier-1]if-match acl 3001
[GW]traffic classifier 2
[GW-classifier-2]if-match acl 3002
設(shè)置2個流行為,指定2個不同的下一跳ISP1(12.1.1.2)、ISP2(13.1.1.2)。
[GW]traffic behavior 1
[GW-behavior-1]redirect ip-nexthop 12.1.1.2
[GW]traffic behavior 2
[GW-behavior-2]redirect ip-nexthop 13.1.1.2
設(shè)置流策略,將流分類和流行為進行關(guān)聯(lián),確保不同流量走向不同的下一跳。
[GW]traffic policy 1
[GW-trafficpolicy-1]classifier 1 behavior 1
[GW-trafficpolicy-1]classifier 2 behavior 2
將流策略應用在GW的接口G0/0/2上。
[GW]int g0/0/2
[GW-GigabitEthernet0/0/2]traffic-policy 1 inbound (3)效果測試
在PC1上使用命令tracert 100.100.100.1,可以發(fā)現(xiàn)PC1訪問百度通過ISP1(12.1.1.2);在PC2上使用命令tracert100.100.100.1,可以發(fā)現(xiàn)PC2訪問百度通過ISP2(13.1.1.2),實現(xiàn)了場景目的。策略路由實驗效果,如圖8所示。
綜上所述,本文通過對ACL在四大典型場景(網(wǎng)絡(luò)地址轉(zhuǎn)換,服務(wù)訪問控制,路由策略,策略路由)中的設(shè)計與成功應用實現(xiàn),強調(diào)和驗證了ACL在實現(xiàn)保障網(wǎng)絡(luò)安全和可靠的網(wǎng)絡(luò)服務(wù)的重要作用,同時也可以看出使用較多的ACL的類別集中體現(xiàn)在基本ACL和高級ACL?;続CL主要基于數(shù)據(jù)包的源地址,實現(xiàn)對數(shù)據(jù)包的粗略控制,高級ACL可以基于數(shù)據(jù)包的源地址、目的地址、協(xié)議類型及應用類型,實現(xiàn)對數(shù)據(jù)包的精準控制,避免無效流量占用網(wǎng)絡(luò)帶寬等資源,從而提高網(wǎng)絡(luò)帶寬利用率。后期將進一步深入梳理與探討ACL在其他典型場景中的應用。