引言:本文讨论利用IP扩展访问控制列表来实现网络应用服务访问控制的配置,其过程采用Cisco设备来进行演示。包括扩展访问控制列表的配置方法与配置命名的访问控制列表。
本文讨论利用IP扩展访问控制列表来实现网络应用服务访问控制的配置方法(采用Cisco设备)。
在全局模式下建立扩展访问控制列表,配置如下:
Router(config)#access-list access-list-number{permit|deny}protocol source source-wildcard[operator port] destination destionation-wildcard[operator port]
以上中的“access-listnumber”对IP扩展访问控制列表范围是100-199和2000-2699.不同类型访问控制列表列表号如图1所示。
而“permit”或者“deny”关键字可以指定哪些匹配访问控制列表语句的报文是允许通过接口或被拒绝通过。该选项所提供的功能与标准IP访问控制列表相同。
图1 列表类型和对应的列表号
图2 RGNOS支持协议列表
“portocol”即协议表项定义了需要被检查的协议,例如 IP、TCP、UDP、ICMP等。协议选项是很重要的,因为在TCP/IP协议簇中的各种协议之间有密切关系。如IP数据包可用于TCP、UDP协议及各种路由协议的传输,如果指定IP协议,访问控制列表将只检查IP数据包进行匹配,而不再检查IP数据包所承载的TCP、UDP等上层协议。如果根据特殊协议进行报文过滤,就要指定该协议。此外,应将更具体的表项放在访问控制列表靠前的位置。例如,如果允许IP地址的语句放在拒绝TCP地址的语句前,则后一个语句将不起作用。但如果将这两条语句换位置,则允许改地址上其他协议的同时拒绝了该地址的TCP协议。RGNOS支持过滤的协议如图2所示。
“source sourcewildcard”指源地址和通配符掩码,源地址是主机或一组主机的点用十进制表示,必须与通配符掩码配合使用,用来指定源地址比较操作时必须比较匹配的位数。通配符掩码是一个32位二进制数,二进制“0”表示该位必须比较匹配,二进制“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地址忽略。有两个特殊的通配符掩码0.0.0.0和255.255.255.255,可以用关键字“host”和“any”表示。host表示一种精确的匹配,使用时放在IP地址前,如host 192.168.10.8的一台主机。any表示任何IP地址,在进行比较操作时不对该IP地址进行比较。
这 里 的“operator”是指操作符,可以使用操作符“<、>、=、≠”等,具体的操作符命令如图3所示。
“port”指端口号,其范围是0-65535,放在源IP地址后的端口号指源端口号;放在目的IP地址后的端口号指目的端口号。端口号0代表所有TCP端口或UDP端口。一些特殊的端口号可以直接用其对应的协议名称表示,如TCP端口号80可以用WWW表示,TCP端口号23可以用Telnet表示,TCP端口号21可以用FTP表示,UDP端口号53可以用Domain表示,UDP端口号520可用RIP表示。
目的地址和通配符掩码的结构与源地址和通配符掩码的结构相同,目的端口号的指定方法与源端口号的指定方法相同。
图3 操作符表
在较高版本的IOS上,都可以配置命名的访问控制列表。它的好处在于可以单独地添加或者删除列表中的一条语句,从而克服了传统的访问控制列表不能增量地更新,难于维护的弊病。
在全局模式下声明命名的访问控制列表命令如下:
Router(config)#ip a ccess- list{extended|standard}name
执行该命令后进入配置命名的访问控制列表语句的模式,可以逐条编写列表语句,以扩展的命名访问控制列表为例,其命令如下:
Router(config-extnacl)#permiy|deny protocol source sourcewildcard[operator port]destination destionationwildcard [operator port]
通过不断重复套用该命令即可建立起命名的访问控制列表,例如:
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
向命名的访问控制列表中添加语句与配置语句语法格式一样。若要删除一条语句,与删除大多数命令一样在该语句前加“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