学习日志8.14--ALC(Access Control List)访问控制列表

ACL访问控制列表是一条或者多条流量规则的集合,作用主要用于流量的匹配,还可以匹配路由。通过ACL对流量加以控制,通过配合使用过滤工具,对流量进行拦截。需要注意的是ACL只是一个个匹配工具,负责匹配源IP地址、目的IP地址、端口和协议号,但是实现对流量的拦截还需要使用到流量的过滤工具来过滤流量。

建立ACL实验拓扑结构,用AR2220当路由器网关,两台服务器都可以提供http和ftp服务配置好主机和客户端服务器的IP地址,配置好路由器接口的IP地址,在两台交换机上关闭stp生成树功能,防止时间阻塞,影响实验现象。

命令:[SW1]undo stp enable,关闭stp生成树功能

命令:[SW2]stp edged-port default,配置交换设备所有接口为边缘接口,default默认为边缘接口

配置好后,尝试看能不能ping通主机pingServer1成功主机pingServer2成功用客户端ping服务器Server1成功用客户端ping服务器Server2成功

开启服务器的http和ftp服务,用客户端获取访问客户端访问服务器Server1成功客户端访问服务器Server2成功

实验的网络配置结构没有问题,服务器服务没有问题,都能互相访问,都能取得连接。

开始实验,实验目的就是拒绝PC1访问Server1。只要是192.168.1.1的流量访问Server1 192.168.1.101的流量都拒绝。这样拦截就需要有规则去匹配数据包的源IP地址和目的IP地址,过滤工具拦截工具根据匹配的情况去拦截流量。

给路由器配置ACL,实现拒绝PC1访问Server1

命令:[R1]acl 2000,创建acl列表,列表编号是2000

命令:[R1-acl-basic-2000]rule 10 deny source 192.168.1.1 0.0.0.0,给2000列表配置规则,规则编号是10,拒绝源IP地址为192.168.1.1 ,匹配的主机是0.0.0.0。

命令:[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 2000,调用过滤工具traffic-filter,流量方向是inbound,匹配列表是acl2000

配置好ACL列表,配置好过滤工具后,用主机PC1访问服务器,看能不能成功。主机PC1访问Server1失败,配置成功。注意在配置的时候,不仅要配置ACL列表,还需要配置过滤工具。只配置ACL列表是不能实现流量的过滤拦截。

ALC配置原理

列表编号ACL列表有2000-2999的基础控制列表;有3000-3999的高级控制列表;还有4000-4999的二层控制列表,负责匹配二层MAC地址。列表编号是2000-2999的列表是基础访问控制列表,只能匹配到数据的源IP地址;列表编号是3000-3999的是高级访问控制列表,能够匹配到数据包中的源IP地址、目的IP地址、源端口、目的端口、协议号。当流量进入的时候,会匹配ACL列表中的信息,符合匹配规则的再经过滤器过滤就允许通过。对于ACL2000的列表只能匹配到数据包的源IP地址,ACL3000的列表可以匹配到数据包的源IP地址、目的IP地址、源端口、目的端口、协议号。

Rule规则,规则默认情况下规则是按顺序匹配的(从小到大)。规则一旦匹配之后,就不继续往下再匹配了,所以建议规则的配置是按规则的范围小的在前,规则范围大的在后面。

命令:[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255,配置一条规则,编号是5,允许192.168.1.0的网段通过,而这个范围就包含192.168.1.1,范围比rule 10 的范围大。

现在用主机PC1去尝试pingServer1发现可以ping通

命令:[R1-acl-basic-2000]dis acl all,查看所有的规则,可以查看规则的配置情况看规则的配置,是范围大的在前,然后范围小的在后面,当192.168.1.1的流量进来的时候,先匹配第一条规则,第一条规则允许192.168.1.0网段的通过。通过后就不匹配第二条规则,第二条规则拒绝192.168.1.1的流量通过就不起作用了。

下面将允许192.168.1.0网段流量通过的规则编号改为20

命令:[R1-acl-basic-2000]undo rule 5,删除掉刚才配置的规则5再次尝试用PC1去pingServer1这次PC1就不能成功ping通Server1

然后用客户端192.168.1.2pingServer1成功。所以配置的规则拒绝192.168.1.1的流量通过,允许在192.168.1.0网段的除192.168.1.1的IP的流量通过。所以在配置规则的时候建议将规则范围大的配置在后面,规则范围小的配置在前面。

关于IP掩码的配置,在正常情况下IP掩码的配置都是看IP地址的类型,A类10.0.0.0掩码是255.0.0.0、B类172.16.0.0掩码是255.255.0.0、C类192.168.1.0掩码是255.255.255.0、确定到某一主机192.168.1.1掩码是255.255.255.255。

在ACL匹配的时候是用Wildcard通配符来确定的,这个时候,匹配A类地址10.0.0.0通配符是0.255.255.255、匹配B类地址172.16.0.0通配符是0.0.255.255、匹配C类地址192.168.1.0通配符是0.0.0.255、匹配一个主机192.168.1.1通配符是0.0.0.0.0(直接写0)。在配置规则的时候需要写上IP地址,配置通配符。

配置好规则之后,还要在接口上调用过滤器去拦截流量,需要配置好流量方向,配置好规则

命令:[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 2000,在接口0/0/1的视图下调用过滤器,过滤inbound方向的流量,ACL控制列表是2000。

Traffic-filter(流量过滤)工具。流量过滤工具是和接口关联的而且还分inbound方向和outbound方向。在外面的流量进入到路由器里面就是inbound反向需要管控,在路由器的流量出道外面是outbound反向也需要管控。但是相反的流量是管控不了的。

命令:[R1-GigabitEthernet0/0/1]traffic-filter outbound acl 2000,配置一个outbound方向的流量过滤器,然后用PC1去尝试pingServer1能ping成功,说明过滤器是管控不了相反方向的流量,inbound方向的流量只能被inbound方向的过滤器管控,outbound方向的流量只能被outbound方向的过滤器管控。

命令:[R1-GigabitEthernet0/0/1]undo traffic-filter outbound ,删除outbound方向的过滤器

命令:[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 2000,配置inbound方向的过滤器。

再用PC1去pingServer1这次就不能ping通。

注意一个接口的过滤器只能绑定一个ACL控制列表

继续实验

在成功拒绝PC1 192.168.1.1访问服务器Server1后,尝试访问Server2发现,PC1pingServer2也不通了,但是我只希望拒绝访问Server1。

是因为用ACL2000基础控制列表,只能控制源IP地址,现在配置等于,将所有的192.168.1.1的流量都拒绝了,既不到Server1 192.168.2.101,也不到Server2 192.168.2.102。那要实现PC1只拒绝访问Server1,就既需要匹配源IP地址,又需要匹配目的IP地址,如果要控制访问功能的话,就需要匹配协议号。就要用到ACL3000系列的高级访问控制列表。

配置ACL3000

命令:[R1-acl-adv-3000]rule 10 deny ip source 192.168.1.1 0 destination 192.168.2.101 0,规则编号10拒绝IP流量源IP是192.168.1.1通配符是0,目的IP是192.168.2.101通配符是0。

命令:[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 3000,调用inbound方向的过滤器

配置好后用PC1尝试ping测试pingServer1失败pingServer2成功

这样的配置就完成了实验要求只拒绝PC1访问Server1。

现在希望拒绝客户端访问Server1的http,但是可以访问Server1的ftp服务,拒绝客户端访问Server2的ftp,但是可以访问Server2的http服务。

命令:[R1-acl-adv-3000]rule 20 deny tcp source 192.168.1.2 0 destination 192.168.2.101

0 destination-port eq 80,规则编号20,拒绝tcp流量,源IP是192.168.1.2目的IP192.168.2.101,目的端口是eq(等于80)。

命令:[R1-acl-adv-3000]rule 20 deny tcp source 192.168.1.2 0 destination 192.168.2.101

0 destination-port eq ?,通过这样的方式来查看端口的信息。
在配置端口的时候有eq(等于)、gt(超过)、lt(低于)和range(范围),通过这个来设置端口。

为什么要拒绝tcp的流量,需要知道TCP(传输控制协议)常用于Web服务(HTTP协议默认使用TCP的80端口)、文件传输(FTP)、电子邮件(SMTP、POP3等)等互联网应用,所以拒绝http服务要拒绝tcp的流量。

用客户端访问试一下连接服务器失败客户端被拒绝访问Server1的http服务,但是允许访问Server1的ftp服务。

命令:[R1-acl-adv-3000]rule 30 deny tcp source 192.168.1.2 0 destination 192.168.2.102

0 destination-port range 20 21,配置20 21的端口拒绝访问ftp服务,ftp控制端口是21,ftp数据端口是20。查看配置的规则,然后调用过滤器。
配置好后用客户端访问Server2的ftp服务连接失败。客户端被拒绝访问Server2的ftp服务,但是不影响客户端访问Server2的http服务。

相关推荐
怀旧66613 分钟前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
不爱学习的YY酱1 小时前
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(4)
网络·计算机网络
装睡的小5郎1 小时前
家庭宽带如何开启公网ipv4和ipv6
网络
yfs10241 小时前
压缩Minio桶中的文件为ZIP,并通过 HTTP 响应输出
网络·网络协议·http
有谁看见我的剑了?1 小时前
Ubuntu 22.04.5 配置vlan子接口和网桥
服务器·网络·ubuntu
hgdlip1 小时前
有什么办法换网络ip动态
网络·tcp/ip·智能路由器
超栈1 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
infiniteWei1 小时前
【Lucene】原理学习路线
学习·搜索引擎·全文检索·lucene
დ旧言~1 小时前
【网络】应用层——HTTP协议
开发语言·网络·网络协议·http·php
不爱学习的YY酱1 小时前
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(1)
网络·计算机网络