1. 程式人生 > >路由器IP訪問控制列表的功能及其配置命令

路由器IP訪問控制列表的功能及其配置命令

》路由器IP訪問控制列表(Access Control List,ACL)

       通過路由器提供的訪問控制列表可以根據一些準則過濾不安全的資料包,如攻擊包、病毒包等,以保證網路的可靠性和安全性。ACL適合於所有網路層協議,如IP/IPX/AppleTalk等協議。ACL的定義也是基於每一種協議的,但實際網路應用中,特別是在Internet上,都使用TCP/IP協議,因此基於IP協議的ACL的應用即為普遍。

       》IP訪問控制列表的主要功能

            #過濾流入和流出路由器介面的資料包。

            #頻寬控制、控制對虛擬終端(VTY)的訪問(Telnet)

            #限定路由更新內容、重新分配路由、觸發按需撥號(Dial-on-Demand Routing,DDR)呼叫

            #限制診斷(debug)輸出和為質量保證服務(QoS)識別、分類流量等。

      》IP訪問控制列表的過濾準則

            ACL提供了基於源地址、目的地址、各種協議和埠號的過濾準則。

      》IP訪問控制列表的分類

         )標準訪問控制列表(IP StandardAccess Lists)

             只能檢查資料包的源地址,根據源網路、子網或主機的IP地址來決定對資料包的過濾,比如拒絕接收還是允許接收。例:當需要配置對虛擬在終端(VTY)的訪問控制權限,可以使用標準訪問控制列表,設定凡是來自網路管理員的IP地址可以允許通過vty line遠端登入到路由器,而來自所有其它地址的資料爆豆拒絕通過vty line 進入路由器。標準訪問控制列表的表號範圍是1~99,擴充套件的表號是1300~1999。

        )擴充套件訪問控制列表(IP ExtendedAccesss Lists)

            可以檢查胡舉報的源地址和目的地址,根據源網路或目的網路、子網、主機的IP地址決定資料包的過濾操作,還可以檢查指定的協議,根據資料包頭中的協議型別進行過濾,如IP協議、TCP協議、和UDP協議等。例:在發生利用ICMP協議攻擊網路的情況下,可以使用擴充套件訪問控制列表設定拒絕所有ICMP協議的資料包通過路由器。此外還可以檢查埠號,根據埠號對資料包進行過濾。例:為防止“衝擊波”蠕蟲病毒的傳播,可以使用設定拒絕TCP協議的4444埠的所有資料包通過路由器。由於擴充套件訪問列表具有更強的功能、更靈活的配置、更精確的控制和更好的擴充套件性等優點,因此應用廣泛。擴充套件訪問控制列表的表號範圍是100~199,擴充套件的表號是2000~2699。

》配置IP訪問控制列表

     ip訪問控制列表是一個連續的列表,至少有一個“permit”(允許)語句和一個或多個“deny”(拒絕)語句組成。IP訪問控制列表用名字(name)或表號(number)標識和引用,而配置IP訪問控制列表的首要任務就是使用access-list或ip access-list命令,定義一個訪問控制列表。access list命令要求只能使用表號標識列表,在建立控制列表的同一語句中,同時配置過濾規則;而ip access-list命令,既可以使用表號,也可以使用名字標識一個訪問控制列表。在訪問控制列表建立並配置號規則之後,列表並不能馬上生效,必須將控制列表應用於一個介面、一個VTY line或被其他命令引用之後,列表才能生效。特別要注意的是ACL語句的順序,ACL按照條件語句的順序從第一條開始執行,資料包只有在跟第一個判斷條件不匹配時,才能被交給ACL中的下一條件語句進行比較。

      》配置訪問控制列表的表號和名字

          表號用數字表示,名字用字串標識。不同協議、不同種類的ACL,其表號的範圍也是不同的。

表號範圍

訪問控制列表類別

說明

  1~99    1300~1999

IP標準訪問控制列表

基於IP標準訪問控制列表

100~1992000~2699

IP擴充套件訪問控制列表

基於IP擴充套件訪問控制列表

200~299

協議型別碼訪問控制列表

基於協議型別碼訪問控制列表

700~799

MAC地址訪問控制列表

基於48位MAC地址訪問控制列表

800~899

IPX標準訪問控制列表

基於IPX標準訪問控制列表

900~999

IPX擴充套件訪問控制列表

基於IPX擴充套件訪問控制列表

1000~1099

IPX SAP訪問控制列表

基於IPX 業務通告協議訪問控制列表

1100~1199

擴充套件MAC地址訪問控制列表

基於擴充套件48位MAC地址訪問控制列表

      》訪問控制列表的萬用字元

           在配置訪問控制列表的源地址或目的地址時,在允許或拒絕的IP地址後面,有一個引數是wildcard-mask-萬用字元(或通配掩符碼)的意思。萬用字元用32位二進位制數表示,表示形式與IP地址和子網掩碼相同。wildcard-mask實際上就是子網掩碼的反碼,它總是與IP地址成對的出現。萬用字元的作用是指出訪問控制列表過濾的IP地址範圍,也就是路由器在進行基於源地址和目的IP地址過濾時,萬用字元告訴路由器應檢查哪些地址位,忽略哪些地址位。萬用字元為“0”,表示檢查相應的地址位;為“1”表示忽略,不檢查相應的地址位。

      》配置IP訪問控制列表

          #在全域性配置模式下:

          命令格式:access-list access-list-number{permit|deny} source wildcard-mask

          示  例1:只允許源地址為211.105.130.0 255.255.255.0子網上的主機登入到路由器

                     Router(config) #access-list 10 permit 211.105.130.0 0.0.0.255

                     Router(config) #

         配置應用介面:

                    Router(config) #line vty 0 5

                    Router(config-line) #access-class 10 in

         檢視訪問控制列表的配置資訊:

         在特權使用者模式下:

                    Router #show configuration

                    !

                    access-list 10 permit 211.105.130.0 0.0.0.255

                    !

                    !

                    line vty 0 5

                    access-class 10 in

                    password 7 01090A1D0A52525C701E18

                    login

                    !

        檢視訪問控制列表:

        在特權使用者模式下:

        Router #sh access-lists

        Standard IP access list 10

        permit 211.105.130.0, wildcard bits 0.0.0.255(74 matches)

        示  例2:只允許源地址為182.105.130.111和222.112.7.56的兩臺主機登入路由器。

        在全域性配置模式下:

                     Router(config) #access-list 20 permit 182.105.130.111

                     Router(config) #access-list 20 permit 222.112.7.56

                     Router(config) #access-list 20 deny any              //any代表所有的主機

        配置應用介面:

                    Router(config) #line vty 0 5

                    Router(config-line) #access-class 20 in

       示  例3:禁止源地址為非法地址的資料包進入路由器或從路由器輸出。

       在全域性配置模式下:

                    Router(config) #access-list 30 deny 10.0.0.0 0.255.255.255 log

                    Router(config) #access-list 30 deny 192.168.0.0 0.0.255.255

                    Router(config) #access-list 30 deny 127.0.0.0 0.255.255.255

                    Router(config) #access-list 30 deny 172.16.0.0 0.15.255.255

                    Router(config) #access-list 30 permit any

       配置應用介面:

                   Router(config) #interface g0/1

                   Router(config-if) #ip access-group 30 in

     》配置擴充套件訪問控制列表

     )使用access-list命令

         在全域性配置模式下:

         命令格式:access-list access-list-number{permit|deny}protocol source wildcard-mask destination wildcard-mask[operator][operand]

         注:其中operator操作,有“lt”小於、“gt”大於、“eq”等於、“neq”不等於。operand運算元指的是埠號。

         示  例1:拒絕轉發所有IP地址進出的,埠號為1434的UDP協議資料包。

         在全域性配置模式下:

                   Router(config) #access-list 130 deny udp any any eq 1434

                   Router(config) #access-list 130 permit ip any any

                   Router(config) #

          配置應用介面:

                   Router(config) #interface g0/1

                   Router(config-if) #ip access-group 130 in

                   Router(config-if) #ip access-group 130 out

                   Router(config-if) #

         示  例2:封禁某一臺主機。

         在全域性配置模式下:        //log如果有這種情況發生就在控制檯報送一條資訊。

                   Router(config) #access-list 110 deny ip host 202.112.60.230 any log

                   Router(config) #access-list 110 deny ip any host 202.112.60.230 log

                   Router(config) #access-list 110 permit ip any any

        配置應用介面:

                  Router(config) #interface g0/1

                  Router(config-if) #ip access-group 110 in

                  Router(config-if) #ip access-group 110 out

                  Router(config-if) #

         示  例3:封禁ICMP協議,只允許162.105.141.0/24和202.38.97.0/24子網的ICMP資料包通過路由器。 

         在全域性配置模式下;

                  Router(config) #access-list 198 permit icmp 162.105.141.0 255.255.255.0 any

                  Router(config) #access-list 198 permit icmp 202.38.97.0 255.255.255.0 any

                  Router(config) #access-list 198 deny icmp any any

                  Router(config) #access-list 198 permit ip any any

                  Router(config) #

        配置應用介面:

                 Router(config) #interface g0/1

                 Router(config-if) #ip access-group 198 in

                 Router(config-if) #ip access-group 198 out

                 Router(config-if) #

    )使用ip access-list命令

        在全域性模式下:

        命令格式:ip access-list extended|standard access-list-number|name

        注:在擴充套件或標準訪問控制模式下(如:router(config-ext-nacl)#),配置過濾規則:

        命令格式:permit|deny protocol source wildcard-mask destination wildcard-mask[operator] [operand]

        示  例:拒絕轉發所有IP地址進與出方向的,埠號為1434的UDP協議資料包。

                 Router(config) #ip access-list extended 130   //進入擴充套件訪問控制列表配置模式

                 Router(config-ext-nacl) #

                 Router(config-ext-nacl) #deny udp any any eq 1434

                 Router(config-ext-nacl) #permit ip any any

                 Router(config-ext-nacl) #

        配置應用介面:

                 Router(config) #interface g0/1

                 Router(config-if) #ip access-group 130 in

                 Router(config-if) #ip access-group 130 out

                 Router(config-if) #

    )用名字標識訪問控制列表的配置方法

        在全域性配置模式下:

        命令格式:ip access-list extended|standard access-list-number|name

        注:在擴充套件或標準訪問控制模式下(如:router(config-ext-nacl)#),配置過濾規則:

        命令格式:permit|deny protocol source wildcard-mask destination wildcard-mask[operator] [operand]

        示  例1:禁止源地址為非法地址的資料包進入路由器或者從路由器輸出。

        在全域性配置模式下:

                Router(config) #ip access-list standard test

                Router(config-std-nacl) #deny 10.0.0.0 0.255.255.255 log

                Router(config-std-nacl) #deny 192.168.0.0 0.0.255.255

                Router(config-std-nacl) #deny 127.0.0.0 0.255.255.255

                Router(config-std-nacl) #deny 172.16.0.0 0.15.255.255

                Router(config-std-nacl) #permit any

        配置應用介面:

                Router(config) #interface g0/1

                Router(config-if) #ip access-group test in

                Router(config-if) #ip access-group test out

                Router(config-if) #

        示  例2:禁止埠號為1434的UTP資料包和埠號為4444的TCP資料包。

        在全域性配置模式下:

                Router(config) #ip access-list extended test

                Router(config-ext-nacl) #deny utp any any eq 1434

                Router(config-ext-nacl) #deny tcp any any eq 4444

                Router(config-ext-nacl) #permit ip any any

                Router(config-ext-nacl) #

       配置應用介面:

               Router(config) #interface g0/1

               Router(config-if) #ip access-group test in

               Router(config-if) #ip access-group test out

               Router(config-if) #