(用access-class将访问控制列表施加于VTY线路,或WEB接口,access-group则施加到接口)
在特权模式下,查看访问控制列表配置信息: Router #show configuration !
Access-list 1 permit 172.16.0.0 0.0.255.255
! !
line vty 0 5
access-class 1 in ……… !
标准访问控制列表实例四(允许几个IP地址访问)
配置只允许源地址为192.168.2.2和192.168.10.2的两台主机登陆路由器
Router(config)#access-list 10 permit 192.168.2.2 //访问控制列表允许IP地址为192.168.2.2的主机访问
Router(config)#access-list 10 permit 192.168.10.2 //访问控制列表允许IP地址为192.168.10.2的主机访问
Router(config)#_ access-list 10 deny any //其它主机都不允许访问 配置应用接口:
Router(config)#line vty 0 5 //是最大允许5个人同时telnet Router登陆
(vty是虚拟终端的意思,参见:VTY)
Router(config-line)#access-class 10 in // 将条件施加在虚拟终端线路上,配置在路由器的进口处,将ACL10宣告
(用access-class将访问控制列表施加于VTY线路,或WEB接口,access-group则施加到接口)
在特权模式下,查看访问控制列表配置信息: Router #show configuration !
Access-list 10 permit 192.168.2.2
Access-list 10 permit 192.168.10.2 ! !
line vty 0 5
access-class 10 in ……… !
在特权模式下查看访问控制列表: Router #show access-lists Standard IP access list 10
Permit 192.168.2.2 Permit 202.168.10.2 Deny any
标准访问控制列表实例五
禁止源地址为非法地址的数据包进入路由器或从路由器输出 在全局配置模式下:
Router(config)#access-list 30 deny 10.0.0.0 0.255.255.255 log //30号 ACL不允许10打头的所有地址访问,并且记录下每次访问的情况)
(log会把每次10地址访问的记录下来,用命令可以查看。没有log,只能在access-list里看统计总数。)
Router(config)#access-list 30 deny 203.105.1.63 0.0.0.255 //30号ACL不允许203.105.1打头的所有IP访问
Router(config)#access-list 30 deny 192.168.0.0 0.0.255.255 // 30号ACL不允许192.168打头的所有IP访问
Router(config)#access-list permit deny //ACL允许其它任何的IP访问 配置应用接口:
Router(config)#interface g0/1 //进入吉比特以太网配置模式,端口为0/1 Router(config-if)#access-group 30 in //将30号控制列表配置在路由器进口处 在特权用户模式下,查看访问控制列表信息: Router#show configuration
在特权用户模式下,查看访问控制列表: Router#show access-lists
标准访问控制列表实例六
删除该访问控制列表中的所有条件判断,然后再重新建立 Router(config)#no access-list 30
(删除访问控制列表命令:no access-list list-number)
总结:标准ACL占用路由器资源很少,是一种最基本最简单的访问控制列表格式。应用比较广泛,经常在要求控制级别较低的情况下使用。如果要更加复杂的控制数据包的传输就需要使用扩展访问控制列表了,他可以满足我们到端口级的要求。
二.扩展访问列表:
上面我们提到的标准访问控制列表是基于IP地址进行过滤的,是最简单的ACL。那么如果我们希望将过滤细到端口怎么办呢?或者希望对数据包的目的地址进行过滤。这时候就需要使用扩展访问控制列表了。使用扩展IP访问列表可以有效的容许用户访问物理LAN而并不容许他使用某个特定服务(例如WWW,FTP等)。扩展访问控制列表使用的ACL号为100到199。
ACL:限制源地址、目标地址
扩展ACL:限制源地址、目标地址、协议、端口号 扩展访问控制列表的格式
刚刚我们提到了标准访问控制列表,他是基于IP地址进行过滤的,是最简单的ACL。那
么如果我们希望将过滤细到端口怎么办呢?或者希望对数据包的目的地址进行过滤。这时候就需要使用扩展访问控制列表了。使用扩展IP访问列表可以有效的容许用户访问物理LAN而并不容许他使用某个特定服务(例如WWW,FTP等)。扩展访问控制列表使用的ACL号为100到199。
扩展访问控制列表的格式:
扩展访问控制列表是一种高级的ACL,配置命令的具体格式如下: (1)定义扩展访问控制列表
access-list ACL号 [permit|deny] [协议] [定义过滤源主机范围] [定义过滤源端口] [定义过滤目的主机访问] [定义过滤目的端口]
access-list access-list-number {permit|deny} protocol source wildcard-mask destination wildcard-mask [operator][operand]
operator(操作)有It(小于)、gt(等于)、eq(等于)、neq(不等于)几种;operand指的是端口号。
例如:access-list 101 deny tcp any host 192.168.1.1 eq www这句命令是将所有主机访问192.168.1.1这个地址网页服务(WWW)TCP连接的数据包丢弃。
(2)应用到接口
Ip access-group access-list-number {in|out} 注意:如果in和out都没有指定,那么默认地认为是out。 小提示:同样在扩展访问控制列表中也可以定义过滤某个网段,当然和标准访问控制列表一样需要我们使用反向掩码定义IP地址后的子网掩码。
扩展访问控制列表实例一
(拒绝转发符合协议和端口号条件的IP地址) 拒绝转发所有IP地址进出的端口号为1433的UDP协议数据包 在全局配置模式下:
Router(config)#access-list 130 deny udp any eq 1433 //创建130号ACL,拒绝转发所有进出1433端口UDP包的IP地址
Router(config)#access-list 130 permit ip any any //允许其它任何IP地址访问服务器 Router(config)#_ //路由器正处于全局配置模式 配置应用接口:
Router(config)#interface g0/1 // 进入吉比特以太网配置模式,端口为0/1
Router(config-if)#ip access-group 130 in // 将设置好条件的130号ACL配置在路由器进口
Router(config-if)#ip access-group 130 out //将设置好条件的130号ACL配置在路由器出口
Router(config-if)#_ //路由器正处于端口配置模式 特权用户模式下,查看访问控制列表: Router #show access-lists Extended IP access list 130 Deny udp any any eq 1433 Permit ip any any
扩展访问控制列表实例二
禁封一台主机: 在全局模式下:
Router(config)#access-list 112 deny ip host 212.102.60.230 any log //ACL不允许IP地址为212.102.60.230的主机访问服务器,提供任何(0.0.0.0 255.255.255.255)IP地址访问记录
(以上命令的host 212.102.60.230,等价于212.102.60.230 0.0.0.0后面的0.0.0.0表示ACL要的条件要与IP地址 212.102.60.230中的每一位匹配,才能拒绝,很明显,换句话说ACL要拒绝的就是IP地址为212.102.60.230的主机) Router(config)#access-list 112 deny ip any host 212.102.60.230 log //允许任何IP地址but 212.102.60.230
Router(config)#access-list permit any any //允许任何其它IP地址访问 Router(config)#interface g0/1 // 进入吉比特以太网配置模式,端口为0/1
Router(config-if)#ip access-group 122 in // 将设置好条件的122号ACL配置在路由器进口
Router(config-if)#ip access-group 122 out //将设置好条件的122号ACL配置在路由器出口
Router(config-if)#_ //路由器正处于端口配置模式 特权用户模式下,查看访问控制列表: Router #show access-lists Extended IP access list 122
deny ip host 212.102.60.230 any deny ip any host 212.102.60.230 Permit ip any any
扩展访问控制列表实例
采用如图所示的网络结构。路由器连接了二个网段,分别为172.16.4.0/24,172.16.3.0/24。在172.16.4.0/24网段中有一台服务器提供WWW服务,IP地址为172.16.4.13。
配置任务:禁止172.16.3.0的计算机访问172.16.4.0的计算机,包括那台服务器,不过惟独可以访问172.16.4.13上的WWW服务,而其他服务不能访问。 路由器配置命令:(应用到接口)
access-list 101 permit tcp any 172.16.4.13 0.0.0.0 eq www 设置ACL101,容许源地址为任意IP,目的地址为172.16.4.13主机的80端口即WWW服务。由于CISCO默认添加DENY ANY
的命令,所以ACL只写此一句即可。 int e 1 进入E1端口
ip access-group 101 out 将ACL101宣告出去
设置完毕后172.16.3.0的计算机就无法访问172.16.4.0的计算机了,就算是服务器172.16.4.13开启了FTP服务也无法访问,惟独可以访问的就是172.16.4.13的WWW服务了。而172.16.4.0的计算机访问172.16.3.0的计算机没有任何问题。 扩展ACL有一个最大的好处就是可以保护服务器,例如很多服务器为了更好的提供服务都是暴露在公网上的,这时为了保证服务正常提供所有端口都对外界开放,很容易招来黑客和病毒的攻击,通过扩展ACL可以将除了服务端口以外的其他端口都封锁掉,降低了被攻击的机率。如本例就是仅仅将80端口对外界开放。
总结:扩展ACL功能很强大,他可以控制源IP,目的IP,源端口,目的端口等,能实现相当精细的控制,扩展ACL不仅读取IP包头的源地址/目的地址,还要读取第四层包头中的源端口和目的端口的IP。不过他存在一个缺点,那就是在没有硬件ACL加速的情况下,扩展ACL会消耗大量的路由器CPU资源。所以当使用中低档路由器时应尽量减少扩展ACL的条目数,将其简化为标准ACL或将多条扩展ACL合一是最有效的方法。
基于名称的访问控制列表
不管是标准访问控制列表还是扩展访问控制列表都有一个弊端,那就是当设置好ACL的规则后发现其中的某条有问题,希望进行修改或删除的话只能将全部ACL信息都删除。也就是说修改一条或删除一条都会影响到整个ACL列表。这一个缺点影响了我们的工作,为我们带来了繁重的负担。不过我们可以用基于名称的访问控制列表来解决这个问题。 一、基于名称的访问控制列表的格式: ip access-list [standard|extended] [ACL名称]
例如:ip access-list standard softer就建立了一个名为softer的标准访问控制列表。 二、基于名称的访问控制列表的使用方法:
当我们建立了一个基于名称的访问列表后就可以进入到这个ACL中进行配置了。 例如我们添加三条ACL规则 permit 1.1.1.1 0.0.0.0 permit 2.2.2.2 0.0.0.0 permit 3.3.3.3 0.0.0.0
如果我们发现第二条命令应该是2.2.2.1而不是2.2.2.2,如果使用不是基于名称的访问控制列表的话,使用no permit 2.2.2.2 0.0.0.0后整个ACL信息都会被删除掉。正是因为使用了基于名称的访问控制列表,我们使用no permit 2.2.2.2 0.0.0.0后第一条和第三条指令依然存在。
总结:如果设置ACL的规则比较多的话,应该使用基于名称的访问控制列表进行管理,这样可以减轻很多后期维护的工作,方便我们随时进行调整ACL规则。
反向访问控制列表: 我们使用访问控制列表除了合理管理网络访问以外还有一个更重要的方面,那就是防范病毒,我们可以将平时常见病毒传播使用的端口进行过滤,将使用这些端口的数据包丢弃。这样就可以有效的防范病毒的攻击。
不过即使再科学的访问控制列表规则也可能会因为未知病毒的传播而无效,毕竟未知病毒使用的端口是我们无法估计的,而且随着防范病毒数量的增多会造成访问控制列表规则过