网络配置之ACL

0x01 ACL概述

  1. 什么是ACL?

    ACL,即访问控制列表,ACL可以读取第三层、第四层的包头信息,并根据预先定义好的规则对包进行过滤。

  2. 应用ACL时需要注意什么?

    • ACL必须应用到接口上才能生效;
    • 一个接口最多应用两个ACL,出方向入方向
      • outside:已经过路由器的处理,当从此接口离开时才生效的ACL;
      • inside:到达路由器并从此接口进入路由器时才生效的ACL。
  3. ACL的处理过程?

    • 首先会匹配第一条ACL,若匹配成功且为拒绝则直接丢弃该数据包;若匹配成功且为允许则将数据包转到目的接口;若匹配不成功,则继续匹配下一条ACL;后续的匹配过程亦是如此。
    • 若所有规则都不匹配则丢弃该数据包,因为ACL规则默认为拒绝。

0x02 ACL分类

  • 标准ACL
    • 基于源IP地址过滤数据包
    • 标准ACL的访问控制列表号是1-99
  • 扩展ACL
    • 基于协议、源IP地址、目的IP地址、端口和标志来过滤数据包
    • 扩展ACL的访问控制列表号是100-199
  • 命令ACL
    • 命名ACL允许在标准和扩展访问控制列表中使用名称代替表号

0x03 ACL应用

  1. 标准ACL

    # 拒绝主机192.168.1.1的流量通过
    R(config)#access-list 1 deny 192.168.1.1 0.0.0.0
    R(config)#access-list 1 deny host 192.168.1.1
    # 允许192.168.1.0/24的流量通过
    R(config)#access-list 1 permit 192.168.1.0 0.0.0.255
    # 隐含的拒绝语句(拒绝所有主机)
    R(config)#access-list 1 deny 0.0.0.0 255.255.255.255
    R(config)#access-list 1 deny any
    
    R(config)#int f0/1
    # 将ACL应用到f0/1的入方向(出方向为out)
    R(config-if)#ip access-group 1 in
    
  2. 扩展ACL

    # 允许192.168.1.0/24中的主机访问192.168.2.0/24中的主机
    R(config)#access-list 101 permit ip 192.168.1.0 0.0.0.255 12.168.2.0 0.0.0.255
    # 允许192.168.1.0/24中的主机访问192.168.2.0/24中主机的21号端口
    R(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 12.168.2.0 0.0.0.255 eq 21
    R(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 12.168.2.0 0.0.0.255 eq ftp
    # 允许所有访问
    R(config)#access-list 101 permit ip any any
    # 拒绝192.168.1.0/24中的主机ping192.168.2.2主机
    R(config)#access-list 101 deny icmp 192.168.1.0 0.0.0.255 host 192.168.2.2 echo
    
    R(config)#int f0/1
    # 将ACL应用到f0/1的出方向(入方向为in)
    R(config-if)#ip access-group 101 out
    
  3. 命名ACL

    # 标准命名ACL
    R(config)#ip access-list standard Out-to-ISP
    R(config-std-nacl)#deny 192.168.1.0 0.0.0.255
    R(config-std-nacl)#permit any 
    
    # 扩展命名ACL
    R(config)#ip access-list extended In-to-ISP
    R(config-ext-nacl)#deny ip host 192.168.2.2 192.168.1.0 0.0.0.255
    R(config-ext-nacl)#permit ip any any
    
    R(config)#int f0/1
    R(config-if)#ip access-group Out-to-ISP in
    

0x04ACL查看

# 查看所有ACL
R#show access-lists
# 查看编号为1的ACL
R#show access-lists 1

猜你喜欢

转载自blog.csdn.net/qq_38768365/article/details/114276013