oracle无法为指定的用户设置acl_看懂这些,ACL配置就难不倒你啦!
一、 什么是ACL?
访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,如IP、IPX、AppleTalk等。
这张表中包含了匹配关系、条件和查询语句,表只是一个框架结构,其目的是为了对某种访问进行控制。
注:此文章素材来源于网络,仅代表作者观点,版权归原作者所有!经编者收集整理后,与大家一起分享学习!转载请保留此字段,感谢!
二、 ACL有什么样用处?
1)ACL可以限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定数据包的优先级。
2)ACL提供对通信流量的控制手段。例如,ACL可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量。
3)ACL是提供网络安全访问的基本手段。ACL允许主机A访问人力资源网络,而拒绝主机B访问。
4)ACL可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞。例如,用户可以允许E-mail通信流量被路由,拒绝所有的Telnet通信流量。
例如:某部门要求只能使用 WWW 这个功能,就可以通过ACL实现; 又例如,为了某部门的保密性,不允许其访问外网,也不允许外网访问它,就可以通过ACL实现。
三、 ACL的3p规则(不要想歪,捂脸)
记住此原则,便记住了在路由器上应用 ACL 的一般规则。可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:
1)每种协议一个 ACL 要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
2)每个方向一个 ACL 一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。
3)每个接口一个 ACL 一个 ACL 只能控制一个接口(例如快速以太网 0/0)上的流量。
ACL 的编写可能相当复杂而且极具挑战性。每个接口上都可以针对多种协议和各个方向进行定义。
四、ACL编号和命名规则
ACL的命名方式分数字型ACL和命名型ACL两种。数字型ACL就是用户在创建ACL时必须为其指定编号,系统将根据用户所指定的编号来创建不同的ACL。
这里的编号不能随便指定,一定要在对应类型的ACL的编号取值范围中,他代表了ACL的类型。如基本ACL和基本ACL6的编号取值范围都是2000~2999,而高级ACL和高级ACL6的编号取值范围都是3000~3999。
有时为了方便对具体ACL用途的识别,用户在创建ACL时可以为ACL指定一个名称,这就是命名型ACL。命名型ACL可使用户通过ACL名称唯一的标识一个ACL,并对其进行相应的操作。
但每个ACL最多只能有一个名称,且在ACL创建后不允许用户修改或者删除ACL名称,也不允许为未命名的ACL添加名称。
ACL的名称对于ACL全局唯一,但允许基本ACL与基本ACL6,高级ACL与高级ACL6使用相同的名称。
在指定命名型ACL时也可以同时配置对应编号。如果没有配置对应编号,系统在记录此命名型ACL时会自动为其分配一个数字型ACL的编号。所以命名型的ACL也肯定有一个ACL编号,但数字型ACL却不会有对应的ACL名称。
五、ACL规则的匹配顺序
一个ACL可以由多条“deny|permit”语句组成,每一条语句描述一条规则。由于每条规则中的报文匹配选项不同(同一ACL中的各条规则间都不可能完全相同),从而使这些规则之间可能存在交叉甚至矛盾的地方。
因此,在将一个报文与ACL的各条规则进行匹配时,就需要有明确的匹配顺序来确定规则执行的优先级。
1)配置顺序:是按照用户配置规则编号的大小顺序进行匹配。后插入的规则如果编号较小也有可能先被匹配。缺省采用配置顺序进行匹配。
2)自动排序:是按照“深度优先”原则由深到浅进行匹配。“深度优先”即根据规则的精确度排序,匹配条件(如协议类型、源和目的IP地址范围等)限制越严格越精确,优先级越高。
例如可以比较地址的通配符掩码(wildcard,每位也是由“1”和“0”组成,“0”表示要精确匹配的位,“1”表示不需要匹配的位),通配符越小(“0”的位数越多),则指定的主机的范围就越小(通配符全为0时表示要精确匹配地址中的每一位,相当于只有一个地址符合匹配条件,所以说主机地址的通配符为0),限制就越严格。若“深度优先”的顺序相同,则匹配该规则时按照规则编号从小到大排列。
六、ACL相关规范
1)ACL的列表号指出了是哪种协议的ACL。各种协议有自己的ACL,而每个协议的ACL又分为标准ACL和扩展ACL。这些ACL是通过ACL列表号区别的,如果在使用一种访问ACL时用错了列表号,那么就会出错误。
2)一个ACL的配置是每协议、每接口、每方向的。路由器的一个接口上每一种协议可以配置进方向和出方向两个ACL。
也就是说,如果路由器上启用了IP和IPX两种协议栈,那么路由器的一个接口上可以配置IP、IPX两种协议,每种协议进出两个方向,共四个ACL。
3)ACL的语句顺序决定了对数据包的控制顺序。在ACL中各描述语句的放置顺序是很重要的。
当路由器决定某一数据包是被转发还是被阻塞时,会按照各项描述语句在ACL中的顺序,根据各描述语句的判断条件,对数据报进行检查,一旦找到了某一匹配条件就结束比较过程,不再检查以后的其他条件判断语句。
4)最有限制性的语句应该放在ACL语句的首行。把最有限制性的语句放在ACL语句的首行或者语句中靠近前面的位置上,把“全部允许”或者“全部拒绝”这样的语句放在末行或接近末行,可以防止出现诸如本该拒绝(放过)的数据包被放过(拒绝)的情况。
5)新的表项只能被添加到ACL的末尾,这意味着不可能改变已有访问控制列表的功能。如果必须改变,只有先删除已存在的ACL,然后创建一个新ACL,将新ACL应用到相应的接口上。
6)在将ACL应用到接口之前,一定要先建立ACL。首先在全局模式下建立ACL,然后把它应用在接口的出方向或进方向上。在接口上应用一个不存在的ACL是不可能的。
7)ACL语句不能被逐条的删除,只能一次性删除整个ACL。
8)在ACL的最后,有一条隐含的“全部拒绝”的命令,所以在 ACL里一定至少有一条“允许”的语句。
9)ACL只能过滤穿过路由器的数据流量,不能过滤由本路由器上发出的数据包。
10)在路由器选择进行以前,应用在接口进入方向的ACL起作用。
11)在路由器选择决定以后,应用在接口离开方向的ACL起作用。
七、控制访问列表类型
控制访问列表有两种:标准的控制访问列表和扩展的控制访问列表。
•标准
检查源地址
通常允许、拒绝的是完整的协议
能够对源地址进行过滤,是一种简单,直接的数据控制手段
•扩展
检查源地址和目的地址
通常允许、拒绝的是某个特定的协议
除了基于数据包源地址的过滤以外,还能够对协议,目的地址,端口号进行网络流量过滤。当然,配置也更复杂
控制访问列表的一般用法:
•限制对网络的FTP访问
•禁止一个子网到另一个子网的访问
•允许规定主机Telnet访问路由器
如:不允许指定的主机TELNET访问
访问列表的配置指南:
•访问列表的编号指明了使用何种协议的访问列表
•每个端口、每个方向、每条协议只能对应于一条访问列表
•访问列表的内容决定了数据的控制顺序
•具有严格限制条件的语句应放在访问列表所有语句的最上面
•在访问列表的最后有一条隐含声明:deny any-每一条正确的访问列表都至少应该有一条允许语句
•先创建访问列表,然后应用到端口上
•访问列表不能过滤由路由器自己产生的数据
标准访问列表的一般配置举例:
Router#
Router#configure terminal
Router(config)#
Router(config)#access-list 1 permit 172.16.2.0 0.0.0.255
配置的访问列表是允许来自网络172.16.2.0的流量
•Router#configure terminal
•Router(config)#
•Router(config)#access-list 2 deny 172.16.3.0 0.0.0.255
•Router(config)#access-list 2 permit any
•Router(config)#int s0
•Router(config-if)#ip access-group 2 out
•Router(config-if)#
禁止来自网络172.16.3.0的流量!!!
扩展访问列表的一般配置举例:
access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21
access-list 101 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20
access-list 101 permit ip any any
(implicit deny all)
(access-list 101 deny ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255)
•拒绝子网172.16.4.0 的数据使用路由器e0口ftp到子网172.16.3.0
•允许其它数据
access-list 101 deny tcp 172.16.4.0 0.0.0.255 any eq 23
access-list 101 permit ip any any
(implicit deny all)
•拒绝子网 172.16.4.0 内的主机使用路由器的端口建立Telnet会话
•允许其它数据
我们来比较一下标准的和扩展的异同:
标准:
基于源地址
允许和拒绝完整的
TCP/IP协议
编号范围 1-99和1300-1999
扩展:
基于源地址和目标地址
指定TCP/IP的特定协议
和端口号
编号范围 100-199和2000-2699
我们指定特定的主机时一般用通配符掩码指明,下面我举几个例子:
例如 172.30.16.29 0.0.0.0 检查所有的地址位 可以简写为 host (host 172.30.16.29)
所有主机: 0.0.0.0 255.255.255.255 可以用 any 简写
下面举一个简单的例子:
R>en
password:
R#conf t
R(config)# access-list 101 deny tcp 192.168.2.0 0.0.0.255 any eq telnet // 禁用从192.168.2.0来的telnet连接
R(config)# interface fastethernet 0/0
R(config-if)# ip access-group 101 out
至此,就成功配置了。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)