天天看點

網絡安全通路控制工具-ACL詳解

作者:山狗學會

一、什麼是ACL

通路控制清單ACL(Access Control List)是一種基于封包過濾的通路控制技術,它可以根據設定的條件對接口上的資料包進行過濾,允許其通過或丢棄。這些條件可以是封包的源位址、目的位址、端口号等。

通路控制清單被廣泛地應用于防火牆、路由器和三層交換機,借助于通路控制清單,可以有效地控制使用者對網絡的通路,進而最大程度地保障網絡安全。

借助ACL,可以快捷而規範的落地如下通路控制功能:

  • 提供安全通路:使用ACL可以指定使用者通路特定的伺服器、網絡與服務,進而避免随意通路的情況,降低甚至消除資源被竊取,資訊被洩露的風險。
  • 防止網絡攻擊:使用ACL可以封堵高危端口、IP、特定流量,阻斷惡意攻擊。
  • 提高網絡帶寬使用率:使用ACL實作對網絡流量的精确識别和控制,限制部分網絡流量進而保障主要業務的品質和網絡性能。

二、ACL的組成、分類以及典型應用場景

2.1 ACL的組成

(1)ACL辨別:使用數字或者名稱來辨別ACL

使用數字辨別ACL:不同的類型的ACL使用不同的數字進行辨別。

使用名稱辨別ACL:可以使用字元來辨別ACL,就像用域名代替IP位址一樣,更加友善記憶。

(2)規則:即描述比對條件的判斷語句

規則編号:用于辨別ACL規則,所有規則均按照規則編号從小到大進行排序。

動作:包括permit/deny兩種動作,表示裝置對所比對的資料包接受或者丢棄。

(3)比對項:包括生效時間段、IP協定(ICMP、TCP、UDP等)、源/目的位址以及相應的端口号(21、23、80等)。

網絡安全通路控制工具-ACL詳解

2.2 ACL的分類

基本ACL:基本ACL規則隻包含源IP位址,對裝置的CPU消耗較少,可用于簡單的部署,但是使用場景有限,不能提供強大的安全保障。

進階ACL:相較于基本ACL,進階ACL提供更高的擴充性,可以對流量進行更精細的比對。通過配置進階ACL,可以阻止特定主機或者整個網段的源或者目标。除此之外,還可以使用協定資訊(IP、ICMP、TCP、UDP)去過濾相應的流量。

二層ACL:使用二層ACL,可以根據源MAC位址、目的MAC位址、802.1p優先級、二層協定類型等二層資訊對流量進行管控。

使用者ACL:使用者ACL在進階ACL的基礎上增加了使用者組的配置項,可以實作對不同使用者組的流量管控。

不同類型的ACL的具體應用場景如下所示:

網絡安全通路控制工具-ACL詳解

2.3 典型應用場景

2.3.1在路由中使用ACL

通過NAT的端口映射可使得外網通路内部網絡。考慮到内部的網絡安全,不可能允許所有的外部使用者通路内部網絡,這時可以設定ACL規則并應用在企業路由器上,使得特定的外網使用者可以通路内部網絡。

網絡安全通路控制工具-ACL詳解

如上圖所示,當公網主機想建立與内網主機的通信時,其發向内部網絡主機的流量經過NAT裝置時,裝置利用ACL對流量進行過濾,阻斷了PC4對PC2的通路,同時允許PC3對PC1的通路。

2.3.2在防火牆中使用ACL

防火牆用在内外網絡邊緣處,防止外部網絡對内部網絡的入侵,也可以用來保護網絡内部大型伺服器和重要的資源(如資料)。由于ACL直接在裝置的轉發硬體中配置,在防火牆中配置ACL在保護網絡安全的同時不會影響伺服器的性能。

網絡安全通路控制工具-ACL詳解

如上圖所示,在防火牆上配置ACL隻允許外部特定主機PC A通路内部網絡中的資料中心,并禁止其他外部主機的通路。

2.3.3在交換機上使用ACL限制使用者互訪

利用ACL可以實作不同網段使用者之間通路權限的限制,進而避免使用者之間随意通路形成安全隐患。

網絡安全通路控制工具-ACL詳解

如上圖所示,某公司為财務部和市場部規劃了兩個網段的IP位址。為了避免兩個部門之間互相通路造成公司機密的洩露,可以在兩個部門連接配接三層交換的接口的入方向上應用綁定了ACL的流政策,進而禁止兩個部門的互訪。

三、ACL的比對機制

裝置将封包與ACL規則進行比對時,遵循“一旦命中即停止比對”的機制。

網絡安全通路控制工具-ACL詳解

ACL比對流程圖描述:

(1)首先系統會查找裝置上是否配置了ACL。

(2)如果ACL不存在,則傳回ACL比對結果為:不比對。

(3)如果ACL存在,則查找裝置是否配置了ACL規則。

(4)如果規則不存在,則傳回ACL比對結果為:不比對。

(5)如果規則存在,則系統會從ACL中編号最小的規則開始查找。

(6)如果比對上了permit規則,則停止查找規則,并傳回ACL比對結果為:比對(允許)。

(7)如果比對上了deny規則,則停止查找規則,并傳回ACL比對結果為:比對(拒絕)。

(8)如果未比對上規則,則繼續查找下一條規則,以此循環。如果一直查到最後一條規則,封包仍未比對上,則傳回ACL比對結果為:不比對。

從整個ACL比對流程可以看出,封包與ACL規則比對後,會産生兩種比對結果:“比對”和“不比對”。

不論比對(命中規則)的動作是“permit”還是“deny”,都稱為“比對”,而不是隻是比對上permit規則才算“比對”。不比對(未命中規則)指不存在ACL,或ACL中符合規則。

四、配置示例 - 使用進階ACL限制不同網段的使用者互訪

4.1 組網需求

如下圖所示,通過Switch實作各部門之間的互連。為友善管理網絡,管理者為公司的研發部和市場部規劃了兩個網段的IP位址。同時為了隔離廣播域,又将兩個部門劃分在不同VLAN之中。現要求Switch能夠限制兩個網段之間互訪,防止公司機密洩露。

網絡安全通路控制工具-ACL詳解

4.2 配置思路

(1)配置進階ACL和基于ACL的流分類,使裝置可以對研發部與市場部互訪的封包進行過濾。

(2)配置流行為,拒絕比對上ACL的封包通過。

(3)配置并應用流政策,使ACL和流行為生效。

4.3 操作步驟

(1)配置接口所屬的VLAN以及接口的IP位址

# 建立VLAN10和VLAN20
<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20           
# 配置Switch的接口GE0/0/1和GE0/0/2為trunk類型接口,并分别加入VLAN10和VLAN20
[Switch] interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1] port link-type trunk
[Switch-GigabitEthernet0/0/1] port trunk allow-pass vlan 10
[Switch-GigabitEthernet0/0/1] quit
[Switch] interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2] port link-type trunk
[Switch-GigabitEthernet0/0/2] port trunk allow-pass vlan 20
[Switch-GigabitEthernet0/0/2] quit           
# 建立VLANIF10和VLANIF20,并配置各VLANIF接口的IP位址
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.1.1.1 24
[Switch-Vlanif10] quit
[Switch] interface vlanif 20
[Switch-Vlanif20] ip address 10.1.2.1 24
[Switch-Vlanif20] quit           

(2)配置ACL

# 建立進階ACL 3001并配置ACL規則,拒絕研發部通路市場部的封包通過
[Switch] acl 3001
[Switch-acl-adv-3001] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Switch-acl-adv-3001] quit           
# 建立進階ACL 3002并配置ACL規則,拒絕市場部通路研發部的封包通過
[Switch] acl 3002
[Switch-acl-adv-3002] rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[Switch-acl-adv-3002] quit           

(3)配置基于進階ACL的流分類

# 配置流分類tc1,對比對ACL 3001和ACL 3002的封包進行分類
[Switch] traffic classifier tc1
[Switch-classifier-tc1] if-match acl 3001
[Switch-classifier-tc1] if-match acl 3002
[Switch-classifier-tc1] quit           

(4)配置流行為

# 配置流行為tb1,動作為拒絕封包通過
[Switch] traffic behavior tb1
[Switch-behavior-tb1] deny
[Switch-behavior-tb1] quit           

(5)配置流政策

# 定義流政策,将流分類與流行為關聯
[Switch] traffic policy tp1
[Switch-trafficpolicy-tp1] classifier tc1 behavior tb1
[Switch-trafficpolicy-tp1] quit           

(6)在接口下應用流政策

# 由于研發部和市場部互訪的流量分别從接口GE0/0/1和GE0/0/2進入Switch,是以在接口GE0/0/1和GE0/0/2的入方向應用流政策
[Switch] interface gigabitethernet 0/0/1
[Switch-GigabitEthernet0/0/1] traffic-policy tp1 inbound
[Switch-GigabitEthernet0/0/1] quit
[Switch] interface gigabitethernet 0/0/2
[Switch-GigabitEthernet0/0/2] traffic-policy tp1 inbound
[Switch-GigabitEthernet0/0/2] quit           

(7)驗證配置結果

# 檢視ACL規則的配置資訊
[Switch] display acl 3001
Advanced ACL 3001, 1 rule
Acl's step is 5
rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Switch] display acl 3002
Advanced ACL 3002, 1 rule
Acl's step is 5
rule 5 deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255           
# 檢視流分類的配置資訊
[Switch] display traffic classifier user-defined
User Defined Classifier Information:
Classifier: tc1
Operator: OR
Rule(s) : if-match acl 3001
if-match acl 3002
Total classifier number is 1           
# 檢視流政策的配置資訊
[Switch] display traffic policy user-defined tp1
User Defined Traffic Policy Information:
Policy: tp1
Classifier: tc1
Operator: OR
Behavior: tb1
Deny           

繼續閱讀