访问控制列表(access control lists)
一般我们简称为ACL,这是IOS的一个强大的特性。
在思科上面,可以用在IP/IPX/APPLETALK上面,对于NA来说,需重点了解基于IP 的ACL。
ACL是具备在流量进出接口和时对其过滤的能力而得名的,他的作用就是以下几点:
1)限制对路由器的TELNET(VTY)访问;
2)过滤路由选择信息;
3)通过排队技术区分WAN流量的优先次序;
4)按需拔号路由选择(DDR);
5)改变路由的管理距离。
VTY这个大家还记得吧,以前在配置口令的时候,要配置VTY 0-4这5个线路,不然是不能TLENT到路由器上面的,那么就算我配置了这个VTY,但是我在做ACL的时候,禁止TELNET,那么一样进不行。
过滤路由信息,这就很好理解了,就是一些没有必要的数据可以不进来,我也可以让它进来。他基于数据包来检测特殊数据通讯应用
ACL分两种,一种是标准,一种是扩展
编号与命名:
编号ACL就是说在所有的ACL中分配置一个唯一的号码;
命名也是同样的道理,就是在所有的ACL中分配一个唯一的名称。
每种ACL的引用都支持两种类型的过滤,就是我前面说的到标准与扩展。
标准的IP ACL只根据分组内的源IP地址进行过滤;
扩展的可以根据很多的方法去过滤,这些包括源与目的IP地址、IP协议类型、协议信息
可以看到出来,扩展的可以进行很细的过滤。
那么如果我的路由器配置了ACL,那么他是那么处理所收到的数据呢?
路由器他是自上往下处理ACL。
首先和ACL第一条语句进行比较,如果在路由器第一个语句中找到能匹配置的,一般ACL语句中就是两个工作,一个是许可,一个是拒绝,那么他就会执行当中一个命令,要么让他通过,要么就是拒绝;
如果在第一条语句中没有匹配的,那么他将处理列表中的下一条语句,再次重复相同的匹配过程,如果有,那么就是选择其中的一个动作,要么许可要么拒绝;
他会处理所有的列表中看有没有匹配的,如果还是没有的话,那么他就会把这个数据给掉了。
因为只要配置ACL的,他里面隐藏一个命令是拒绝所有不匹配的数据包,在配置ACL表时,他的最后一句就是DENY ANY ANY,拒绝任何的数据,也就是这个命令是隐藏的,在配置的时候我再说。
在配置ACL的时候要注意那些东西呢:
语句的顺序:把最严格的语句放在列表前面;不严格的语句放在在列表下面
每个ACL只有一个唯一的号码OR名称。
路由器不能过滤自己产生的流量,
每个接口在每个方向(进来与出去),只有应用一个IP ACL,在接口上面应用空的ACL,那么一般情况下它是许可所有的流量的。一般在配置的时候,我们都要加一个permit OR deny的语句,也就是要么许可,要么拒绝。
ACL的配置方法:
access-list access-list-number { permit | deny } { test conditions }
这是在全局配置模式下面,输入这种格式的命令。
access-list-number  这是ACL的号码,一般我们也是使用号码多;
{ permit | deny } 选择其中的一个,许可还是拒绝;
我们配置好了ACL以后,还要把这个ACL应用到端口上,
那么我们进行端口配置模式:
{protocol } access-group access-list-number {in | out}
{protocol } 代表是协议,是IP还是IPX;
这个就是加入到这个组里面
access-list-number 这个就是你开始前面创建ACL的编号;
{in | out} 流量进入接口,还是流量出入接口;
在使用IP ACCESS-GROUP命令在接口上启动ACL,必须要指定ACL的编号与名称和方向是出还是进;
那么说到编号。这个编号出有一定的规范的:
1-99是IP标准访问控制列表。
100-199是扩展访问控制列表。
800-899是IPX标准访问控制列表。
900-999是IPX扩展访问控制列表。
在配置ACL的时候,会出现一个通配符掩码,他主要是当ACL语句中处理IP地址时,可以使用它来匹配地址范围,没有必要一个一个的手动输入要匹配的IP地址。
现在说就做一个标准备的ACL来出在家看看吧:
tpstar(config)access-list 1 permit 192.168.1.1
tpstar(config)access-list 1 deny 192.168.1.2
tpstar(config)access-lint 1 deny any
tpstar(config)int s0
tpstar(config-if)ip accesss-group 1 in
在这个标准的访问列表中,我只许可192.168.1.1这个主机的数据进来,
access-list 1 deny 192.168.1.2 这个是拒绝的
access-lint 1 deny any 那么这个命令其实有没有一样的,可无可有的,他是拒绝所有的任何主机发过来的信息
ip accesss-group 1 in