》路由器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~199 2000~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) #