1、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業務模塊的處理機制
業務模塊 | 匹配上了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(不過濾該路由) | permit(過濾所有路由) | deny(功能不生效,不過濾路由) | |
組播 | 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編號範圍 | |
Telnet | 方式一: 系統視圖下執行命令telnet [ ipv6 ] server acl 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 | cipher community-name } [ mib-view view-name| acl acl-number ] * SNMPv3: 系統視圖下執行命令snmp-agent acl acl-number、snmp-agent group v3 group-name {authentication | privacy | noauthentication } [ read-viewread-view | write-view write-view | notify-view notify-view]* [ acl acl-number ]或snmp-agent usm-user v3 user-name [ group group-name | acl acl- number ] * | 2000~2999 | |
FTP | 系統視圖下執行命令ftp [ ipv6 ] acl acl-number | 2000~3999 | |
TFTP | 系統視圖下執行命令tftp-server [ ipv6 ] acl acl-number | 2000~3999 | |
SFTP | 方式一: 系統視圖下執行命令ssh [ ipv6 ] server acl acl-number 方式二: a、執行命令user-interface vty first-ui-number [ last-ui-number ],進入VTY用戶界面視圖 b、執行命令acl [ ipv6 ] acl-number { inbound | outbound} | 2000~3999 | |
流策略 | a、 系統視圖下執行命令traffic classifier classifier-name [ operator { and | or } ] [ precedenceprecedence-value ],進入流分類視圖。 b、執行命令if-match acl { acl-number | acl-name },配置ACL應用於流分類。 c、 系統視圖下執行命令traffic behavior behavior–name,定義流行爲並進入流行爲視圖。 d、配置流動作。報文過濾有兩種流動作:deny或permit。 e、 系統視圖下執行命令traffic policy policy-name [match-order { auto | config } ],定義流策略並進入流策略視圖。 f、 執行命令classifier classifier-name behaviorbehavior-name,在流策略中爲指定的流分類配置所需流行爲,即綁定流分類和流行爲。在系統視圖、接口視圖或VLAN視圖下,執行命令traffic-policy policy-name { inbound | outbound },應用流策略。 | ACL:2000~5999 ACL6:2000~3999 | |
NAT | 方式一: a、 系統視圖下執行命令nat address-group group-index start-address end-address,配置公網地址池。 b、 執行命令interface interface-type interface-number.subnumber,進入子接口視圖。 c、 執行命令nat outbound acl-number address-groupgroup-index [ no-pat ],,配置帶地址池的NAT Outbound。 方式二: a、 系統視圖下執行命令interface interface-typeinterface-number.subnumber,進入子接口視圖。 b、 執行命令nat outbound acl-number,配置Easy IP。 | 2000~3999 | |
IPSEC | 方式一: a、 系統視圖下執行命令ipsec policy policy-name seq-number manual,創建手工方式安全策略,並進入手工方式安全策略視圖。 b、 執行命令security acl acl-number,在安全策略中引用ACL。 方式二: a、 系統視圖下執行命令ipsec policy policy-name seq-number isakmp,創建IKE動態協商方式安全策略,並進入IKE動態協商方式安全策略視圖。 b、 執行命令security acl acl-number,在安全策略中引用ACL。 方式三: a、 系統視圖下執行命令ipsec policy-templatetemplate-name seq-number,創建策略模板,並進入策略模板視圖。 b、 執行命令security acl acl-number,在安全策略中引用ACL。 c、 系統視圖下執行命令ipsec policy policy-name seq-number isakmp template template-name,在安全策略中引用策略模板。 | 3000~3999 | |
本機防***策略 | 白名單 | a、 系統視圖下執行命令cpu-defend policy policy-name,創建防***策略並進入防***策略視圖。 b、 執行命令whitelist whitelist-id acl acl-number,創建自定義白名單。 c、 系統視圖下執行命令cpu-defend-policy policy-name[ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防***策略。 | 2000~4999 |
黑名單 | a、 系統視圖下執行命令cpu-defend policy policy-name,創建防***策略並進入防***策略視圖。 b、 執行命令blacklist blacklist-id acl acl-number,創建黑名單。 c、 系統視圖下執行命令cpu-defend-policy policy-name[ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防***策略。 | 2000~4999 | |
用戶自定義流 | a、 系統視圖下執行命令cpu-defend policy policy-name,創建防***策略並進入防***策略視圖。 b、 執行命令user-defined-flow flow-id acl acl-number,配置用戶自定義流。 c、 系統視圖下執行命令cpu-defend-policy policy-name[ global ],或槽位視圖下執行命令cpu-defend-policypolicy-name,應用防***策略。 | 2000~4999 | |
路由 | Route Policy | a、 系統視圖下執行命令route-policy route-policy-name{ permit | deny } node node,創建Route-Policy,並進入Route-Policy視圖。 b、 執行命令if-match acl { acl-number | acl-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 | tag tag | route-policy route-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 [ version version-number ] [ default-permit ] | 2000~3999 |
4、ACL應用案例
案例1:使用ACL限制Telnet訪問權限
爲了保障遠程維護網絡設備的安全性,現要求只有管理員(源地址是10.1.1.1/32)才能telnet登錄交換機,其他人不允許登錄。
要實現這個需求,一定是在Telnet模塊中應用ACL。那麼該如何配置ACL規則呢?大家是不是認爲應該先配置一條permit規則允許10.1.1.1/32登錄,然後再配置多條deny規則拒絕其他地址登錄呢?其實大可不必。
業務模塊 | 匹配上了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,並將流分類和流行爲與流策略綁定,最後再在接口上應用流策略。
案例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接入) |
轉(http://support.huawei.com/ecommunity/bbs/10223479.html)