设为首页收藏本站language 语言切换
查看: 2690|回复: 7
收起左侧

[分享] Access Control List

[复制链接]
发表于 2015-11-24 23:25:55 | 显示全部楼层 |阅读模式
ACL就是一种“路由器配置脚本”,从数据包包头中发现的信息(源地址/目的地址,源端口/目的端口,协议等信息)控制数据流量的通过或是阻挡。
ACL工作原理:读取数据流“第三层包头”和“第四层报头”中的信息,根据预先定义的规则对数据包进行过滤。
ACL两大功能:1)检查并过滤数据;2)匹配感兴趣的流量(PAT中也使用ACL,这里的ACL就是匹配感兴趣的数据进行地址转换)
ACL用途:1)限制网络流量;2)对网络流量的控制手段;3)提供网络访问的基本安全手段
ACL分类:标准ACL / 扩展ACL / 命名ACL(其他的还有标准MAC ACL、时间控制ACL、以太协议 ACL 、IPv6 ACL等)
                标准ACL使用 1 ~ 99 作为表号;扩展ACL使用100 ~ 199 作为表号
                标准ACL就是读取“第三层包头”信息,根据规则对数据流进行过滤的脚本;
                扩展ACL是读取“第三层和第四层的信息”对数据进行过滤
PS:很明确的是,扩展ACL比标准ACL打击更加精确;标准ACL打击的是一个范围,扩展ACL可以在这个范围基础上更精确的判断并组织数据流。
        别忘了,我们还有一个“命名访问ACL”,与前两种不同的是“前两种ACL都需要使用表号”,而命名访问就不需要。
        它可以使用一个字母或数字组合的字符串来代替前面所使用的数字,这个只是他的表面功夫。
        最大的不同在于:使用命名访问控制列表可以用来删除某一条特定的控制条目,这样可以让我们在使用过程中方便地进行修改。
        在使用命名访问控制列表时,要求路由器的IOS在11.2以上的版本,并且不能以同一名字命名多个ACL,不同类型的ACL也不能使用相同的名字。


标准ACL的语言:
access-list ACL-number permit 源网络地址/网络段 反掩码
扩展ACL的语言:
access-list ACL-number permit 协议(TCP/UDP/ICMP等)源网络地址/网络段 反掩码 目的地址/目的地址段 eq 协议号
调用ACL:
ip access-group 表号 in/out
in:表示在数据包进入此接口时使用ACL进行过滤。out:表示在数据包离开此接口时使用ACL进行过滤。
PS:通常使用出站接口检查数据包的事例较少,但缺省为“出站”(在实际应用中,我们通常只对那些可能有害的访问作出拒绝限制,或者限制用户访问某些有害的站点或服务)



反掩码,也叫通配符掩码
通配符掩码,指出了地址中的哪些位需要精确匹配(0,表示需要精确匹配;1,则不需要匹配)
PS:它的性质与我们的掩码的定义相反,掩码是对‘1’进行匹配,对‘0’则不匹配
host关键字,当条件为单一的IP地址时:access-list 1permit host 192.168.12.1
当然我们在这里也可以使用反掩码表示:access-list 1permit 192.168.12.1 0.0.0.0

标准ACL
标准ACL使用数据包的源地址匹配ACL条件;
标准ACL针对整个协议采取动作
需要注意的是,无论是标准ACL还是扩展ACL,在每个ACL中都隐藏着一个语句:access-list list-num deny any,它位于ACL的最后;
在每一个接口、每一个方向上只能应用一个ACL,但一个ACL可以应用于多个接口;
定义ACL时,每条语句都按输入的次序加入到ACL末尾,如果需要改变某条语句或者更改语句的次序,只能删除整个ACL再重新输入。标准/扩展ACL无法完成修改ACL动作,只有命名ACL才可以。But 实际工作中还有个办法可便于解决此问题:在实际应用中,我们往往把路由器的配置文件导出到TFTP服务器中,用文本编辑工具修改ACL,然后再把配置文件装回到路由器中。


扩展ACL
扩展ACL可以使用IP地址作为条件,也可以使用上层协议作为条件;
扩展ACL不仅可以过滤数据的源地址,也可以过滤数据的目标地址

正确放置ACL
1)ACL应用在不同接口、不同方向上会有不同的结果
2)尽量考虑将扩展ACL放在靠近“源端口”的位置上,保证被过滤的数据包尽早被过滤,避免不必要的开销;
     尽量将标准ACL放在靠近“目的端口”,因为标准ACL只使用源地址过滤,将其放在源端口位置会阻挡流向其他接口的数据;
3)入站ACL在数据包被允许后,路由器才会进行寻址路由and转发接口的工作,而出站就需要经过路由的寻址路由/指向具体接口转发后才起作用。
     所以入站ACL比起出站更节省开销

总结:
1)每个接口、每个方向、每种协议,只能设置一个ACL
2)组织好ACL语言,一定把测试性最好的放在ACL顶部
3)默认,ACL结尾语句是deny any,所以一定要在ACL中至少配置一条Permit语句
4)记得在创建ACL后,一定还要将它调用在需要过滤的接口上
5)ACL用来过滤经过路由器的数据包,它不会过滤路由器自己产生的数据包(比如邻居更新等)
6)尽可能将标准ACL放置在离目标地址近的地方,将扩展ACL布置在离源地址近d
 楼主| 发表于 2015-11-24 23:27:54 | 显示全部楼层
补上:离源地址近的端口
沙发 2015-11-24 23:27:54 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-24 23:28:36 | 显示全部楼层
补上:离源地址近的端口
板凳 2015-11-24 23:28:36 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2015-11-25 10:20:05 | 显示全部楼层
感谢楼主分享!
地板 2015-11-25 10:20:05 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2015-11-25 16:42:54 | 显示全部楼层
拿分走人呵呵,楼下继续!
6# 2015-11-25 16:42:54 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2015-11-25 16:43:05 | 显示全部楼层
163131oncfzykrccf1wv8j.gif
7# 2015-11-25 16:43:05 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-8-5 21:45:34 | 显示全部楼层
感谢楼主分享
8# 2020-8-5 21:45:34 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-26 16:57 , Processed in 0.099564 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表