【網絡協議安全】任務13:ACL訪問控制列表

目錄

一、概念

1、前言

2、應用場景

3、ACL分類

基于ACL標識方法的劃分

基于對IPv4和IPv6支持情況的劃分

基于ACL規則定義方式的劃分

4、ACL的基本原理

ACL的組成

ACL的匹配機制

5、ACL常用匹配原則

6、ACL常用的匹配項?

生效時間段

IP承載的協議類型

源/目的IP地址及其通配符掩碼

源/目的MAC地址及其通配符掩碼

VLAN編號及其掩碼

TCP/UDP端口號

TCP標志信息

IP分片信息

7、ACL的生效時間段

產生背景

生效時間段模式

二、ACL配置

1.1示例拓撲圖

1.2交換機配置?

1.3路由器配置

1.4結果驗證

?三、總結

CSDN 原創主頁:不羈https://blog.csdn.net/2303_76492156?type=blog?


本文概念部分參考了華為社區技術專家的分享,配置內容則基于個人學習與實踐經驗整理而成,希望能為網絡通信安全領域的新手同行提供參考價值。

一、概念

1、前言

企業網絡中的設備進行通信時,需要保障數據傳輸的安全可靠和網絡的性能穩定。

訪問控制列表ACL(Access Control List)是由一條或多條規則組成的集合。所謂規則,是指描述報文匹配條件的判斷語句,這些條件可以是報文的源地址、目的地址、端口號等。

ACL本質上是一種報文過濾器,規則是過濾器的濾芯。設備基于這些規則進行報文匹配,可以過濾出特定的報文,并根據應用ACL的業務模塊的處理策略來允許或阻止該報文通過。

ACL可以定義一系列不同的規則,設備根據這些規則對數據包進行分類,并針對不同類型的報文進行不同的處理,從而可以實現對網絡訪問行為的控制、限制網絡流量、提高網絡性能、防止網絡攻擊等等。

2、應用場景

1、限制指定網段的主機可以訪問互聯網

2、限制指定網段的主機可以訪問內網資源

  • 某企業為保證財務數據安全,禁止研發部門訪問財務服務器,但總裁辦公室不受限制。實現方式:

    在Interface 1的入方向上部署ACL,禁止研發部門訪問財務服務器的報文通過。Interface 2上無需部署ACL,總裁辦公室訪問財務服務器的報文默認允許通過。

  • 保護企業內網環境安全,防止Internet病毒入侵。實現方式:

    在Interface 3的入方向上部署ACL,將病毒經常使用的端口予以封堵。

?ACL可以通過定義規則來允許或拒絕流量的通過。

ACL可以根據需求來定義過濾的條件以及匹配條件后所執行的動作。

3、ACL分類

基于ACL標識方法的劃分

劃分如下:

  • 數字型ACL:傳統的ACL標識方法。創建ACL時,指定一個唯一的數字標識該ACL。

  • 命名型ACL:通過名稱代替編號來標識ACL。

用戶在創建ACL時可以為其指定編號,不同的編號對應不同類型的ACL,如表1-1所示。同時,為了便于記憶和識別,用戶還可以創建命名型ACL,即在創建ACL時為其設置名稱。命名型ACL,也可以是“名稱 數字”的形式,即在定義命名型ACL時,同時指定ACL編號。如果不指定編號,系統則會自動為其分配一個數字型ACL的編號。

說明:

命名型ACL一旦創建成功,便不允許用戶再修改其名稱。如果刪除ACL名稱,則表示刪除整個ACL。

僅基本ACL與基本ACL6,以及高級ACL與高級ACL6,可以使用相同的ACL名稱;其他類型ACL之間,不能使用相同的ACL名稱。

命名型ACL一旦創建成功,便不允許用戶再修改其名稱。如果刪除ACL名稱,則表示刪除整個ACL。

僅基本ACL與基本ACL6,以及高級ACL與高級ACL6,可以使用相同的ACL名稱;其他類型ACL之間,不能使用相同的ACL名稱。

基于對IPv4和IPv6支持情況的劃分

劃分如下:

  • ACL4:通常直接叫做“ACL”,特指僅支持過濾IPv4報文的ACL。

  • ACL6:又叫做“IPv6 ACL”,特指僅支持過濾IPv6報文的ACL。

以上兩種ACL,以及既支持過濾IPv4報文又支持過濾IPv6報文的ACL,統一稱做“ACL”。各類型ACL對IPv4和IPv6的支持情況,如表所示。

基于ACL規則定義方式的劃分

如表所示,基于ACL規則定義方式的劃分如下。

基于ACL規則定義方式的ACL分類:

分類

適用的IP版本

規則定義描述

編號范圍

基本ACL

IPv4

僅使用報文的源IP地址、分片信息和生效時間段信息來定義規則。

2000~2999

高級ACL

IPv4

既可使用IPv4報文的源IP地址,也可使用目的IP地址、IP協議類型、ICMP類型、TCP源/目的端口、UDP源/目的端口號、生效時間段等來定義規則。

3000~3999

二層ACL

IPv4&IPv6

使用報文的以太網幀頭信息來定義規則,如根據源MAC(Media Access Control)地址、目的MAC地址、二層協議類型等。

4000~4999

用戶自定義ACL

IPv4&IPv6

使用報文頭、偏移位置、字符串掩碼和用戶自定義字符串來定義規則,即以報文頭為基準,指定從報文的第幾個字節開始與字符串掩碼進行“與”操作,并將提取出的字符串與用戶自定義的字符串進行比較,從而過濾出相匹配的報文。

5000~5999

用戶ACL

IPv4

既可使用IPv4報文的源IP地址,也可使用目的IP地址、IP協議類型、ICMP類型、TCP源端口/目的端口、UDP源端口/目的端口號等來定義規則。

6000~6031

基本ACL6

IPv6

可使用IPv6報文的源IPv6地址、分片信息和生效時間段來定義規則。

2000~2999

高級ACL6

IPv6

可以使用IPv6報文的源IPv6地址目的IPv6地址、IPv6協議類型、ICMPv6類型、TCP源/目的端口、UDP源/目的端口號、生效時間段等來定義規則。

3000~3999

4、ACL的基本原理

ACL由一系列規則組成,通過將報文與ACL規則進行匹配,設備可以過濾出特定的報文。

ACL的組成

一條ACL的結構組成,如圖所示。

ACL的結構組成:

?

ACL編號:用于標識ACL,表明該ACL是數字型ACL。

根據ACL規則功能的不同,ACL被劃分為基本ACL、高級ACL、二層ACL和用戶ACL這幾種類型,每類ACL編號的取值范圍不同。關于每類ACL編號的詳細介紹,請參見ACL的分類

除了可以通過ACL編號標識ACL,設備還支持通過名稱來標識ACL,就像用域名代替IP地址一樣,更加方便記憶。這種ACL,稱為命名型ACL。

命名型ACL實際上是“名字+數字”的形式,可以在定義命名型ACL時同時指定ACL編號。如果不指定編號,則由系統自動分配。例如,下面就是一個既有名字“deny-telnet-login”又有編號“3998”的ACL。

#???????????????????????????????????????????????????????????????????????????????
acl name deny-telnet-login 3998?????????????????????????????????????????????????
rule 0 deny tcp source 10.152.0.0 0.0.63.255 destination 10.64.0.97 0 destination-port eq telnet???????????????????????????????????????????????????????????????
rule 5 deny tcp source 10.242.128.0 0.0.127.255 destination 10.64.0.97 0 destination-port eq telnet????????????????????????????????????????????????????????????
# ????????
  • 規則:即描述報文匹配條件的判斷語句。

  • 規則編號:用于標識ACL規則。可以自行配置規則編號,也可以由系統自動分配。

    ACL規則的編號范圍是0~4294967294,所有規則均按照規則編號從小到大進行排序。所以,如上圖中的rule 5排在首位,而規則編號最大的rule 4294967294排在末位。系統按照規則編號從小到大的順序,將規則依次與報文匹配,一旦匹配上一條規則即停止匹配。

  • 動作:包括permit/deny兩種動作,表示允許/拒絕。

  • 匹配項:ACL定義了極其豐富的匹配項。除了圖1-2中的源地址和生效時間段,ACL還支持很多其他規則匹配項。例如,二層以太網幀頭信息(如源MAC、目的MAC、以太幀協議類型)、三層報文信息(如目的地址、協議類型)以及四層報文信息(如TCP/UDP端口號)等。關于每種匹配項的詳細介紹,請參見ACL常用匹配項

ACL的匹配機制

設備將報文與ACL規則進行匹配時,遵循“一旦命中即停止匹配”的機制,如圖所示。

?

ACL的匹配機制:

首先系統會查找設備上是否配置了ACL。

  • 如果ACL不存在,則返回ACL匹配結果為:不匹配。

  • 如果ACL存在,則查找設備是否配置了ACL規則。

    • 如果規則不存在,則返回ACL匹配結果為:不匹配。

    • 如果規則存在,則系統會從ACL中編號最小的規則開始查找。

  • 如果匹配上了permit規則,則停止查找規則,并返回ACL匹配結果為:匹配(允許)。

  • 如果匹配上了deny規則,則停止查找規則,并返回ACL匹配結果為:匹配(拒絕)。

  • 如果未匹配上規則,則繼續查找下一條規則,以此循環。如果一直查到最后一條規則,報文仍未匹配上,則返回ACL匹配結果為:不匹配。

從整個ACL匹配流程可以看出,報文與ACL規則匹配后,會產生兩種匹配結果:“匹配”和“不匹配”。

  • 匹配(命中規則):指存在ACL,且在ACL中查找到了符合匹配條件的規則。

    不論匹配的動作是“permit”還是“deny”,都稱為“匹配”,而不是只是匹配上permit規則才算“匹配”。

  • 不匹配(未命中規則):指不存在ACL,或ACL中無規則,再或者在ACL中遍歷了所有規則都沒有找到符合匹配條件的規則。

    以上三種情況,都叫做“不匹配”。

5、ACL常用匹配原則

配置ACL規則時,可以遵循以下原則:

  1. 如果配置的ACL規則存在包含關系,應注意嚴格條件的規則編號需要排序靠前,寬松條件的規則編號需要排序靠后,避免報文因命中寬松條件的規則而停止往下繼續匹配,從而使其無法命中嚴格條件的規則。

  2. 根據各業務模塊ACL默認動作的不同,ACL的配置原則也不同。例如,在默認動作為permit的業務模塊中,如果只希望deny部分IP地址的報文,只需配置具體IP地址的deny規則,結尾無需添加任意IP地址的permit規則;而默認動作為deny的業務模塊恰與其相反。詳細的ACL常用配置原則,如表所示。

說明:?

以下rule的表達方式僅是示意形式,實際配置方法請參考各類ACL規則的命令行格式。

  • rule permit xxx/rule permit xxxx:表示允許指定的報文通過,xxx/xxxx表示指定報文的標識,可以是源IP地址、源MAC地址、生效時間段等。xxxx表示的范圍與xxx表示的范圍是包含關系,例如xxx是某一個IP地址,xxxx可以是該IP地址所在的網段地址或any(表示任意IP地址);再如xxx是周六的某一個時段,xxxx可以是雙休日全天時間或一周七天全部時間。

  • rule deny xxx/rule deny xxxx:表示拒絕指定的報文通過。

  • rule permit:表示允許所有報文通過。

  • rule deny:表示拒絕所有報文通過。

以下rule的表達方式僅是示意形式,實際配置方法請參考各類ACL規則的命令行格式。

  • rule permit xxx/rule permit xxxx:表示允許指定的報文通過,xxx/xxxx表示指定報文的標識,可以是源IP地址、源MAC地址、生效時間段等。xxxx表示的范圍與xxx表示的范圍是包含關系,例如xxx是某一個IP地址,xxxx可以是該IP地址所在的網段地址或any(表示任意IP地址);再如xxx是周六的某一個時段,xxxx可以是雙休日全天時間或一周七天全部時間。

  • rule deny xxx/rule deny xxxx:表示拒絕指定的報文通過。

  • rule permit:表示允許所有報文通過。

  • rule deny:表示拒絕所有報文通過。

表?ACL的常用配置原則:

業務模塊的ACL默認動作

permit所有報文

deny所有報文

permit少部分報文,deny大部分報文

deny少部分報文,permit大部分報文

permit

無需應用ACL

配置rule deny

需先配置rule permit xxx,再配置rule deny xxxxrule deny

說明:

以上原則適用于報文過濾的情形。當ACL應用于流策略中進行流量監管或者流量統計時,如果僅希望對指定的報文進行限速或統計,則只需配置rule permit xxx

只需配置rule deny xxx,無需再配置rule permit xxxxrule permit

說明:

如果配置rule permit并在流策略中應用ACL,且該流策略的流行為behavior配置為deny,則設備會拒絕所有報文通過,導致全部業務中斷。

deny

  • 路由和組播模塊:需配置rule permit
  • 其他模塊:無需應用ACL
  • 路由和組播模塊:無需應用ACL
  • 其他模塊:需配置rule deny

只需配置rule permit xxx,無需再配置rule deny xxxxrule deny

需先配置rule deny xxx,再配置rule permit xxxxrule permit

舉例:

  • 例1:在流策略中應用ACL,使設備對192.168.1.0/24網段的報文進行過濾,拒絕192.168.1.2和192.168.1.3主機地址的報文通過,允許192.168.1.0/24網段的其他地址的報文通過。

    流策略的ACL默認動作為permit,該例屬于“deny少部分報文,permit大部分報文”的情況,所以只需配置rule deny xxx

    #
    acl number 2000
    rule 5 deny source 192.168.1.2 0
    rule 10 deny source 192.168.1.3 0
    #
  • 例2:在流策略中應用ACL,使設備對192.168.1.0/24網段的報文進行過濾,允許192.168.1.2和192.168.1.3主機地址的報文通過,拒絕192.168.1.0/24網段的其他地址的報文通過。

    流策略的ACL默認動作為permit,該例屬于“permit少部分報文,deny大部分報文”的情況,所以需先配置rule permit xxx,再配置rule deny xxxx

    #
    acl number 2000
    rule 5 permit source 192.168.1.2 0
    rule 10 permit source 192.168.1.3 0
    rule 15 deny source 192.168.1.0 0.0.0.255
    #
  • 例3:在Telnet中應用ACL,僅允許管理員主機(IP地址為172.16.105.2)能夠Telnet登錄設備,其他用戶不允許Telnet登錄。

    Telnet的ACL默認動作為deny,該例屬于“permit少部分報文,deny大部分報文”的情況,所以只需配置rule permit xxx

    #
    acl number 2000
    rule 5 permit source 172.16.105.2 0
    # ???
  • 例4:在Telnet中應用ACL,不允許某兩臺主機(IP地址為172.16.105.3和172.16.105.4)Telnet登錄設備,其他用戶均允許Telnet登錄。

    Telnet的ACL默認動作為deny,該例屬于“deny少部分報文,permit大部分報文”的情況,所以需先配置rule deny xxx,再配置rule permit

    #
    acl number 2000
    rule 5 deny source 172.16.105.3 0
    rule 10 deny source 172.16.105.4 0
    rule 15 permit
    # ???
  • 例5:在FTP中應用ACL,不允許用戶在周六的00:00~8:00期間訪問FTP服務器,允許用戶在其他任意時間訪問FTP服務器。

    FTP的ACL默認動作為deny,該例屬于“deny少部分報文,permit大部分報文”的情況,所以需先配置rule deny xxx,再配置rule permit xxxx

    #
    time-range t1 00:00 to 08:00 Sat
    time-range t2 00:00 to 23:59 daily
    #
    acl number 2000
    rule 5 deny time-range t1
    rule 10 permit time-range t2
    #

6、ACL常用的匹配項?

設備支持的ACL匹配項種類非常豐富,其中最常用的匹配項包括以下幾種。

生效時間段

格式:time-range?time-name

所有ACL均支持根據生效時間段過濾報文。關于生效時間段的詳細介紹,請參見ACL的生效時間段

IP承載的協議類型

格式:protocol-number?|?icmp?|?tcp?|?udp?|?gre?|?igmp?|?ip?|?ipinip?|?ospf

高級ACL支持基于協議類型過濾報文。常用的協議類型包括:ICMP(協議號1)、TCP(協議號6)、UDP(協議號17)、GRE(協議號47)、IGMP(協議號2)、IP(指任何IP層協議)、IPinIP(協議號4)、OSPF(協議號89)。協議號的取值可以是1~255。

例如,當設備某個接口下的用戶存在大量的攻擊者時,如果希望能夠禁止這個接口下的所有用戶接入網絡,則可以通過指定協議類型為IP來屏蔽這些用戶的IP流量來達到目的。配置如下:

rule deny ip //表示拒絕IP報文通過

再如,設備上打開透明防火墻功能后,在缺省情況下,透明防火墻會在域間丟棄所有入域間的報文,包括業務報文和協議報文。如果希望像OSPF這樣的動態路由協議報文能正常通過防火墻,保證路由互通,這時,通過指定協議類型為OSPF即可解決問題。

rule permit ospf? //表示允許OSPF報文通過

源/目的IP地址及其通配符掩碼

源IP地址及其通配符掩碼格式:source?{?source-address source-wildcard?|?any?}

目的IP地址及其通配符掩碼格式:

destination?{?destination-address destination-wildcard?|?any?}

基本ACL支持根據源IP地址過濾報文,高級ACL不僅支持源IP地址,還支持根據目的IP地址過濾報文。

將源/目的IP地址定義為規則匹配項時,需要在源/目的IP地址字段后面同時指定通配符掩碼,用來與源/目的IP地址字段共同確定一個地址范圍。

IP地址通配符掩碼與IP地址的反向子網掩碼類似,也是一個32比特位的數字字符串,用于指示IP地址中的哪些位將被檢查。各比特位中,“0”表示“檢查相應的位”,“1”表示“不檢查相應的位”,概括為一句話就是“檢查0,忽略1”。但與IP地址子網掩碼不同的是,子網掩碼中的“0”和“1”要求必須連續,而通配符掩碼中的“0”和“1”可以不連續。

通配符掩碼可以為0,相當于0.0.0.0,表示源/目的地址為主機地址;也可以為255.255.255.255,表示任意IP地址,相當于指定any參數。

舉一個IP地址通配符掩碼的示例,當希望來自192.168.1.0/24網段的所有IP報文都能夠通過,可以配置如下規則:

rule 5 permit ip source 192.168.1.0 0.0.0.255

規則中的通配符掩碼為0.0.0.255,表示只需檢查IP地址的前三組二進制八位數對應的比特位。因此,如果報文源IP地址的前24個比特位與參照地址的前24個比特位(192.168.1)相同,即報文的源IP地址是192.168.1.0/24網段的地址,則允許該報文通過。下表 展示了該例的地址范圍計算過程。

表 通配符掩碼示例:

項目

十進制等價值

二進制等價值

參照地址

192.168.1.0

11000000.10101000.00000001.00000000

通配符掩碼

0.0.0.255

00000000.00000000.00000000.11111111

確定的地址范圍

192.168.1.*

*表示0~255之間的整數

11000000.10101000.00000001.xxxxxxxx

x既可以是0,也可以是1

更多的IP地址與通配符掩碼共同確定的地址范圍示例,詳見下表。

表 IP地址與通配符掩碼共同確定的地址范圍:

IP地址

IP地址通配符掩碼

確定的地址范圍

0.0.0.0

255.255.255.255

任意IP地址

172.18.0.0

0.0.255.255

172.18.0.0/16網段的IP地址

172.18.5.2

0.0.0.0

僅172.18.5.2這一個主機地址

172.18.8.0

0.0.0.7

172.18.8.0/29網段的IP地址

172.18.8.8

0.0.0.7

172.18.8.8/29網段的IP地址

10.1.2.0

0.0.254.255(通配符掩碼中的1和0不連續)

10.1.0.0/24~10.1.254.0/24網段之間且第三個字節為偶數的IP地址,如10.1.0.0/24、10.1.2.0/24、10.1.4.0/24、10.1.6.0/24等。

源/目的MAC地址及其通配符掩碼

源MAC地址及其通配符掩碼格式:source-mac?source-mac-address?[?source-mac-mask?]

目的地址及其通配符掩碼格式:destination-mac?dest-mac-address?[?dest-mac-mask?]

僅二層ACL支持基于源/目的MAC地址過濾報文。

將源/目的MAC地址定義為規則匹配項時,可以在源/目的MAC地址字段后面同時指定通配符掩碼,用來與源/目的MAC地址字段共同確定一個地址范圍。

MAC地址通配符掩碼的格式與MAC地址相同,采用十六進制數表示,共六個字節(48位),用于指示MAC地址中的哪些位將被檢查。與IP地址通配符掩碼不同的是,MAC地址通配符掩碼各比特位中,1表示“檢查相應的位”,0表示“不檢查相應的位”。如果不指定通配符掩碼,則默認掩碼為ffff-ffff-ffff,表示檢查MAC地址的每一位。

MAC地址與通配符掩碼共同確定的地址范圍示例,如表所示。

表?MAC地址與通配符掩碼共同確定的地址范圍:

MAC地址

MAC地址通配符掩碼

確定的地址范圍

00e0-fc01-0101

0000-0000-0000

任意MAC地址

00e0-fc01-0101

ffff-ffff-ffff

僅00e0-fc01-0101這一個MAC地址

00e0-fc01-0101

ffff-ffff-0000

00e0-fc01-0000~00e0-fc01-ffff

VLAN編號及其掩碼

外層VLAN及其掩碼格式:vlan-id?vlan-id?[?vlan-id-mask?]

內層VLAN及其掩碼格式:cvlan-id?cvlan-id?[?cvlan-id-mask?]

二層ACL支持基于外層VLAN或內層VLAN編號過濾報文。

將VLAN編號定義為規則匹配項時,可以在VLAN編號字段后面同時指定VLAN掩碼,用來與VLAN編號字段共同確定一個VLAN范圍。

VLAN掩碼的格式是十六進制形式,取值范圍是0x0~0xFFF。如果不指定VLAN掩碼,則默認掩碼為0xFFF,表示檢查VLAN編號的每一位。

VLAN編號與掩碼共同確定的VLAN范圍示例,如表所示。

表 VLAN編號及其掩碼共同確定的VLAN范圍:

VLAN編號

VLAN掩碼

確定的VLAN范圍

10

0x000

任意VLAN

10

0xFFF

僅VLAN 10

10

0xFF0

VLAN 1~VLAN 10

TCP/UDP端口號

源端口號格式:source-port?{?eq?port?|?gt?port?|?lt?port?|?range?port-start?port-end?}

目的端口號格式:destination-port?{?eq?port?|?gt?port?|?lt?port?|?range?port-start?port-end?}

在高級ACL中,當協議類型指定為TCP或UDP時,設備支持基于TCP/UDP的源/目的端口號過濾報文。

其中,TCP/UDP端口號的比較符含義如下:

  • eq?port:指定等于源/目的端口。

  • gt?port:指定大于源/目的端口。

  • lt?port:指定小于源/目的端口。

  • range?port-start?port-end:指定源/目的端口的范圍。port-start是端口范圍的起始,port-end是端口范圍的結束。

TCP/UDP端口號可以使用數字表示,也可以用字符串(助記符)表示。例如,rule deny tcp destination-port eq 80,可以用rule deny tcp destination-port eq www替代。

常見TCP和UDP端口號及其對應的服務名稱如下表所示。

常見TCP和UDP端口號及其對應的服務名稱如下表所示。

表?常見TCP端口號及對應的字符串:

端口號

字符串

協議

說明

7

echo

Echo

Echo服務

9

discard

Discard

用于連接測試的空服務

13

daytime

Daytime

給請求主機發送日期和時間

19

CHARgen

Character generator

字符生成服務;發送無止境的字符流

20

ftp-data

FTP data connections

FTP數據端口

21

ftp

File Transfer Protocol(FTP)

文件傳輸協議(FTP)端口

23

telnet

Telnet

Telnet服務

25

smtp

Simple Mail Transport Protocol (SMTP)

簡單郵件傳輸協議

37

time

Time

時間協議

43

whois

Nickname(WHOIS)

目錄服務

49

tacacs

TAC Access Control System (TACACS)

用于基于TCP/IP驗證和訪問的訪問控制系統(TACACS登錄主機協議)

53

domain

Domain Name Service (DNS)

域名服務

70

gopher

Gopher

信息檢索協議(互聯網文檔搜尋和檢索)

79

finger

Finger

用于用戶聯系信息的Finger服務,查詢遠程主機在線用戶等信息

80

www

World Wide Web (HTTP)

用于萬維網(WWW)服務的超文本傳輸協議(HTTP),用于網頁瀏覽

101

hostname

NIC hostname server

NIC機器上的主機名服務

109

pop2

Post Office Protocol v2

郵件協議-版本2

110

pop3

Post Office Protocol v3

郵件協議-版本3

111

sunrpc

Sun Remote Procedure Call (RPC)

SUN公司的遠程過程調用(RPC)協議,用于遠程命令執行,被網絡文件系統(NFS)使用

119

nntp

Network News Transport Protocol (NNTP)

網絡新聞傳輸協議,承載USENET通信

179

bgp

Border Gateway Protocol (BGP)

邊界網關協議

194

irc

Internet Relay Chat (IRC)

互聯網中繼聊天(多線交談協議)

512

exec

Exec (rsh)

用于對遠程執行的進程進行驗證

513

login

Login (rlogin)

遠程登錄

514

cmd

Remote commands

遠程命令,不必登錄的遠程shell(rshell)和遠程復制(rcp)

515

lpd

Printer service

打印機(lpr)假脫機

517

talk

Talk

遠程對話服務和客戶

540

uucp

Unix-to-Unix Copy Program

Unix到Unix復制服務

543

klogin

Kerberos login

Kerberos版本5(v5)遠程登錄

544

kshell

Kerberos shell

Kerberos版本5(v5)遠程shell

表 常見UDP端口號及對應的字符串:

端口號

字符串

協議

說明

7

echo

Echo

Echo服務

9

discard

Discard

用于連接測試的空服務

37

time

Time

時間協議

42

nameserver

Host Name Server

主機名服務

53

dns

Domain Name Service (DNS)

域名服務

65

tacacs-ds

TACACS-Database Service

TACACS數據庫服務

67

bootps

Bootstrap Protocol Server

引導程序協議(BOOTP)服務端,DHCP服務使用

68

bootpc

Bootstrap Protocol Client

引導程序協議(BOOTP)客戶端,DHCP客戶使用

69

tftp

Trivial File Transfer Protocol (TFTP)

小文件傳輸協議

90

dnsix

DNSIX Security Attribute Token Map

DNSIX安全屬性標記圖

111

sunrpc

SUN Remote Procedure Call (SUN RPC)

SUN公司的遠程過程調用(RPC)協議,用于遠程命令執行,被網絡文件系統(NFS)使用

123

ntp

Network Time Protocol (NTP)

網絡時間協議,蠕蟲病毒會利用

137

netbios-ns

NETBIOS Name Service

NETBIOS名稱服務

138

netbios-dgm

NETBIOS Datagram Service

NETBIOS數據報服務

139

netbios-ssn

NETBIOS Session Service

NETBIOS會話服務

161

snmp

SNMP

簡單網絡管理協議

162

snmptrap

SNMPTRAP

SNMP陷阱

177

xdmcp

X Display Manager Control Protocol (XDMCP)

X顯示管理器控制協議

434

mobilip-ag

MobileIP-Agent

移動IP代理

435

mobilip-mn

MobileIP-MN

移動IP管理

512

biff

Mail notify

異步郵件,可用來通知用戶有郵件到達

513

who

Who

登錄的用戶列表

514

syslog

Syslog

UNIX系統日志服務

517

talk

Talk

遠程對話服務器和客戶端

520

rip

Routing Information Protocol

RIP路由協議

TCP標志信息

格式:tcp-flag?{?ack?|?established?|?fin?|?psh?|?rst?|?syn?|?urg?}*

在高級ACL中,當協議類型指定為TCP時,設備支持基于TCP標志信息過濾報文。

TCP報文頭有6個標志位:

  • URG(100000):標識緊急指針有效

  • ACK(010000):標識確認序號有效

  • PSH(001000):標識接收方應該盡快將這個報文段上交給應用層

  • RST(000100):標識重建連接

  • SYN(000010):同步序號,用來發起一個連接

  • FIN(000001):標識發送方完成發送任務

TCP標志信息中的established,表示標志位為ACK(010000)或RST(000100)。

指定tcp-flag的ACL規則可以用來實現單向訪問控制。假設,要求192.168.1.0/24網段用戶可以主動訪問192.168.2.0/24網段用戶,但反過來192.168.2.0/24網段用戶不能主動訪問192.168.1.0/24。可通過在設備上連接192.168.2.0/24網段的接口入方向上,應用ACL規則來實現該需求。

由TCP建立連接和關閉連接的過程可知,只有在TCP中間連接過程的報文才會ACK=1或者RST=1。根據這個特點,配置如下兩種ACL規則,允許TCP中間連接過程的報文通過,拒絕該網段的其他TCP報文通過,就可以限制192.168.2.0/24網段主動發起的TCP連接。

  • 類型一:配置指定ackrst參數的ACL規則

    rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack? //允許ACK=1的TCP報文通過???????
    rule 10 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst?? //允許RST=1的TCP報文通過
    rule 15 deny tcp source 192.168.2.0 0.0.0.255? //拒絕該網段的其他TCP報文通過 ????
  • 類型二:配置指定established參數的ACL規則

    rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag established? // established表示ACK=1或者RST=1,表示允許TCP中間連接過程的報文通過
    rule deny tcp source 192.168.2.0 0.0.0.255???? //拒絕該網段的其他TCP報文通過 ???

IP分片信息

格式:none-first-fragment

基本ACL和高級ACL支持基于IP分片信息過濾報文。

IP分片除了首片報文外,還有后續分片報文,又叫做非首片分片報文。僅首片分片報文攜帶四層信息(如TCP/UDP端口號等),后續分片報文均不攜帶。網絡設備收到分片報文后,會判斷其是否是最后一個分片報文。如果不是,則為其分配內存空間,以便于最后一個分片報文到達后完成重組。黑客可以利用這一點,向接收方設備發起分片報文攻擊,始終不向接收方發送最后一個分片報文,使得接收方的內存得不到及時釋放(接收方會啟動一個分片重組的定時器,在定時器超時前如果無法完成重組,將向發送方發送ICMP重組超時差錯報文;如果定時器超時后仍未完成重組,則丟棄已存儲的分片報文)。在分片報文發送數量很多并且發送速度很快的情況下,接收方的內存很容易被占滿,從而導致接收方沒有足夠的內存資源處理其他正常的業務。

為了解決這個問題,可以配置指定none-first-fragment匹配項的ACL規則來阻塞非首片分片報文,從而達到防范分片報文攻擊的目的。

針對非分片報文、首片分片報文、非首片分片報文這三類報文,ACL的處理方式如表所示。

表?ACL對IP分片報文的處理方式:

規則包含的匹配項

非分片報文

首片分片報文

非首片分片報文

三層信息(如源/目的IP地址)

三層信息匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

三層信息匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

三層信息匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

三層信息 + 四層信息(如TCP/UDP端口號)

三層和四層信息都匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

三層和四層信息都匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

不匹配,轉下一條規則進行匹配

三層信息 +?none-first-fragment

不匹配,轉下一條規則進行匹配

不匹配,轉下一條規則進行匹配

三層信息匹配上,則返回匹配結果(permit/deny);未匹配上,則轉下一條規則進行匹配

例如,ACL 3012中存在以下規則:

#                                    
acl number 3012                                                                  rule 5 deny tcp destination 192.168.2.2 0 none-first-fragment                   rule 10 permit tcp destination 192.168.2.2 0 destination-port eq www            rule 15 deny ip                                                                 
#  
  • 該報文是非分片報文或首片分片報文時:如果該報文的目的端口號是80(www對應的端口號是80),則報文與rule 10匹配,報文被允許通過;如果該報文的目的端口號不是80,則報文與rule 15匹配,報文被拒絕通過。

  • 該報文是非首片分片報文時:該報文與rule 5匹配,報文被拒絕通過。

7、ACL的生效時間段

產生背景

ACL定義了豐富的匹配項,可以滿足大部分的報文過濾需求。但需求是不斷變化發展的,新的需求總是不斷涌現。例如,某公司要求,在上班時間只允許員工瀏覽與工作相關的幾個網站,下班或周末時間才可以訪問其他互聯網網站;再如,在每天20:00~22:00的網絡流量的高峰期,為防止P2P、下載類業務占用大量帶寬對其他數據業務的正常使用造成影響,需要對P2P、下載類業務的帶寬進行限制。

基于時間的ACL過濾就是用來解決上述問題的。管理員可以根據網絡訪問行為的要求和網絡的擁塞情況,配置一個或多個ACL生效時間段,然后在ACL規則中引用該時間段,從而實現在不同的時間段設置不同的策略,達到網絡優化的目的。

生效時間段模式

在ACL規則中引用的生效時間段存在兩種模式:

  • 第一種模式——周期時間段:以星期為參數來定義時間范圍,表示規則以一周為周期(如每周一的8至12點)循環生效。

    格式:time-range?time-name?start-time?to?end-time?{?days?} &<1-7>

    • time-name:時間段名稱,以英文字母開頭的字符串。
    • start-time?to?end-time:開始時間和結束時間。格式為[小時:分鐘] to [小時:分鐘]。
    • days:有多種表達方式。
      • MonTueWedThuFriSatSun中的一個或者幾個的組合,也可以用數字表達,0表示星期日,1表示星期一,……6表示星期六。

      • working-day:從星期一到星期五,五天。

      • daily:包括一周七天。

      • off-day:包括星期六和星期日,兩天。

  • 第二種模式——絕對時間段:從某年某月某日的某一時間開始,到某年某月某日的某一時間結束,表示規則在這段時間范圍內生效。

    格式:time-range?time-name?from?time1?date1?[?to?time2?date2?]

    • time-name:時間段名稱,以英文字母開頭的字符串。
    • time1/time2:格式為[小時:分鐘]。
    • date1/date2:格式為[YYYY/MM/DD],表示年/月/日。

可以使用同一名稱(time-name)配置內容不同的多條時間段,配置的各周期時間段之間以及各絕對時間段之間的交集將成為最終生效的時間范圍。

例如,在ACL 2001中引用了時間段“test”,“test”包含了三個生效時間段:

#   
time-range test 8:00 to 18:00 working-day  
time-range test 14:00 to 18:00 off-day  
time-range test from 00:00 2014/01/01 to 23:59 2014/12/31  
#   
acl number 2001                                                                  rule 5 permit time-range test 
  • 第一個時間段,表示在周一到周五每天8:00到18:00生效,這是一個周期時間段。
  • 第二個時間段,表示在周六、周日下午14:00到18:00生效,這是一個周期時間段。
  • 第三個時間段,表示從2014年1月1日00:00起到2014年12月31日23:59生效,這是一個絕對時間段。

時間段“test”最終描述的時間范圍為:2014年的周一到周五每天8:00到18:00以及周六和周日下午14:00到18:00。

二、ACL配置

1.1示例拓撲圖

配置要求:vlan2和vlan3在交換機內隔離,僅允許192.168.0.2訪問server網段10.10.1.1

1.2交換機配置?

1、交換機創建vlan 2 3 ,配置vlanif,給接口設置vlan

sys
vlan batch 2 to 3
int vlanif 2
ip address 192.168.0.1 255.255.255.0
int vlanif 3
ip address 192.168.1.1 255.255.255 0int g0/0/1
port link-type access
port default vlan 2    #僅允許vlan2 兩個vlan不互通int g0/0/2
port link-type access
port default vlan 3    #僅允許vlan3

2、交換機trunk模式連接路由器

int g0/0/24
port link-type trunk
quit
int g0/0/24
port trunk allow-pass vlan 2 3

1.3路由器配置

1、路由器配置ACL基本配置2000,給網段192.168.0.0/24設置permit,給192.168.1.0/24設置deny

acl 2000
rule 5 permit source 192.168.0.0 0.0.0.255   #規則5 放行192.168.0.0/24
rule 10 deny source 192.168.1.0 0.0.0.255   #規則10 拒絕192.168.1.0/24
rule 30 permit source 10.10.1.0 0.0.0.255   #規則30 放行10.10.1.0/24
dis this#
acl number 2000
rule 5 permit source 192.168.0.0 0.0.0.255   
rule 10 deny source 192.168.1.0 0.0.0.255   
rule 30 permit source 10.10.1.0 0.0.0.255 
#return

?2、配置g0/0/0的子接口連接路由器,配置g0/0/1acl

#配置子接口
int g0/0/0.2   #配置子接口1 劃分 vlan 2
dot1q termination vid 2
ip address 192.168.0.1 255.255.255.0
int g0/0/0.3   #配置子接口2 劃分 vlan 3
dot1q termination vid 3
ip address 192.168.1.1 255.255.255.0#配置g0/0/1的acl
int g0/0/1
traffic-filter inbound ac 2000
ip address 10.10.1.1 255.255.255.0
dis this

1.4結果驗證

路由器ACL表中有10.10.1.0有流量通過,并且只有192.168.0.2主機可以訪問目標網段(注:此時10.10.1.2主機無法直接ping,概率是環境原因)

?三、總結

ACL(訪問控制列表)是網絡安全的重要組成部分,用于控制數據包的流入流出。以下是其配置核心點的總結:

  1. 分類:標準 ACL(基于源 IP 過濾,編號 1-99)和擴展 ACL(基于源 / 目的 IP、端口、協議過濾,編號 100-199)。

  2. 配置步驟

    • 創建 ACL:acl number [id] [match-order config|auto]
    • 添加規則:rule [permit|deny] [source/destination/port/protocol]
    • 應用到接口:traffic-filter [inbound|outbound] acl [id]
  3. 規則順序:按配置順序匹配,默認隱含deny any結尾,需注意規則優先級。

  4. 注意事項:避免冗余規則,謹慎使用permit any,定期審計優化。

  5. 驗證命令display acl [id]查看規則,display traffic-filter applied-record檢查應用情況。

合理配置 ACL 可有效保護網絡資源,需結合網絡拓撲和安全需求制定策略。


---------------E-----------N-------------D---------------?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/pingmian/87738.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87738.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87738.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TensorFlow 安裝使用教程

一、TensorFlow 簡介 TensorFlow 是由 Google 開發的開源深度學習框架&#xff0c;支持數據流圖計算&#xff0c;可運行于 CPU/GPU/TPU。它被廣泛應用于語音識別、圖像處理、自然語言處理等多個 AI 領域。 二、安裝 TensorFlow 2.1 pip 安裝&#xff08;默認 CPU 版本&#x…

騰訊云認證考試報名 - TDSQL數據庫交付運維專家(TCCE MySQL版)

數據庫交付運維專家- 騰訊云TDSQL(MySQL版) 適合人群&#xff1a; 適合TDSQL(MySQL版)各組件擴縮容、運維、性能優化、故障解決、壓力測試等數據庫開發、運維、管理人員。 認證考試&#xff1a; 單選*40道多選*20道上機*20道 考試時長&#xff1a; 理論考試120分鐘,上機考試…

webUI平替應用,安裝簡單,功能齊全

前言 在安裝本地大模型后&#xff0c;我們都會為大模型安裝一個用戶界面&#xff0c;這樣就可以實現語音輸入&#xff0c;對話保存&#xff0c;微調&#xff0c;構建本地知識庫等高階功能。 目前最火的本地大模型UI&#xff0c;就是gihub上的webUI&#xff0c;但他不僅依賴較…

【Maven】Maven核心機制的 萬字 深度解析

Maven核心機制的萬字深度解析一、依賴管理機制全解&#xff08;工業級依賴治理方案&#xff09;1. 坐標體系的本質與設計哲學2. 依賴傳遞與仲裁算法的工程實現**沖突仲裁核心算法**企業級仲裁策略3. Scope作用域的類加載隔離原理4. 多級倉庫體系架構設計二、構建生命周期底層原…

暑期前端訓練day4

今天主要是有關周賽的&#xff0c;比賽的時候是用c寫的并且是 ak了&#xff0c;但是就是想用js再復盤一下&#xff0c;也不能只是圖一時之爽&#xff0c;如果是換在實際的場景里面我是不是只會用 c快速寫出來。 最近也要從js逐漸轉向ts&#xff0c;感覺Ts才是主旋律&#xff0c…

轉Go學習筆記(2)進階

前置&#xff1a;轉Go學習筆記1語法入門 目錄Golang進階groutine協程并發概念梳理創建goroutine語法channel實現goroutine之間通信channel與range、selectGoModulesGo Modules與GOPATHGo Modules模式用Go Modules初始化項目修改模塊的版本依賴關系Go Modules 版本號規范vendor …

無人機3控接力模式技術分析

一、運行方式 1. 接力控制流程 位置觸發切換&#xff1a;飛控中心實時監測無人機位置&#xff0c;當進入預設的切換路線&#xff08;如靠近下一個機庫或控制器覆蓋范圍&#xff09;時&#xff0c;觸發切換流程。 控制權請求與驗證&#xff1a; 當前控制器&#xff08…

Actor Critic對比PGValue-Based

目錄 回顧一下policy gradient&#xff1a; QAC算法&#xff1a; A2C- advantage actor critic 問題&#xff1a; 1. 為什么要結合起來&#xff0c;能解決什么問題&#xff1f; 1. 策略梯度 (PG) 的優勢與核心問題 2. 基于價值方法 (Value-Based) 的優勢與局限性 3. 潛…

buuctf-re

1.findKey 打開是C而且有點亂,所以找關鍵步驟有一個加密進去是不能反編譯的,有花指令, 這里有重復的部分把下面的NOP掉,重新定義函數’p’ 之后分析邏輯, // positive sp value has been detected, the output may be wrong! int __userpurge sub_40191F<eax>(int a1&l…

RuoYi、Vue CLI 和 uni-app 結合構建跨端全家桶方案

將 RuoYi、Vue CLI 和 uni-app 結合構建跨端全家桶方案&#xff0c;可以實現一套代碼管理后臺系統&#xff08;PC&#xff09;和移動端應用&#xff08;H5/小程序/App&#xff09;。以下是整合思路和關鍵步驟&#xff1a; 技術棧分工 RuoYi&#xff1a;后端框架&#xff08;Spr…

二十九、windows系統安全---windows注冊表安全配置

環境 windows server 2012 原理 注冊表簡介: 注冊表&#xff08;Registry&#xff0c;繁體中文版Windows操作系統稱之為登錄檔&#xff09;是Microsoft Windows中的一個重要的數據庫&#xff0c;用于存儲系統和應用程序的設置信息。早在Windows 3.0推出OLE技術的時候&#…

Android 一幀繪制流程

Android 一幀繪制流程揭秘&#xff1a;主線程與 RenderThread 的雙人舞 核心目標&#xff1a;60幀/秒的絲滑體驗&#xff0c;意味著每幀必須在16.67ms內完成所有工作&#xff01; 想象一下屏幕刷新就像放映電影&#xff0c;一幀接一幀。Android系統為了播放這“電影”&#xff…

智能網盤檢測軟件,一鍵識別失效鏈接

軟件介紹 今天為大家推薦一款由吾愛論壇大神開發的網盤鏈接檢測工具&#xff0c;專為網絡資源愛好者設計&#xff0c;可快速批量檢測分享鏈接的有效性。 核心功能 這款工具能夠智能識別各類網盤分享鏈接的有效狀態&#xff0c;用戶只需批量粘貼鏈接&#xff0c;軟件便會自…

408第三季part2 - 計算機網絡 - 應用層

理解 客戶機不能直接通信&#xff0c;要通過服務器才行 P2P可以 先記個名字 看圖記查詢流程 然后迭代就是 主機到本地 本地先查根&#xff0c;然后返回&#xff0c;再查頂級&#xff0c;然后返回&#xff0c;再查權限 然后注意這里主機到本地都是遞歸查詢&#xff0c;其他的…

Modern C++(七)類

7、類 7.1、類聲明 前置聲明&#xff1a;聲明一個將稍后在此作用域定義的類類型。直到定義出現前&#xff0c;此類名具有不完整類型。當代碼僅僅需要用到類的指針或引用時&#xff0c;就可以采用前置聲明&#xff0c;無需包含完整的類定義。 前置聲明有以下幾個作用&#xf…

4-6WPS JS宏自定義函數變長參數函數(實例:自定義多功能數據統計函數)學習筆記

一、自定義函數:自定義多功能數據統計函數。示例1&#xff1a;function jia1(x,...arr){//自定義變長函數&#xff0c;X第一參數&#xff0c;...arr為變長參數可放入無數個參數&#xff0c;就像是數組return xWorksheetFunction.Sum(arr)//返回&#xff0c;X第一參數WorksheetF…

HDMI延長器 vs 分配器 vs KVM切換器 vs 矩陣:技術區別與應用場景

在音視頻和計算機信號傳輸領域&#xff0c;延長器、分配器、切換器和矩陣是四種常見設備&#xff0c;它們的功能和應用場景有顯著區別。以下是它們的核心差異對比&#xff1a; 1. 延長器&#xff08;Extender&#xff09; 功能&#xff1a; ? 將信號&#xff08;如HDMI、Displ…

從0到1解鎖Element-Plus組件二次封裝El-Dialog動態調用

技術難題初登場 家人們&#xff0c;最近在開發一個超復雜的后臺管理系統項目&#xff0c;里面有各種數據展示、表單提交、權限控制等功能&#xff0c;在這個過程中&#xff0c;我頻繁地使用到了element-plus組件庫中的el-dialog組件 。它就像一個小彈窗&#xff0c;可以用來顯示…

數據結構實驗習題

codeblock F2是出控制臺 1.1 /* by 1705 WYY */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 #define YES 1 #define NO 0 #define OK 1 #define ERROR 0 #define SUCCESS 1 #define UNSUCCESS 0 #define OVERFLOW -2 #define UNDERF…

PyTorch 2.7深度技術解析:新一代深度學習框架的革命性演進

引言:站在AI基礎設施變革的歷史節點 在2025年這個充滿變革的年份,PyTorch團隊于4月23日正式發布了2.7.0版本,隨后在6月4日推出了2.7.1補丁版本,標志著這個深度學習領域最具影響力的框架再次迎來了重大突破。這不僅僅是一次常規的版本更新,而是一次面向未來計算架構和AI應…