精选文章 访问控制列表ACL

访问控制列表ACL

作者:weixin_33769125 时间: 2021-02-07 02:41:57
weixin_33769125 2021-02-07 02:41:57
【摘要】一、访问控制列表介绍:
    访问控制列表(ACL,access control list)是应用在路由器的接口上的指令列表(即规则).这些规则告诉路由器,哪些数据包需要被拒绝,哪些被允许.
    访问控制列表的基本原理是:ACL使用包过滤技术,在路由器上读取OSI七层模型中的第3层和第4层包头的信息,如源IP、目的IP、源端口、目的端口等,根据预先定义好的规则,对包进行过滤,从而达到访...

一、访问控制列表介绍:
访问控制列表(ACL,access control list)是应用在路由器的接口上的指令列表(即规则).这些规则告诉路由器,哪些数据包需要被拒绝,哪些被允许.
访问控制列表的基本原理是:ACL使用包过滤技术,在路由器上读取OSI七层模型中的第3层和第4层包头的信息,如源IP、目的IP、源端口、目的端口等,根据预先定义好的规则,对包进行过滤,从而达到访问控制的目的.
ACL可分为两种基本类型:
>标准访问控制列表:检查数据包的源地址,其结果基于源网路/子网/主机IP地址,来决定允许还是拒绝,使用1-99之间的数字作为表号.
>扩展访问列表:对数据包的源地址与目的地址均检查,它也能检查特定的协议、端口号以及其他参数.使用100-199之间的数字作为表号.

二、访问控制列表的工作原理
访问控制列表是一组规则的集合,它应用在路由器的接口上,有进和出2个方向.
出:已经经过路由器的处理,正离开路由器接口的数据包.
入:已到达路由器接口的数据包,将被路由器处理.
如果对路由器的接口应用的ACL,也就是说该接口应用了一组规则,那么路由器将对数据包按照顺序进行检查.

>如果第一条规则被匹配了,则不往下检查,直接决定数据包是被丢弃还是转发
>如果第一条不匹配,则向下检查,直到有一条规则被匹配,决定该数据包是被丢弃还是转发
>如果最后没有任何一条规则被匹配,则路由器根据默认的规则来决定是丢掉还是转发
访问控制列表对路由器本身产生的数据包不起作用

由此可见,在ACL中,规则的顺序很重要,一旦匹配了规则,就不再向下检查.


三、访问控制列表的类型:
1.标准访问控制列表
标准访问控制列表根据数据包的源IP地址来决定数据包是丢弃还是转发,表号1-99
2.扩展访问控制列表
扩展访问控制列表根据数据包的源IP地址、目的IP地址、协议、端口号来允许或者拒绝数据包,表号100-199
3.命名访问控制列表:
允许在标准和扩展访问控制列表中使用名称代替表号.
4.定时访问控制列表
定时访问控制列表提供基于时间的附加控制特性,定义在什么时间允许或者拒绝数据包.

四、访问控制列表的配置
4.1.标准访问控制列表的配置
1.创建ACL
Router(config)#access-list access-list-number { permit | deny } source [source-wildcard]
access-list-number:访问控制列表表号,范围1-99
permit | deny :允许 | 拒绝
source :数据包的源地址,可以值主机地址,也可以是网络地址,也就是网段或者具体的IP地址
source-wildcard:通配符掩码,也叫反掩码,在用二进制0和1表示时,如果某位为1,表明这一位不需要进行匹配,为0,则表明这一位需要严格匹配.

例:
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
192.168.1.0/24的子网掩码是255.255.255.0,反掩码可以通过255.255.255.255减去255.255.255.0得到
Router(config)#access-list 1 permit 192.168.2.2 0.0.0.0
192.168.2.2的子网掩码是255.255.255.255,反掩码就是0.0.0.0

1)每个ACL都有一个隐含的拒绝语句,如下:
Router(config)#access-list 1 deny 0.0.0.0 255.255.255.255

2)关键字host/any
如:192.168.2.2 0.0.0.0 就可以用host代替
Router(config)#access-list 1 permit host 192.168.2.2
0.0.0.0 255.255.255.255 可以使用关键字any代替
Router(config)#access-list 1 deny any

3)删除已建立的标准ACL
Router(config)#no access-list access-list-number
对于标准访问控制列表,不能删除单条ACL语句,只能删除整个ACL,这意味着如果要改变一条或者几条ACL语句,必须先删除整个ACL,然后再添加想要的ACL语句

2.将ACL应用于接口
创建ACL之后,只有将ACL应用到接口,ACL才会生效
Router(config)#ip access-group acess-list-number { in | out}
参数in | out 用来表示是应用到入站接口还是出站接口
要取消接口上的ACL,在前面加no
Router(config)#no ip access-group access-list-number { in | out }

3.标准ACL配置实例
如图:要求配置标准ACL实现,禁止PC1访问PC2,而允许所有其他流量

步骤如下:
1)分析是在入站接口/出站接口上应用ACL
路由器对于in的数据包,先查看访问控制列表,通过后才查看路由表.对于out的数据包是先查看路由表,确定目标后才查看访问控制列表,因此尽量把ACL应用到入站接口上,因为它比出站接口效率要高.将要丢弃的数据包在进行路由表查询处理之前就拒绝掉.

2)应用在哪台路由器上
因为标准访问控制列表只能根据源IP地址过滤,如果在R1/R2上配置ACL,PC1不仅不能访问PC2,而且不能访问192.168.2.0/24.所以应该把标准ACL配置在离目的最近的路由器上.

3)配置ACL
R3(config)#access-list 1 deny 192.168.1.1 0.0.0.255
或者
R3(config)#access-list 1 deny host 192.168.1.1
R3(config)#access-list 1 permit any
R3(config)#int f0/0
R3(config-if)#ip access-group 1 in

使用show access-lists命令查看ACL配置



4.2扩展访问控制列表
1.创建ACL
Router(config)#access-list access-list-number { permit | deny } protocol { source source source-wildcard destination destination-wildcard } [ operator operan ]
access-list-number:访问控制列表表号,对于扩展ACL来说,范围是100-199
permit | deny :允许 | 拒绝
protocol : 协议,如IP/TCP/UDP/ICMP等
source destination :源地址/目的地址
source-wildcard destination-wildcard :反掩码,分别和源地址和目的地址对应
operator operan : lt (小于) 、gt(大于)、eq(等于)、neq(不等于)和一个端口号

例1:允许192.168.1.0/24访问192.168.2.0/24的IP流量通过,拒绝其他流量通过
Router(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Router(config)#access-list 100 deny ip any any

例2:拒绝192.168.1.0/24访问FTP服务器192.168.2.2/24的流量通过,而允许其他任何流量
Router(config)#access-list 100 deny tcp 192.168.1.0 0.0.0.255 192.168.2.2 0.0.0.255
Router(config)#access-list 100 permit ip any any

删除扩展ACL和删除标准ACL一样
Router(config)#no access-list access-list-number
扩展ACL与标准ACL一样,也不能删除单独的ACL语句,只能删除整个ACL

2.将ACL应用于接口
和标准ACL一样,需要将ACL应用到接口上,ACL才会生效
命令和标准ACL一样
Router(config-if)#ip access-group 100 in | out
取消的命令
Router(config-if)#no ip access-group 100 in | out

3.扩展ACL配置实例

步骤:
1)分析将ACL应用在入站接口还是出站接口
和标准ACL一样,尽量将ACL应用在入站接口上

2)该应用在哪台路由器上
由于扩展ACL可以根据源IP/目的IP/协议/端口,因此尽量将ACL应用到离源IP最近的路由器上,这样避免经过过多的路由器占用不要的资源.

3)配置ACL,并应用到接口上
R1(config)#access-list 100 permit tcp 192.168.1.1 0.0.0.255 192.168.3.1 0.0.0.255 eq 80 (www)
R1(config)#access-list 100 deny ip 192.168.1.1 0.0.0.255 192.168.3.1 0.0.0.255
R1(config)#access-list 100 permit ip 192.168.1.1 0.0.0.255 192.168.2.0 0.0.0.255
R1(config)#int f0/0
R1(config-if)#ip access-group 100 in

4.3命名访问控制列表的配置
1.创建ACL
Router(config)#ip access-list { standard | extended }  access-list-name
参数access-list-name 可以使用一个由字母、数字组合的字符串
如果是标准ACL,命令:
Router(config)#[Sequence-number] { permit | deny } source [ source-wildcard ]
如果是扩展ACL,命令:
Router(config-ext-nacl)#[ Sequence-Number ] { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan]

无论是标准命名ACL还是扩展命名ACL,都有一个可选参数Sequence-Number,Sequence-Number表明配置此ACL语句在ACL中所处的位置,默认情况下,第一条为10,第二条为20,以此类推.
Sequence-Number可以很方便的将新添加的ACL语句插入到指定位置,如果不选择Sequence-Number,那么ACL语句就会被添加到列表末尾,并且序列号加10.

例:允许来自主机192.168.1.1/24的流量通过,而拒绝其他流量,标准命名ACL命令为:
Router(config)#ip access-list standard cisco
Router(config-std-nacl)#permit 192.168.1.1 0.0.0.255
Router(config-std-nacl)#deny any

例:拒绝192.168.1.0/24访问FTP服务器192.168.2.2/24的流量通过,而允许其他任何流量.扩展命名ACL:
Router(config)#ip access-list extended cisco1
Router(config-ext-nacl)#deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config-ext-nacl)#permit ip any any

删除已建立的命名ACL:
Router(config)#no ip access-list { standard | extended } access-list-name

对于命名ACL来说,可以删除单条的ACL语句,而不必删除整个ACL,而且命令ACL可以有选择性的插入到指定位置,是ACL配置更加方便.
如果要删除一条ACL语句,可以使用"no Sequence-Number"或者"no acl语句"两种方式.
例如:
Router(config)#ip access-list standard cisco
Router(config-std-nacl)#no 10

2.将ACL应用于接口
创建命令ACL后,也必须将ACL应用于接口才会生效.
Router(config-if)#ip access-group access-list-name { in | out }
取消在接口应用的ACL:
Router(config-if)#no ip access-group access-list-name { in | out }


4.4 定时访问控制列表的配置
配置定时ACL,需要建立一个时间范围,然后使用扩展ACL或者命名扩展ACL引用这个时间范围.
1.定义时间范围的名称
Router(config)#time-range time-range-name
2.指定该时间范围何时生效
指定该时间范围何时生效有二种方式:定义一个时间周期或者定义一个绝对的时间.
1).定义一个时间周期
Router(config-time-range)#periodic days-of-the-week hh:mm to [ days-of-the-week ] hh:mm
Router(config-time-range)#absolute [ start hh:mm day month year ] [ end hh:mm day month year ]
 

2).在扩展ACL中引入时间范围
Router(config)#access-list access-list-number {  permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operaor operan ] time-range time-range-name

3).将ACL应用于接口
Router(config-if)#ip access-group access-list-number { in | out }

例:在每周的正常工作时间(周一到周五的每天8:30-17:30),允许所有的IP流量通过网络,命令如下:
Router(config)#time-range time
Router(config-time-range)#periodic weekdays 8:30 to 17:30
Router(config-time-range)#exit
Router(config)#access-list 101 permit ip any any time-range time
Router(config)#int f0/0
Router(config-if)#ip access-group 101 in
 

转载于:https://blog.51cto.com/minetlive1005/578139

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇://过360云查杀的代码

下一篇:LINUX释放内存

您可能感兴趣

  • 用定制标签库和配置文件实现对JSP页面元素的访问控制

    用定制标签库和配置文件实现对JSP页面元素的访问控制        控制客户端访问是开发一个基于B/S的架构的系统的开发者必须考虑的问题。JSP或SERVLET规范的基于配置文件的安全策略对资源的控制是以文件为单位的,即只可以定义某个视图全部可以或全部不能被访问。一个比较复杂的系统往往要要求对视图的一部分(如JSP页面里的一个按钮)提供访问控制,只允许被某种角色的用户访问。如果采用可编程的安...

  • 为列表控件添加水平滚动条

    Win32的标准控件之中,列表控件(ListBox)并没有和列表视图(ListView)一样提供水平滚动条,所以如果列表项的长度超过列表的宽度的话,那么超出的部分将无法显示。在本文中我将以一个简单的例子来说明如何使用SDK来解决这一问题,在这个例子中,我将为一个列表控件添加100行如下格式的文本:  This is a very very very very very long senten...

  • Jmail的主要参数列表

    Jmail的主要参数列表-----------------(1)Body(信件正文) : 字符串 如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。" (2)Charset(字符集,缺省为"US-ASCII") : 字符串 如:JMail.Charset = "US-ASCII" (3)ContentTransferEncoding : 字符串 指定内容传送时的...

  • 列表和分页器之间的对话

    [引言]很少有应用不涉及到表现集合数据. 表现集合数据就需要用到“列表(名单、一览表)”.  例如显示全体会员的名单. 当一次显示的数据过多时, 如果将所有数据完全列出, 将给用户造成阅读上的困难. 这个时候, 就需要将数据分页列出. 给用户以可驾驭数据的信心. 设身处地的为用户考虑, 是程序员、设计人员应有的禀性. 以下文叙述了作者在应用开发过程中对“数据集合分页”的感受、见解、或技巧。可...

  • 新闻组上的TCPIP资源列表(引自usenet)没有更新,还是上月的吧。

    Posting-Frequency: every two weeks Copyright: (c) 1996-2003 Uri RazMaintainer: Uri Raz Last-modified: 24/Sep/2003Archive-Name: internet/tcp-ip/resource-listURL: http://www.private.org.il/tcpip_rl.h...

  • Win2000系统进程列表

    Windows2000/XP的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。  本文的目的就是提供一些常用的Windows 2000 中的进程名,并简单说明它们的用处。  在Windows2000 中,系统包含以下缺省进程:  Csrss.exe  ...

  • asp.net学习资源列表

    我本来想整理一个,今天在网上找到了,就转贴在这里,欢迎大家补充。原文 : http://forums.zdnet.com.cn/cgi-bin/topic.cgi?forum=3&topic=1283&show=150 NET资源站点汇总  名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,...

  • Gentle.NET笔记(二)-列表示例

    日常开发之中,列表与独立的实体对象操作,是一样的重要,在XPO中是通过XpoCollection来管理的,Gentle里面又是什么样子呢?       根据Gentle的文档中的示例如下:    static   public  IList ListAll          {             get{ return Broker.RetrieveList( typeo...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
访问控制列表ACL介绍:华为云为您免费提供访问控制列表ACL在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多访问控制列表ACL的相关内容。| 移动地址: 访问控制列表ACL | 写博客