引言:本文討論利用IP擴(kuò)展訪問控制列表來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用服務(wù)訪問控制的配置,其過程采用Cisco設(shè)備來進(jìn)行演示。包括擴(kuò)展訪問控制列表的配置方法與配置命名的訪問控制列表。
本文討論利用IP擴(kuò)展訪問控制列表來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用服務(wù)訪問控制的配置方法(采用Cisco設(shè)備)。
在全局模式下建立擴(kuò)展訪問控制列表,配置如下:
Router(config)#access-list access-list-number{permit|deny}protocol source source-wildcard[operator port] destination destionation-wildcard[operator port]
以上中的“access-listnumber”對(duì)IP擴(kuò)展訪問控制列表范圍是100-199和2000-2699.不同類型訪問控制列表列表號(hào)如圖1所示。
而“permit”或者“deny”關(guān)鍵字可以指定哪些匹配訪問控制列表語句的報(bào)文是允許通過接口或被拒絕通過。該選項(xiàng)所提供的功能與標(biāo)準(zhǔn)IP訪問控制列表相同。
圖1 列表類型和對(duì)應(yīng)的列表號(hào)
圖2 RGNOS支持協(xié)議列表
“portocol”即協(xié)議表項(xiàng)定義了需要被檢查的協(xié)議,例如 IP、TCP、UDP、ICMP等。協(xié)議選項(xiàng)是很重要的,因?yàn)樵赥CP/IP協(xié)議簇中的各種協(xié)議之間有密切關(guān)系。如IP數(shù)據(jù)包可用于TCP、UDP協(xié)議及各種路由協(xié)議的傳輸,如果指定IP協(xié)議,訪問控制列表將只檢查IP數(shù)據(jù)包進(jìn)行匹配,而不再檢查IP數(shù)據(jù)包所承載的TCP、UDP等上層協(xié)議。如果根據(jù)特殊協(xié)議進(jìn)行報(bào)文過濾,就要指定該協(xié)議。此外,應(yīng)將更具體的表項(xiàng)放在訪問控制列表靠前的位置。例如,如果允許IP地址的語句放在拒絕TCP地址的語句前,則后一個(gè)語句將不起作用。但如果將這兩條語句換位置,則允許改地址上其他協(xié)議的同時(shí)拒絕了該地址的TCP協(xié)議。RGNOS支持過濾的協(xié)議如圖2所示。
“source sourcewildcard”指源地址和通配符掩碼,源地址是主機(jī)或一組主機(jī)的點(diǎn)用十進(jìn)制表示,必須與通配符掩碼配合使用,用來指定源地址比較操作時(shí)必須比較匹配的位數(shù)。通配符掩碼是一個(gè)32位二進(jìn)制數(shù),二進(jìn)制“0”表示該位必須比較匹配,二進(jìn)制“1”表示該位不需要比較匹配,可以忽略。例如通配符掩碼0.0.0.255,表示只比較IP地址中前24位,后8位IP地址忽略,通配符掩碼0.0.7.255表示只比較IP地址中前21位,后11位IP地址忽略,通配符掩碼0.0.255.255表示只比較IP地址中前16位,后16位IP地址忽略。有兩個(gè)特殊的通配符掩碼0.0.0.0和255.255.255.255,可以用關(guān)鍵字“host”和“any”表示。host表示一種精確的匹配,使用時(shí)放在IP地址前,如host 192.168.10.8的一臺(tái)主機(jī)。any表示任何IP地址,在進(jìn)行比較操作時(shí)不對(duì)該IP地址進(jìn)行比較。
這 里 的“operator”是指操作符,可以使用操作符“<、>、=、≠”等,具體的操作符命令如圖3所示。
“port”指端口號(hào),其范圍是0-65535,放在源IP地址后的端口號(hào)指源端口號(hào);放在目的IP地址后的端口號(hào)指目的端口號(hào)。端口號(hào)0代表所有TCP端口或UDP端口。一些特殊的端口號(hào)可以直接用其對(duì)應(yīng)的協(xié)議名稱表示,如TCP端口號(hào)80可以用WWW表示,TCP端口號(hào)23可以用Telnet表示,TCP端口號(hào)21可以用FTP表示,UDP端口號(hào)53可以用Domain表示,UDP端口號(hào)520可用RIP表示。
目的地址和通配符掩碼的結(jié)構(gòu)與源地址和通配符掩碼的結(jié)構(gòu)相同,目的端口號(hào)的指定方法與源端口號(hào)的指定方法相同。
圖3 操作符表
在較高版本的IOS上,都可以配置命名的訪問控制列表。它的好處在于可以單獨(dú)地添加或者刪除列表中的一條語句,從而克服了傳統(tǒng)的訪問控制列表不能增量地更新,難于維護(hù)的弊病。
在全局模式下聲明命名的訪問控制列表命令如下:
Router(config)#ip a ccess- list{extended|standard}name
執(zhí)行該命令后進(jìn)入配置命名的訪問控制列表語句的模式,可以逐條編寫列表語句,以擴(kuò)展的命名訪問控制列表為例,其命令如下:
Router(config-extnacl)#permiy|deny protocol source sourcewildcard[operator port]destination destionationwildcard [operator port]
通過不斷重復(fù)套用該命令即可建立起命名的訪問控制列表,例如:
Router(config)#ip access-list extended server1
Router(config-extnacl)#permit tcp any host 192.168.10.1 eq telnet
Router(config-extnacl)#permit tcp any host 192.168.10.1 eq smtp
Router(config-extnacl)#deny ip any any
Router(config-extnacl)#exit
Router(config)#int f0/0
Router(config-if)#ip access-group server1 out
Router(config-if)#exit
向命名的訪問控制列表中添加語句與配置語句語法格式一樣。若要?jiǎng)h除一條語句,與刪除大多數(shù)命令一樣在該語句前加“no”,例如:
Router(config)#ip access-list extended server1
Router(config-extnacl)#no permit tcp any host 192.168.10.1 eq telnet
Router(config-extnacl)#exit