ACL 访问控制列表
ACL(Access Control List) 接入控制列表
ACL 的量大主要功能:
- 流量控制
- 匹配感兴趣流量
标准访问控制列表
- 只能根据源地址做过滤
- 针对曾哥协议采取相关动作(允许或禁止)
扩展访问控制列表
- 能根据源、目的地址、端口号等等进行过滤
- 能允许或拒绝特定的协议
ACL的类型:
- Standard ACL
- ExtendedACL
- Two methods used to identify standard and extended ACLs
ACL入方向的操作
示意图:
ACL出站方向的操作
示意图:
ACL的标识
ACL的标识可以是两种,可以是十进制数或者是个字符串
这里是有区分的
1、标准的访问列表:1-99,1300-1999 区间的,路由器会默认理解为你在定义一个标准的访问ACL,也就是说只能限制源地址
2、扩展的访问列表:100-199, 2000-2699 区间的,路由器会默认理解为你在定义一个扩展的ACL,也就是说可以限制端口、协议、源地址、目标地址等
3、字符串的命名访问列表:路由器会默认理解为你在定义第三种的ACl,包含了标准和扩展访问列表的特性;
标准访问控制列表的配置
Router(config)#
access-list access-list-number {permit|deny} source [wildcard mask]
- 编号
access-list-number
选择1-99 - 通配符若无,默认0.0.0.0
- “弄access-list access-list-number” 将会删除整个ACL列表
应用到接口上:
Router(config-if)#
ip access-group access-list-number { in | out }
- 在接口中应用
- 应用时关联入口或出口方向
- 默认出站
- "no ip access-group access-list-number"可以出接口上应用的访问列表
- ACL的生效在路由上,那么不能对本地始发的流量做过滤,只能对穿越本地路由器的流量做过滤;
- 只能在某个接口的某个特定的方向( in | out ),只能应用一个ACL
扩展访问控制列表的配置:
Router(config)#
access-list access-list-number {permit | deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] [established] [log]
应用于接口
ip access-group access-list-number { in | out }
- 在接口中应用
- 应用时关联入或者出方向
示例 3:
router(config)# access-list 100 deny ip 192.168.1.0 0.0.0.31 host 192.168.2.200
router(config)# access-list permit any
router(config)# interface e0
router(config-if)# ip access-group 100 in
示例 4:
router(config)# access-list 100 deny tcp any host 192.168.2.200 eq 23
router(config)# access-list permit any
router(config)# interface e1
router(config-if)# ip access-group 100 out
标准和扩展访问列表的缺点:
- 定义后,无法去编辑、删除、修改和添加条目
- 如果是删除的话,则是删除整个列表
- 使用数字编号,不直观、明显
而命名访问控制列表则可以解决上列所有问题。
命名访问控制列表的配置:
Router(config)#
ip access-list { standard | extended } name
Router(config {std- | ext-}nacl)#
[sequence-unmber] {permit|deny} {ip access list test conditions} {permit | deny} {ip access list test conditions}
- if not configured, sequence unmbers are generated automatically starting at 10 and incrementing by 10
- no sequence unmber removes the specific test from the named ACL
Router(config-if)#
ip access-group access-list-number { in | out }
总结:
- 1、每个接口,每个方向,每种协议,你只能设置1个ACL
- 2、组织好你的ACL的顺序,比如测试性的最好放在ACl的最顶部
- 3、标准和扩展的控制列表,你不可能从ACL中除去1行,除去1行意味你讲除去整个ACL,命名访问列表(named access list)例外
- 4、默认ACl结尾语句都是deny any,所以你要记住的是在ACL里至少要有1条permit语句
- 5、记得创建了ACL后要把它应用在需要过滤的接口上;
- 6、ACL是用于过滤经过router的数据包,它并不会过滤router本身产生的数据包
- 7、尽可能的吧IP标准ACL防止在离目标地址近的地方;尽可能的吧IP扩展ACL放置在离源地址近的地方;