華為路由交換由ACL 的應用
1 ACL 概述
隨著網路規模的擴大和流量的增加,對網路安全的控制和對頻寬的分配成為網路管理的重要內容。通過對報文進行過濾,可以有效防止非法使用者對網路的訪問,同時也可以控制流量,節約網路資源。ACL(Access Control List,訪問控制列表)即是通過配置對報文的匹配規則和處理操作來實現包過濾的功能。
ACL 通過一系列的匹配條件對報文進行分類,這些條件可以是報文的源 MAC 地址、目的 MAC 地址、源 IP 地址、目的 IP 地址、埠號等。
2 案例背景[交換機]
網路環境拓撲如下(客戶端接入交換機約有幾十個,所有裝置均採用靜態 IP)
伺服器區所有伺服器閘道器均在核心交換機上,共有 9 個 Vlan,9 個網段分別如下;
Vlan10-Vlan11 網段分別為 10.0.10.0/24-10.0.11.0/24
Vlan14-Vlan19 網段分別為 10.0.14.0/24-10.0.19.0/24
交換機管理 Vlan 為 Vlan1: 10.0.13.0/24,核心交換機的管理ip10.0.13.254,其餘接入交換機閘道器均在核心交換機上;
客戶端共有 8 個 Vlan,分別為 Vlan20-Vlan100,網段分別為 10.0.20.0/24-10.0.100.0/24,閘道器均在核心交換機上;
3 需求一:對伺服器區伺服器做安全防護,只允許客戶端訪問伺服器某些埠
由於網路環境拓撲為客戶端——客戶端接入交換機——核心交換機——防火牆——伺服器接入交換機——伺服器,
也即客戶端訪問伺服器需要通過防火牆,所以對伺服器的防護應該放到防火牆上來做,因為若用交換機來做過濾,配置麻煩且失去了防火牆應有的作用(此處不做防火牆配置介紹);
4 需求二:交換機只允許固定管理員通過 ssh 登陸
此處做防護有較為方便的倆種方法
一:在所有交換機配置 VTY 時,呼叫 ACL 只允許源為網路管理員的 IP 訪問,但此方法雖配置不復雜,但是配置工作量較大需
要在所有交換機上配置,而且不靈活例如在網路管理員人員或者 IP 變遷時,需要重新修改所有交換機 ACL,所以並不是首選方
案;
二:因為管理交換機管理 Vlan 與所有客戶端 Vlan 不在同一 Vlan,也即客戶端訪問接入交換機必須通過核心 交換機,所以可以在核心交換機上做 ACL 來控制客戶端訪對接入交換機的訪問,核心交換機的訪問通過 VTY 來呼叫 ACL;配置部分在下面;
5 需求三:客戶端 VLAN 之間不能互相訪問,客戶端只允許訪問伺服器 VLAN
一:在核心交換機上的所有連結客戶端接入交換機埠做 ACL,只放行訪問伺服器的流量,拒絕其餘流量,但由於客戶端接入交換機約有幾十臺,所以配置工作量大幾十個埠都需要配置,所以也不是首選方案;
二:在核心交換機上的客戶端 Vlan 做 Acl,只放行訪問伺服器的流量,拒絕其餘流量,由於客戶端 Vlan 共有 8 個所以相對於在物理介面上做 ACL 而言,工作量較小,所以選擇此方案;
6 配置部分
6.1 ACL 配置部分
acl number 2000
rule 5 permit source 10.0.20.11 0
rule 10 permit source 10.0.21.15 0
rule 15 deny
//定義允許訪問核心交換機的倆位網路管理員 IP 地址;
acl number 3000
rule 51 permit ip destination 10.0.10.0 0.0.0.255
rule 53 permit ip destination 10.0.12.0 0.0.0.255
rule 55 permit ip destination 10.0.14.0 0.0.0.255
rule 56 permit ip destination 10.0.15.0 0.0.0.255
rule 57 permit ip destination 10.0.16.0 0.0.0.255
rule 58 permit ip destination 10.0.17.0 0.0.0.255
rule 59 permit ip destination 10.0.18.0 0.0.0.255
rule 60 permit ip destination 10.0.19.0 0.0.0.255
//定義所有客戶端只允許訪問伺服器 Vlan
acl number 3100
rule 5 permit ip
//拒絕除允許網段外的其餘所有流量
//由於此處的 acl3000 及 3100 是給下面的 QOS 做呼叫的,所以此處的 permit 或 deny 不起作用,隨意設定即可;
6.2 Qos 呼叫部分
traffic classifier 3000 operator or precedence 5
if-match acl 3000
// 定義名為 classifier 3000 的流分類,並呼叫 ACL3000
traffic classifier 3100 operator or precedence 10
if-match acl 3100
// 定義名為 classifier 3100 的流分類,並呼叫 ACL3100
//定義流分類
traffic behavior 3000
permit
//定義名為 behavior 3000 的流行為,並賦予允許值
traffic behavior 3100
deny
//定義名為 behavior 3100 的流行為,並賦予拒絕值
//定義流行為
//上面 ACL 的允許或拒絕不起作用,通過此處來定義拒絕或允許
traffic policy 634acl
classifier 3000 behavior 3000
classifier 3100 behavior 3100
//定義名為 policy 634acl 流策略,並將 classifier 3000 流分類與 behavior 3000 流行為關聯,以及 classifier
3100 流分類與 behavior 3100 流行為關聯(注意:允許在前,拒絕在後);
vlan 20
description kjfzb jimi
traffic-policy 634acl inbound
//依次登入客戶端 Vlan 應用流策略
至此完成了所有客戶端 Vlan 之間不能互訪,以及除網路管理員之外不能訪問接入交換機管理網段的訪問控制;
user-interface vty 0 4
acl 2000 inbound
//在 vty 介面中呼叫 Acl2000,即只允許倆網路管理員登入;
authentication-mode aaa
user privilege level 3
protocol inbound ssh
//至此完成了只允許網路管理員登入核心交換機的訪問控制;
關於華為 ACL 日常維護中的一點點經驗和大家分享下
在已經做好的 ACL 控制策略中,
如 192.168.1.0 禁止訪問 192.168.2.0 3.0 4.0 5.0 網段
acl number 3001
rule 5 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
rule 10 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.3.0 0.0.0.255
rule 15 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.4.0 0.0.0.255
rule 20 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.5.0 0.0.0.255
rule 25 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.6.0 0.0.0.128
但是在工作需求中要重新調整,使得 192.168.1.0 中的某個 IP 如 192.168.1.10 需要訪問已被禁止的網段中的某個 IP 如
192.168.6.215,那麼要將 1.10 與 6.215 互通在調整過程中需要什麼呢.
很顯然重建建 ACL 規則是不可行的,因為將規則應用到埠上時,只能同時應用一條規則. 那麼就只能從原有的 3001 規則上下手了.下面是操作步驟:
1.首先在埠上將 inbound 應用停用,如果 3001 已經在使用中,那麼 rule 是不可更改的
2.清空 3001 中的所有規則,做好備份.將 permit 條目放在前端,再恢復原有的規則,原因是 acl 匹配有一個自上而下的順序匹配,所以必須首先 permit 後 deny 若先匹配到如 rule 25 已經是 deny,那麼後面無論怎麼做 permit,結果還是拒絕,那麼調整後的順序應當是
rule 5 permit ip source 192.168.1.10 0 destination 192.168.6.215 0
rule 10 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
rule 15 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.3.0 0.0.0.255
rule 20 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.4.0 0.0.0.255
rule 25 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.5.0 0.0.0.255
rule 30 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.6.0 0.0.0.128
3.重新應用至介面.在應用過程中注意一點 traffic behavior 上 permit 與 deny 的區別. 使用 permit 表示按照 acl 3001 的規則來進行資料放行,3001 中允許那就允許,禁止那就禁止 但是若使用 deny,則無論 3001 規則中的 permit 或者 deny,一律全都丟棄不進行轉發.
關於路由器的呼叫,對比交換來說簡單很多。
traffic-filter inbound acl 3001 【介面下呼叫即可】
說明:高版本的交換機 VRP 也支援該命令,可以簡化 ACL 的配置。