访问控制列表简称为ACL,访问控制列表使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址,目的地址,源端口,目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。该技术初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机也开始提供ACL的支持了。
访问控制列表的原理:
1、对路由器接口来说有两个方向:
入:已经到达路由器接口的数据包,但是还没有被路由器处理。
出:已经经过路由器的处理,正要离开路由器接口的数据包。
2、匹配顺序为:“自上而下,依次匹配”。默认为拒绝。
3、访问控制列表的类型:
标准访问控制列表:一般应用在out出站接口。建议配置在离目标端最近的路由上;
扩展访问控制列表:配置在离源端最近的路由上,一般应用在入站in方向;
命名访问控制列表:允许在标准和扩展访问列表中使用名称代替表号。
4、访问控制列表使用原则
(1)、最小特权原则
只给受控对象完成任务所必须的最小的权限。也就是说被控制的总规则是各个规则的交集,只满足部分条件的是不容许通过规则的。
(2)、默认丢弃原则
在CISCO路由交换设备中默认最后一句为ACL中加入了DENY ANY ANY,也就是丢弃所有不符合条件的数据包。这一点要特别注意,虽然我们可以修改这个默认,但未改前一定要引起重视。
(3)、最靠近受控对象原则
所有的网络层访问权限控制。也就是说在检查规则时是采用自上而下在ACL中一条条检测的,只要发现符合条件了就立刻转发,而不继续检测下面的ACL语句。
由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具有一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。因此,要达到端到端的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。
下面分别介绍3种类型的访问控制列表
一、标准访问列表
访问控制列表ACL分很多种,不同场合应用不同种类的ACL.其中最简单的就是标准访问控制列表,标准访问控制列表是通过使用IP包中的源IP地址进行过滤,使用访问控制列表号1到99来创建相应的ACL。
它的具体格式:
access-list access-list-number [permit | deny ] [sourceaddress][wildcard-mask]
access-list-number 为1-99 或者 1300-1999之间的数字,这个是访问列表号。
例如:
1. access-list 10 deny host 192.168.1.1 //将所有来自192.168.1.1地址的数据包丢弃。
当然我们也可以用网段来表示,对某个网段进行过滤。命令如下:
1. access-list 10 deny 192.168.1.0 0.0.0.255
通过上面的配置将来自192.168.1.0/24的所有计算机数据包进行过滤丢弃。为什么后头的子网掩码表示的是0.0.0.255呢?这是因为CISCO规定在ACL中用反向掩玛表示子网掩码,反向掩码为0.0.0.255的代表他的子网掩码为255.255.255.0.
对于标准访问控制列表来说,默认的命令是HOST,就是说access-list 10 deny 192.168.1.1表示的是拒绝192.168.1.1这台主机数据包通讯,可以省去我们输入host命令。
标准访问列表配置实例:
1. R1(config)#access-list 10 deny 192.168.100.0 0.0.0.255
2. R1(config)#access-list 10 permit any
3. R1(config)#int fa0/0.1
4. R1(config-subif)#ip access-group 10 out
说明:
阻止来自网段192.168.100.0的机器从int fa0/0.1端口出去,访问列表在配置好之后,要把它在端口上应用,否则配置了还是无效的。
注意事项:
1、标准访问列表,一般来说配置尽量靠近目的端。
2、配置的第二条命令中的any相当于 0.0.0.0 255.255.255.255
3、一定要加pemint any,使其他的网络可通。
4、访问列表是从上到下一条一条进行匹配的,所以在设置访问列表的时候要注意顺序。如果从第一条匹配到最后一条还是不知道要怎么做,路由器就会丢弃这个数据包,也就是为什么上面的例子中上一定要加permit any。
5、如果只阻止一个主机,那可以用 host 192.168.1.12 或者 192.168.1.12 0.0.0.0.这两种配置是等价的。
删除已建立的标准ACL
R1(config)#no access-list