网络原理与应用——访问控制列表

访问控制列表(ACL)

ACL概述

访问控制列表(Access Control List,ACL)是应用在路由器接口的指令列表,就是用来告诉路由器哪些数据可以接收哪些数据不能接收哪里来的数据可以接收哪里来的数据不能接收

ACL原理主要分为两个方向

出:已经过路由器的处理,正离开路由器接口的数据包
入:已经到达路由器接口的数据包,将被路由器处理

ACL的分类

标准ACL:根据数据包的源IP地址来允许或拒绝数据包(列表号为:1-99)

扩展ACL:根据数据包的源IP地址、目的IP地址、指定地址、端口和标志来允许或拒绝数据包(列表号为100-199)

命名ACL:允许在标准和扩展ACL中使用名称代替列表号

标准ACL的配置

(这里红色的命令都是不变的,蓝色的命令都是要去改变的参数)

1.创建ACL  2.指定ACL列表号  3.满足通过或拒绝的条件

Router(config)#access-lsit  access-list-number  {permit|deny}  source [source-wildcard]

Router(config)#access-list+表号 {permit/deny} +源地址+反码

比如:允许来自网络192.168.1.0/24和主机192.168.2.2的流量通过

Router(config)#access-lsit 1 permit 192.168.1.0 0.0.0.255(网络段的子网掩码为255.255.255.0)
Router(config)#access-lsit 1 permit 192.168.2.2 0.0.0.0(PC的子网掩码为255.255.255.255)

注:后面跟的是子网掩码的反码,反码就是用255.255.255.255减去子网掩码

host和any关键字

比如拒绝192.168.2.2的主机发送数据包,其他的都允许

Router(config)#access-lsit 1 deny host 192.168.2.2

Router(config)#access-lsit 1 permit any

假如允许192.168.2.2的访问发送数据包其他的都拒绝

Router(config)#access-lsit 1 permit host 192.168.2.2

Router(config)#access-lsit 1 deny any

删除命令:Router(config)# access-list 1(删除列表1的访问控制列表)

ACL用于接口就要进入接口去删除

Router(config)# no ip access-group 1 in|out(删除应用于接口上列表1的in或者out)

实例如下图:

拒绝192.168.2.2访问192.168.1.2,其他的都可以访问,192.168.1.2也可以访问192.168.2.2

1.首先设置好三台的pc的IP地址还有路由器两个端口的IP地址(全部都标示在图上了)

2.配置路由器的访问控制列表

Router(config)#access-lsit 1 deny host 192.168.2.2

Router(config)#access-lsit 1 permit any

再到Gig0/1端口配置进入的控制

Router(config)#intface g0/1

Router(config-if)#ip access-group 1 in

注:因为这里192.168.2.2的数据包是从g0/1这个接口传进去的,当然也可以设置在g0/0的出口位置,但是那样的话,相当于路由器还得处理传进来的数据进行解析脱衣服,最后还要穿衣服,所以这里设置在了g0/0的进入口

这个时候你用pc3去ping pc0会发现ping不通,pc4去ping pc0就可以ping通,pc0也可以ping通pc3和pc4

扩展ACL的配置

(这里红色的命令都是不变的,蓝色的命令都是要去改变的参数)

Router(config)# access-list access-list-number  {permit/deny}  protocol  {source source-wildcard destination destination-wildcard}  {lt|gt|eq|neq}  端口号

Router(config)# access-list+编号+{permit/deny} +协议类型+ 源IP地址+源反码+目的码+目的反码 + {lt(小于)、gt(大于)、eq(等于)、neq(不等于)}+端口号

协议类型:IP、TCPUDP、ICMP

比如:允许网络192.168.1.0/24访问192.168.2.0/24的IP流量通过,而拒绝其他任何流量

Router(config)# access-list  101  permit  ip  host  192.168.1.0  host 192.168.2.0

Router(config)# access-list  101  deny  any  any

比如:拒绝网络192.168.1.0/24访问FTP服务器192.168.2.2/24的IP流量通过而允许其他任何流量(FTP服务器端口为21)

Router(config)# access-list  101  deny  tcp  192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21

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

注:将ACL应用到接口上和删除建立的ACL和标准ACL一样,命令也一摸一样

实例如下图:

允许pc对server0服务器进行ping或者发送请求但是拒绝pc5访问server0服务器的网站服务,拒绝pc6(192.168.3.1)对服务器server0进行ping,但是可以对pc5进行ping,pc5也可以对他进行ping

思考:pc5对pc6和server0服务器进行访问都会经过Router2路由器,如果把ACL设置在3和4的路由器上数据发送过程前面就会经过更多的路由器,路由器还要对数据包进行拆分解析,再包装,过程会影响数据发送的效率所以选择在Router2路由器上去设置,因为pc5发送数据出去从路由器的g0/0方向发送,再思考如果把ACL设置在路由器的g0/1接口数据出去的方向数据就还是会经过路由器对数据包进行拆分再包装,所以就把ACL放在路由器的g0/0接口的in

1.设置好pc和服务器的IP地址在路由器上配置好IP地址以及路由表(IP地址信息都在图上)

2.首先先创建ACL列表设置过滤的条件

Router(config)#access-list 101 deny tcp host 192.168.1.100 host 192.168.2.111 eq 80

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

3.进入到g0/0接口设置ACL的过滤方向为进来的数据包进行控制

Router(config)#int g0/0

Router(config-if)#ip access-group 101 in

在R1中设置ACL之前: 网页能够打开            设置了ACL之后:网页打不开                     用pc5去ping服务器能够ping通

(说明已经成功配置拒绝192.168.1.100访问192.168.2.111网页服务的请求)

思考:要实现拒绝pc6向服务器进行ping,首先pc6发送和接收数据包都要通过路由器Router3,所以果断就在Router3路由器的g0/2接口去加入ACL,方向是从里面发送出来所以是in,可以向pc5其他pc进行ping就是除了服务器其他都可以ping,这里就可以用host和any关键字

1.路由器Router3加入ACL

Router(config)#access-list 101 deny icmp host 192.168.3.1 host 192.168.2.111

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

2.把过滤设置在0/2接口的进来方向

Router(config)#int g0/2

Router(config-if)#ip access-group 101 in

没设置ACL之前:能ping通                                                   设置ACL之后:无法ping通

          

用pc5去ping pc6,再用pc6分别去ping服务器和pc5

(这里显示用pc6去ping服务器ping不同却ping的通pc5,而pc5也ping的通pc6,所以ACL就设置成功了)

命名ACL的配置

创建命名ACL

Router(config)# ip access-list {standard/extended} +数字/字母/字符串

比如:Router(config)# ip access-list standard Csico

标准命名

比如:Router(config-std-nacl)# 15 permit host 192.168.2.1

Router(config-std-nacl)# 序列号 {permit/deny} +源码+源反码

扩展命名

比如:Router(config-ext-nacl)# 16 deny host 192.168.1.100  host 192.168.2.100

Router(config-ext-nacl)# 序列号 {permit/deny} 源码+源反码+目的码+目的反码+ {lt(小于)、gt(大于)、eq(等于)、neq(不等于)}+端口号

对于命名ACL来说,可以单独删除命令:

Router(config)# ip access-list standard Oyeah  (在“Oyeah”命令中操作)

Router(config)# no 10

Router(config)#no permit host 192.168.2.1

发布了15 篇原创文章 · 获赞 4 · 访问量 8532

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/103143018
今日推荐