ACL應用范圍


1、ACL應用范圍

通過前兩期的ACL理論學習,大家知道ACL並不能單獨完成控制網絡訪問行為或者限制網絡流量的效果,而是需要應用到具體的業務模塊才能實現上述功能。

那么ACL到底可以應用在哪些業務中呢?

小編總結了一下,ACL應用的業務模塊非常多,但主要分為以下四類:

業務分類

應用場景

涉及業務模塊

登錄控制 對交換機的登錄權限進行控制,允許合法用戶登錄,拒絕非法用戶登錄,從而有效防止未經授權用戶的非法接入,保證網絡安全性。

 

例如,一般情況下交換機只允許管理員登錄,非管理員用戶不允許隨意登錄。這時就可以在Telnet中應用ACL,並在ACL中定義哪些主機可以登錄,哪些主機不能。

Telnet、SNMP、FTP

TFTP、SFTP、HTTP

對轉發的報文進行過濾 對轉發的報文進行過濾,從而使交換機能夠進一步對過濾出的報文進行丟棄、修改優先級、重定向、IPSEC保護等處理。

 

例如,可以利用ACL,降低P2P下載、網絡視頻等消耗大量帶寬的數據流的服務等級,在網絡擁塞時優先丟棄這類流量,減少它們對其他重要流量的影響。

QoS流策略、NAT、IPSEC
對上送CPU處理的報文進行過濾 對上送CPU的報文進行必要的限制,可以避免CPU處理過多的協議報文造成占用率過高、性能下降。

 

例如,發現某用戶向交換機發送大量的ARP攻擊報文,造成交換機CPU繁忙,引發系統中斷。這時就可以在本機防攻擊策略的黑名單中應用ACL,將該用戶加入黑名單,使CPU丟棄該用戶發送的報文。

黑名單、白名單、

 

用戶自定義流

路由過濾 ACL可以應用在各種動態路由協議中,對路由協議發布和接收的路由信息進行過濾。

 

例如,可以將ACL和路由策略配合使用,禁止交換機將某網段路由發給鄰居路由器。

BGP、IS-IS、OSPF

 

OSPFv3、RIP、RIPng

組播協議

2、ACL業務模塊的處理機制

各類ACL應用的業務模塊對命中/未命中ACL的處理機制是各不相同的。

例如,在流策略中應用ACL時,如果ACL中存在規則但報文未匹配上,該報文仍可以正常通過;但在Telnet中應用ACL,這種情況下,該報文就無法正常通過了。

再如,在黑名單中應用ACL時,無論ACL規則配置成permit還是deny,只要報文命中了規則,該報文都會被系統丟棄,其他模塊卻不存在這種情況。

所以,大家在配置ACL規則並應用到業務模塊中時,一定要格外小心。

為了方便大家查閱,小編特地將常用ACL業務模塊的處理機制進行了整理。

業務模塊

匹配上了permit規則 匹配上了deny規則 ACL中配置了規則,但未匹配上任何規則 ACL中沒有配置規則 ACL未創建

Telnet

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

HTTP

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

SNMP

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

FTP

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

TFTP

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

SFTP

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

流策略

流行為是permit時:permit(允許通過)

 

流行為是deny時:deny(丟棄報文)

deny(丟棄報文) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發)

NAT

permit(進行NAT轉換) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發)

IPSEC

permit(數據流經過IPSec處理后再轉發) 不允許出現此情況 permit(功能不生效,按照原轉發方式進行轉發) 不允許出現此情況 不允許出現此情況

本機防攻擊策略

   白名單 permit(CPU優先處理)  deny(丟棄報文) permit (功能不生效,正常上送報文) permit(功能不生效,正常上送報文) permit(功能不生效,正常上送報文)

黑名單

deny(丟棄報文)

deny(丟棄報文)

permit (功能不生效,正常上送報文)

permit (功能不生效,正常上送報文)

permit (功能不生效,正常上送報文)

用戶自定義流 用戶自定義流的處理動作是deny時:deny(丟棄報文)

 

動作是car時:permit(進行CAR限速)

 deny(丟棄報文) permit (功能不生效,按照原轉發方式進行轉發) permit (功能不生效,正常上送報文) permit (功能不生效,正常上送報文)

路由

Route Policy 匹配模式是permit時:permit(允許執行路由策略)

 

匹配模式是deny時:

deny(不允許執行路由策略)

deny(功能不生效,不允許執行路由策略) deny(功能不生效,不允許執行路由策略) permit(對經過的所有路由生效) deny(功能不生效,不允許執行路由策略)
Filter Policy permit(允許發布或接收該路由) deny(不允許發布或接收該路由) deny(不允許發布或接收該路由) deny(不允許發布或接收路由) permit(允許發布或接收路由)

組播

igmp-snooping ssm-policy permit(允許加入SSM組播組范圍) deny(禁止加入SSM組地址范圍) deny(禁止加入SSM組地址范圍) deny(禁止加入SSM組地址范圍,所有組都不在SSM組地址范圍內) deny(禁止加入SSM組地址范圍,只有臨時組地址范圍232.0.0.0~232.255.255.255在SSM組地址范圍內)
igmp-snooping group-policy 配置了default-permit時:permit(允許加入組播組)

 

未配置default-permit: permit(允許加入組播組)

配置了default-permit時:deny(禁止加入組播組)

 

未配置default-permit:deny (禁止加入組播組)

配置了default-permit時:permit(允許加入組播組)

 

未配置default-permit:deny(禁止加入組播組)

配置了default-permit時:permit(允許加入組播組)

 

未配置default-permit:deny(禁止加入組播組)

配置了default-permit時:permit(允許加入組播組)

 

未配置default-permit:deny(禁止加入組播組)

3、ACL應用方式

每個業務模塊的ACL應用方式,風格也是各不相同。為此,小編同樣進行了一番整理,供大家參考查閱。

業務模塊

ACL應用方式 可使用的ACL編號范圍

Telnet

方式一:

 

系統視圖下執行命令telnet [ ipv6 ] serveracl acl-number

方式二:

a、執行命令user-interface vty first-ui-number [ last-ui-number ],進入VTY用戶界面視圖

b、執行命令acl [ ipv6 ] acl-number{inbound | outbound }

2000~3999

HTTP

系統視圖下執行命令http acl acl-number 2000~3999

SNMP

SNMPv1和SNMPv2c:

 

系統視圖下執行命令snmp-agent acl acl-number

snmp-agent community { read |write } { community-name | ciphercommunity-name } [ mib-view view-name | acl acl-number ] *

SNMPv3:

系統視圖下執行命令snmp-agent acl acl-numbersnmp-agent group v3group-name { authentication | privacynoauthentication } [ read-view read-viewwrite-view write-view | notify-viewnotify-view ]* [ acl acl-number ]或snmp-agent usm-user v3 user-namegroupgroup-name | acl acl- number ]*

2000~2999

FTP

系統視圖下執行命令ftp [ ipv6 ] acl acl-number 2000~3999

TFTP

系統視圖下執行命令tftp-server [ ipv6 ]aclacl-number 2000~3999

SFTP

方式一:

 

系統視圖下執行命令ssh [ ipv6 ] serveraclacl-number

方式二:

a、執行命令user-interface vty first-ui-number [ last-ui-number ],進入VTY用戶界面視圖

b、執行命令acl [ ipv6 ] acl-number{inbound | outbound }

2000~3999

流策略

a、  系統視圖下執行命令traffic classifierclassifier-name [ operator { and | or} ] [ precedence precedence-value],進入流分類視圖。

 

b、執行命令if-match acl acl-number |acl-name },配置ACL應用於流分類。

c、 系統視圖下執行命令traffic behaviorbehavior–name,定義流行為並進入流行為視圖。

d、配置流動作。報文過濾有兩種流動作:deny 或permit。

e、 系統視圖下執行命令traffic policypolicy-name match-order { auto |config } ],定義流策略並進入流策略視圖。

f、 執行命令classifier classifier-namebehavior behavior-name,在流策略中為指定的流分類配置所需流行為,即綁定流分類和流行為。在系統視圖、接口視圖或VLAN視圖下,執行命令traffic-policy policy-nameinboundoutbound },應用流策略。

ACL:2000~5999

 

ACL6:2000~3999

NAT

方式一:

 

a、   系統視圖下執行命令nat address-group group-index start-addressend-address,配置公網地址池。

b、   執行命令interface interface-typeinterface-number.subnumber,進入子接口視圖。

c、   執行命令nat outbound acl-numberaddress-group group-index [ no-pat ],,配置帶地址池的NAT Outbound。

方式二:

a、   系統視圖下執行命令interfaceinterface-type interface-number.subnumber,進入子接口視圖。

b、   執行命令nat outbound acl-number,配置Easy IP。

2000~3999

IPSEC

方式一:

 

a、   系統視圖下執行命令ipsec policypolicy-name seq-number manual,創建手工方式安全策略,並進入手工方式安全策略視圖。

b、   執行命令security acl acl-number,在安全策略中引用ACL。

方式二:

a、   系統視圖下執行命令ipsec policypolicy-name seq-number isakmp,創建IKE動態協商方式安全策略,並進入IKE動態協商方式安全策略視圖。

b、   執行命令security acl acl-number,在安全策略中引用ACL。

方式三:

a、   系統視圖下執行命令ipsec policy-template template-name seq-number,創建策略模板,並進入策略模板視圖。

b、   執行命令security acl acl-number,在安全策略中引用ACL。

c、   系統視圖下執行命令ipsec policypolicy-name seq-number isakmptemplatetemplate-name,在安全策略中引用策略模板。

3000~3999

本機防攻擊策略

白名單 a、   系統視圖下執行命令cpu-defend policypolicy-name,創建防攻擊策略並進入防攻擊策略視圖。

 

b、   執行命令whitelist whitelist-id aclacl-number,創建自定義白名單。

c、   系統視圖下執行命令cpu-defend-policypolicy-name [ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防攻擊策略。

2000~4999
黑名單 a、   系統視圖下執行命令cpu-defend policypolicy-name,創建防攻擊策略並進入防攻擊策略視圖。

 

b、   執行命令blacklist blacklist-id aclacl-number,創建黑名單。

c、   系統視圖下執行命令cpu-defend-policypolicy-name [ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防攻擊策略。

2000~4999
用戶自定義流 a、   系統視圖下執行命令cpu-defend policypolicy-name,創建防攻擊策略並進入防攻擊策略視圖。

 

b、   執行命令user-defined-flow flow-idacl acl-number,配置用戶自定義流。

c、   系統視圖下執行命令cpu-defend-policypolicy-name [ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防攻擊策略。

2000~4999

路由

Route Policy a、   系統視圖下執行命令route-policyroute-policy-name { permit | deny }node node,創建Route-Policy,並進入Route-Policy視圖。

 

b、   執行命令if-match acl { acl-numberacl-name },配置基於ACL的匹配規則;或者配置apply子句為路由策略指定動作,如執行命令apply cost [ + | cost,設置路由的開銷值等。

c、   應用路由策略。路由協議不同,命令行不同。例如針對OSPF協議,可以在OSPF視圖下,執行命令import-route { limit limit-number | { bgp [permit-ibgp ] | direct | unr | rip [process-id-rip ] | static | isis[process-id-isis ] | ospf [ process-id-ospf ] } [ cost cost | type type | tagtag | route-policyroute-policy-name ]* },引入其他路由協議學習到的路由信息;針對RIP協議,可以在RIP視圖下,執行命令import-route { {static | direct | unr } | { { rip | ospf |isis } [ process-id ] } } [ cost cost |route-policyroute-policy-name ]*。

2000~2999
Filter Policy 路由協議不同,過濾方向不同,命令行不同。例如針對RIP協議,對引入的路由進行過濾,可以在RIP視圖下執行命令filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] }import [ interface-type interface-number];對發布的路由進行過濾,可以在RIP視圖下執行命令filter-policy {acl-number | acl-name acl-name | ip-prefix ip-prefix-name } export [ protocol [ process-id ] | interface-type interface-number ] 。 2000~2999

組播

igmp-snooping ssm-policy VLAN視圖下執行命令igmp-snooping ssm-policy basic-acl-number 2000~2999
igmp-snooping group-policy VLAN視圖下執行命令igmp-snooping group-policy acl-number [ versionversion-number ] [ default-permit ] 2000~3999

好啦,有了小編整理的這兩張表做參考,配置ACL應用案例就可以輕松搞定啦!下面就跟隨小編一起,動手試試吧~

4、ACL應用案例

案例1:使用ACL限制Telnet訪問權限

為了保障遠程維護網絡設備的安全性,現要求只有管理員(源地址是10.1.1.1/32)才能telnet登錄交換機,其他人不允許登錄。

要實現這個需求,一定是在Telnet模塊中應用ACL。那么該如何配置ACL規則呢?大家是不是認為應該先配置一條permit規則允許10.1.1.1/32登錄,然后再配置多條deny規則拒絕其他地址登錄呢?其實大可不必。

查閱Telnet模塊的報文處理機制參照表,當ACL中存在規則的情況下,如果報文匹配上permit規則,則該地址允許登錄設備;如果未匹配上規則,該地址被拒絕登錄設備。

業務模塊

匹配上了permit規則 匹配上了deny規則 ACL中配置了規則,但未匹配上任何規則 ACL中沒有配置規則 ACL未創建

Telnet

permit(允許登錄) deny(拒絕登錄) deny(拒絕登錄) permit(允許登錄) permit(允許登錄)

因此,我們僅需配置一條允許10.1.1.1/32地址通過的permit規則即可,10.1.1.1/32以外的地址的報文因匹配不上任何規則會被拒絕登錄。

案例1關鍵配置的配置文件如下:

#

telnet server port 1025

#

acl number 2001    //創建基本ACL,編號為2001

rule 5 permit source 10.1.1.1 0   //僅允許10.1.1.1/32登錄

#

aaa

local-user admin1234 password irreversible-cipher ******  //登錄密碼用******代替,請根據實際情況配置

local-user admin1234 privilege level 3

local-user admin1234 service-type telnet

#

user-interface maximum-vty 8

user-interface vty 0 7

acl 2001 inbound    //對通過用戶界面的登錄進行限制

案例2:使用基於時間的ACL限制用戶訪問服務器權限

某企業禁止市場部門和研發部門在上班時間(8:00至17:30)訪問工資查詢服務器(IP地址為10.10.4.9/32),而總裁辦公室不受限制,可以隨時訪問。

分析上述需求,實際上就是要對源IP=10.10.1.0/24訪問目的IP=10.10.4.9/32的轉發流量、以及源IP=10.10.2.0/24訪問目的IP=10.10.4.9/32的轉發流量,在特定時間內進行限制,其他訪問流量則不受限制,所以我們可以通過在流策略中應用ACL來解決。

1)     首先,查閱流策略模塊的ACL處理機制參照表,為需要過濾的報文配置ACL規則。

當ACL中存在規則的情況下,如果報文匹配上deny規則,則被拒絕通過;如果未匹配上,則會被正常轉發。因此,根據上述需求,我們只需要針對兩類需限制的流量,分別配置deny規則即可。其他地址訪問服務器的報文因匹配不上任何規則而被正常轉發,不受限制。

業務模塊

匹配上了permit規則 匹配上了deny規則 ACL中配置了規則,但未匹配上任何規則 ACL中沒有配置規則 ACL未創建

流策略

流行為是permit時:

 

permit(允許通過)

流行為是deny時:

deny(丟棄報文)

deny(丟棄報文) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發) permit(功能不生效,按照原轉發方式進行轉發)

2)    其次,我們需要注意,需求中強調了是在一定時間范圍內進行流量限制,所以僅僅進行流量控制是不可行的,還必須在規則中引入生效時間段。

我們定義一個時間段名稱為control-time,並配置該時間段為8:00至17:30,然后在規則中指定time- name參數為control-time,即把生效時間段與ACL關聯起來了。

3)    最后,我們再查閱流策略ACL應用方式參照表,將ACL應用到流策略中。

根據上述需求,我們為市場部和研發部分別配置兩個流分類c_market、c_rd,然后將配置的兩條deny規則對應的ACL應用到兩個流分類中,並配置兩個流行為動作為deny。同時為市場部和研發部分別創建流策略p_market和p_ rd,並將流分類和流行為與流策略綁定,最后再在接口上應用流策略。

在選擇流策略的應用方向時,一定要注意,需求中是要對源自市場部和研發部的報文進行過濾,即對從接口GE1/0/0和接口GE1/0/1進入交換機的報文進行過濾,所以流策略的應用方向必須指定為入方向(inbound)。如果應用方向配置成了出方向(outbound),那就達不到過濾的效果了。

小編提醒,上述案例我們還可以通過這樣的配置來實現需求:在一條ACL中配置兩條規則,在一個流分類中應用這條ACL,配置一個流行為動作為deny,最后創建並應用一個流策略。這樣配置起來更加簡潔和方便,但同時又帶來了新的問題:若后續企業增加了市場部對其他服務器的訪問限制,這時該如何處理呢?

如果之前市場部和研發部使用的是同一個ACL、流分類、流行為和流策略(這整套ACL的相關配置小編統稱為“ACL策略配置”),那么這時只能重新再為市場部配置一條新的ACL策略;如果之前兩個部門使用的是不同的ACL策略,那么現在只需在市場部的ACL策略中,增加一條ACL規則即可解決。所以,為各個部門部署獨立的ACL策略,可以讓您在后續需求擴充或發生改變時,更加方便的維護網絡配置。小編建議大家能把眼光放的更加長遠一些,不要只顧眼前配置的簡單噢~

案例2關鍵配置的配置文件如下:

time-range control-time 08:00 to 17:30 working-day  //配置生效時間段,工作日8:00至17:30

#

acl number 3002

rule 5 deny ip source 10.10.1.0 0.0.0.255 destination 10.10.4.9 0 time-range control-time     //限制市場部人員在上班時間不能訪問工資服務器

#

acl number 3003

rule 5 deny ip source 10.10.2.0 0.0.0.255 destination 10.10.4.9 0 time-range control-time    //限制研發部人員在上班時間不能訪問工資服務器

#

traffic classifier c_market operator or precedence 5  //為市場部配置基於ACL的流分類

if-match acl 3002  //對匹配ACL 3002的報文(即源地址是市場部IP的報文)進行分類

traffic classifier c_rd operator or precedence 10  //為研發部配置基於ACL的流分類

if-match acl 3003  //對匹配ACL 3003的報文(即源地址是研發部IP的報文)進行分類

#

traffic behavior b_market

deny  //配置流行為,拒絕匹配上規則的報文通過

traffic behavior b_rd

deny  //配置流行為,拒絕匹配上規則的報文通過

#

traffic policy p_market match-order config   //為市場部配置流策略

classifier c_market behavior b_market    //在流策略中綁定流分類和流行為

traffic policy p_rd match-order config    //為研發部配置流策略

classifier c_rd behavior b_rd  //在流策略中綁定流分類和流行為

#

interface GigabitEthernet1/0/0

port link-type access

port default vlan 10

traffic-policy p_market inbound   //接口下應用流策略(市場部從接口GE1/0/0接入)

#

interface GigabitEthernet1/0/1

port link-type access

port default vlan 20

traffic-policy p_rd inbound  //接口下應用流策略(研發部從接口GE1/0/1接入)

結束了ACL應用案例的配置,本期ACL應用篇也要完結了。限於篇幅問題,小編只能為大家講解兩個最為典型的ACL案例。好學的你,一定覺得不過癮吧!

——博主簽名—— “雲開遠見漢陽城,猶是孤帆一日程”!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM