您的位置:首页 > 其它

ACL(Access Control List,访问控制列表)

2020-06-06 05:54 50 查看

ACL(Access Control List,访问控制列表)

  • ACL概述

ACL的作用:ACL是一种包过滤技术!

ACL应用场景:路由器、防火墙上

路由器上称为ACL!

防火墙上称为策略!

策略就是升级版的ACL,策略可以基于IP、端口、协议、应用层数据进行各种过滤!

  • ACL怎么过滤IP包

ACL是基于数据包中的IP地址、端口号来对数据包进行过滤!

  • ACL的分类

3.1标准ACL

标准——Standard

表号:1-99或1300-1999

特点:只能基于源IP地址对包进行过滤。

3.2扩展ACL

              扩展——Extended

              表号:100-199或2000-2699

特点:可以基于源IP地址、目标IP地址、目标端口号、协议等对包进行过滤。(扩展ACL要求必须有基于源IP和目标IP的判断)

  • ACL的过滤原理

注意:

  1. ACL的in和out是相对于路由器来说的,数据流进路由器端口为in,数据流出路由器端口为out
  2. ACL与NAT地址映射参照物不同:

端口/方向

NAT

ACL

连接内网的端口

ip nat inside

-------------

连接公网的端口

ip nat outside

-------------

数据流入端口

-----------

in

数据流出端口

-----------

out

4.1配置ACL的小技巧

  1. 判断控制的数据流源IP还是目标IP,并画出控制数据流的方向!进而判断ACL可以配置在哪些路由器上!
  2. 写规则的时候,最好先判断拒绝的流量,还是允许

 

情况

编写

拒绝的少,允许的多!

先写拒绝,再写允许所有

允许的少,拒绝的多!

先写允许,再写拒绝所有

 

  1. 对选中的路由器,开始编写ACL过滤规则!
  2. 最后将ACL应用到某个接口某个方向(in 或 out才能生效!

4.2 ACL的原理

    1. ACL配置完毕后,必须应用到接口的inout方向上,生效
    2. 一个接口一个方向只能应用一张表
    3. 在所有ACL最后隐藏着一条拒绝所有的条目。
    4. 匹配ACL时,是严格自上而下的匹配每一条的!匹配成功完成动作没匹配成功则继续匹配下一条。如全部不匹配,则直接丢弃拒绝通过!(!!!一定要注意书写的先后顺序!!!
    5. 标准ACL因为只能基于源IP对包进行过滤,所以建议写在靠近目标端的地方!(视频讲解链接)
    6. 一个ACl表编写完成后,默认情况下不能删除某一条,也不能往中间插入新的条目,只能继续往后追加新的条目。(删除任意某一条都会删除整个ACL表)
  • ACL的命令

5.1标准ACL

                     Router(config)#access-list 表号 permit/deny 条件

                            #表号:1-99  1300-1999

                            #条件:源IP+反子网掩码

                            反子网掩码:0.0.0.255  #0代表严格匹配255代表不需要匹配!

                     例如:

                            Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255

                                   #拒绝源IP192.168.1.0网段的流量

                            Router(config)#access-list 1 peimit 0.0.0.0 255.255.255.255

                                   #允许所有网段

                            Router(config)#access-list 1 deny 192.168.2.1 0.0.0.0

                                   #拒绝一台主机/拒绝一个人

                     简化:

                                  

原命令

简化

0.0.0.0 255.255.255.255

any

192.168.2.1 0.0.0.0

host

                     简化后:

                     Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255

                                   #拒绝源IP192.168.1.0网段的流量

                     Router(config)#access-list 1 peimit any

                                   #允许所有网段

                     Router(config)#access-list 1 deny host 192.168.2.1

                                   #拒绝一台主机/拒绝一个人

5.2扩展ACL命令

Router(config)#access-list 表号permit/deny协议 源IP反掩码 目标IP反掩码 [eq端口号]

 

表号:100-199  2000-2699

协议:TCP/UDP/IP/ICMP(当写了端口号,必须写TCP或UDP)

[ ]   代表可选

注释:ICMP协议就是ping命令所使用的协议,ICMP协议是网络探测协议,ping别人,就是生成ICMP探测包发给对方,然后对方给我回应一个ICMP探测包,代表ping通了!

案例一:

Router(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 192.168.6.1 0.0.0.0 eq 80

#若去掉eq 80 表示允许访问所有基于TCP的端口

#若去掉eq 80,tcp换为ip 代表允许1.0网段访问6.0网段的所有端口

Router(config)#access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255

#禁止1.0网段访问6.0网段的所有端口

Router(config)#access-list 101 permit ip any any

#允许全部网段间通信

案例二:

Router(config)#access-list 102 deny icmp 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255

#禁止1.0网段ping 6.0网段

Router(config)#access-list 102 permit ip any any

案例三:

              Router(config)#access-list 103 deny tcp 192.168.1.0 0.0.0.255 host 192.168.6.1 eq 23

              #拒绝1.0网段Telnet 主机192.168.6.1

              Router(config)#access-list 103 permit ip 192.168.1.0 0.0.0.255 host 192.168.6.1

              #允许1.0网段访问主机192.168.6.1基于IP=全部服务)的所有端口

              Router(config)#access-list 103 deny ip any any

              #禁止网段间任何服务

案例四:

              Router(config)#access-list 104 deny ip host 192.168.1.1 any

              #禁止主机192.168.1.1与任何其他网段通信

              Router(config)#access-list 104 permit ip any any

              #允许所有网段间通信

5.3 将ACL表应用到接口上

       Router#int f0/1

       Router(config)#ip access-group 102 in/out               #102是扩展ACL表号

       Router(config)#exit

5.4查看所有ACL表

       Router#show ip access-list

  • 命名ACL

6.1 用命名ACl创建

R1(config)#ip access-list extended 表名

R1(config-ext-nacl)#[15] permit/deny          

#从peimit/deny开始编辑每一条

#前面加数字可以将该该条ACL插入到对应的位置

#前面不加数字则追加到表中已有条目,最后一条的后面

#[ ]代表可选

R1(config-ext-nacl)#no 20

#删除表中的第20条目

R1(config-ext-nacl)#exit

6.2 命名ACL的好处

          使用命名ACL格式可以任意删除某一条,也可以插入某一条!

       例如:

R1(config)#do show ip acess-list

Extended IP access list 120

10 deny icmp any any

20 deny udp 192.168.1.0 0.0.0.255 any eq domain

30 permit ip any any

可以删除某一条,如需要删除第二条,做如下操作:

R1(config)#ip access-list extended 120  #进入ACL表120

R1(config-ext-nacl)#no 20

R1(config-ext-nacl)#15 deny tcp 192.168.2.0 0.0.0.255 host 192.168.4.2 eq 80

R1(config-ext-nacl)#exit

       结果如下:

R1(config)#do sh ip ace

Extended IP access list 120

10 deny icmp any any

15 deny tcp 192.168.2.0 0.0.0.255 host 192.168.4.2 eq 80

30 permit ip any any

R1(config)#

       注释:如需要插入某一条目,需要在条目前加数字即可!

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: