欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ACL访问控制理论+实操详解

程序员文章站 2024-03-20 23:42:04
...

前言

访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全

1.1:访问控制列表

  • 读取第三层、第四层包头信息
  • 根据预先定义好的规则对包头进行过滤

ACL访问控制理论+实操详解

1.2:访问控制列表的类型

  • 标准访问控制列表
    基于源IP地址过滤数据包
    白哦准访问控制列表的访问控制列表号是1~99

  • 扩展访问控制列表
    基于源IP地址、目的ip地址、指定协议、端口和标志来过滤数据包
    扩展访问控制列表的访问控制列表号是100~199

  • 命名访问控制列表
    命名访问控制列表允许在标志和扩展访问控制列表中使用名称代替表号

1.3:访问控制列表在接口应用的方向

出:已经过路由器的处理,正离开路由器的接口的数据包(本机无效)

入:已经到达路由器接口的数据包,将被路由器处理(本机生效)

ACL访问控制理论+实操详解

1.4:访问控制列表的处理过程

ACL访问控制理论+实操详解

1.5:ACL原理:

1.ACL是从上至下逐条匹配,一旦匹配成功则不再向下匹配。

2.ACL最后隐含了一条拒绝所有的规则。

3.路由器的一个接口一个方向最多只可以应用一个ACL,但是可以有N条条目。

二:实验拓扑

ACL访问控制理论+实操详解

2.1:配置SW1

<Huawei>undo terminal monitor
<Huawei>system-view
[Huawei]sysname SW1
[SW1]user-interface console 0
[SW1-ui-console0]idle-timeout 0 0
[SW1]vlan batch 10 20
[SW1-ui-console0]int e0/0/1
[SW1-Ethernet0/0/1]port link-type access
[SW1-Ethernet0/0/1]port default vlan 10
[SW1-Ethernet0/0/1]quit
[SW1]int e0/0/2
[SW1-Ethernet0/0/2]port link-type access 
[SW1-Ethernet0/0/2]port default vlan 20
[SW1-Ethernet0/0/2]quit
[SW1]int e0/0/3
[SW1-Ethernet0/0/3]port link-type access 
[SW1-Ethernet0/0/3]p d v 10
[SW1-Ethernet0/0/3]q
[SW1-Ethernet0/0/4]p l a 
[SW1-Ethernet0/0/4]p d v 20
[SW1-Ethernet0/0/4]q
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port link-type trunk
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW1-GigabitEthernet0/0/1]q

2.2:配置路由器R1

<Huawei>system-view 
[Huawei]sysname R1
[R1]user-interface console 0
[R1-ui-console0]idle-timeout 0 0
[R1-ui-console0]q
[R1]int g0/0/0.1
[R1-GigabitEthernet0/0/0.1]dot1q termination vid 10
[R1-GigabitEthernet0/0/0.2]ip address 192.168.20.1 255.255.255.0
[R1-GigabitEthernet0/0/0.1]arp broadcast enable 
[R1-GigabitEthernet0/0/0.1]quit
[R1]int g0/0/0.2
[R1-GigabitEthernet0/0/0.2]dot1q termination vid 20
[R1-GigabitEthernet0/0/0.2]ip address 192.168.20.1 255.255.255.0
[R1-GigabitEthernet0/0/0.2]arp broadcast enable
[R1-GigabitEthernet0/0/1]quit
[R1]int g0/0/1	
[R1-GigabitEthernet0/0/1]ip address 12.1.1.1 24 
[R1-GigabitEthernet0/0/1]quit
[R1]ip route-static 0.0.0.0 0.0.0.0 12.1.1.2

2.3:配置R2

<Huawei>system-view
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]quit
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip address 12.1.1.2 24
[Huawei-GigabitEthernet0/0/0]undo shutdown 
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 202.10.100.2 24
[Huawei-GigabitEthernet0/0/1]un sh
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ip route-static 192.168.10.0 24 12.1.1.1 
[Huawei]ip route-static 192.168.20.0 24 12.1.1.1

2.4:配置IP

ACL访问控制理论+实操详解

2.5:配置PC的IP

ACL访问控制理论+实操详解

需求一:验证全网通信

ACL访问控制理论+实操详解

ACL访问控制理论+实操详解

需求二:用ACL标准列表禁止vlan 10和vlan 20通信

标准ACL:

不允许VLAN10 与 VLAN20 通信

因为通信是双向的,因而只要阻止一个方向就可以完成不能通信的目的

在AR1上做的ACL列表如下:

第一步写列表,第二步接口下调用

R1

[R1]acl 2000                          '定义一个标准ACL2000'
[R1-acl-basic-2000]rule deny source 192.168.10.0 0.0.0.255   '拒绝源为192.168.10.0/24网段的所有流量'
[R1-acl-basic-2000]rule permit source any     '需要注意的是ACL是从上之下逐条匹配的,所以需要在第一条拒绝语句后跟一条允许所有的保证其他通过'
[R1-acl-basic-2000]int g0/0/0.2         '只需要限制vlan 10和vlan 20不互访,所以将ACL应用vlan 20的out方向不影响上行上网的流量'
[R1-GigabitEthernet0/0/0.2]traffic-filter outbound acl 2000   '接口的out方向应用ACL'
[R1-GigabitEthernet0/0/0.2]quit
[R1]display acl 2000
Basic ACL 2000, 2 rules
Acl's step is 5
 rule 5 deny source 192.168.10.0 0.0.0.255 
 rule 10 permit 

结果验证

ACL访问控制理论+实操详解

可以看到PC1依然可以ping通Server,但无法和vlan 20主机通信,标准ACL生效.

实验三:用ACL扩展列表禁止AR1访问FTP服务器

用ACL扩展列表禁止AR1访问FTP服务器

ACL访问控制理论+实操详解


<R1>ftp 202.10.100.100
Trying 202.10.100.100 ...

Press CTRL+K to abort
Connected to 202.10.100.100.
220 FtpServerTry FtpD for free 
User(202.10.100.100:(none)):ftp
331 Password required for ftp .
Enter password:
230 User ftp logged in , proceed

[R1-ftp]ls
200 Port command okay.
150 Opening ASCII NO-PRINT mode data connection for ls -l.
avutil-55.dll
dos
dsoframer.ocx
HdrwVdi.dll
HdrwVhd.dll
HdrwVhdx.dll
Hdrwvm.dll
libde265.dll
libhefc.dll
libwim.dll
Options.ini
releasenote.txt
swresample-2.dll
swscale-4.dll
VPreview.dll
226 Transfer finished successfully. Data connection closed.
FTP: 203 byte(s) received in 0.060 second(s) 3.38Kbyte(s)/sec.
[R1-ftp]bye
221 Goodbye.

配置R2

[Huawei]acl 3000
[Huawei-acl-adv-3000]rule deny tcp source 12.1.1.1 0.0.0.0 destination 202.10.10
0.100 0.0.0.0 destination-port eq 21
[Huawei-acl-adv-3000]rule permit ip source any destination any
[Huawei-acl-adv-3000]display this
[V200R003C00]
#
acl number 3000  
 rule 5 deny tcp source 12.1.1.1 0 destination 202.10.100.100 0 destination-port
 eq ftp 
 rule 10 permit ip 
 拒绝tcp流量,源是R1地址12.1.1.1 后跟反掩码 目标是服务器 202.10.100.100 目标的服务器开放端口是21 21是FTP控制接口

[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
[Huawei-GigabitEthernet0/0/0]quit
[Huawei]display acl 3000
Advanced ACL 3000, 2 rules
Acl's step is 5
 rule 5 deny tcp source 12.1.1.1 0 destination 202.10.100.100 0 destination-port
 eq ftp 
 rule 10 permit ip 

R1进行验证

<R1>ftp 202.10.100.100
Trying 202.10.100.100 ...

Press CTRL+K to abort
Error: Failed to connect to the remote host.

实验验证

R1
<R1>display acl 2000
Basic ACL 2000, 2 rules
Acl's step is 5
 rule 5 deny source 192.168.10.0 0.0.0.255 (9 matches)
 rule 10 permit 
R2
[Huawei]display acl 3000
Advanced ACL 3000, 2 rules
Acl's step is 5
 rule 5 deny tcp source 12.1.1.1 0 destination 202.10.100.100 0 destination-port
 eq ftp (3 matches)
 rule 10 permit ip 

命名ACL生效

实验总结:

1.ACL可以理解为一个包过滤防火墙,可以基于管理员配置的条目控制流量,还可以通过time-rang命令定义一个时间范围,在列表后面调用这个时间范围来实现灵活的网络控制。

2.ACL也可以被用来定义感兴趣地址或网段范围,以用于其他应用(如NAT)。