Cisco之访问控制列表(ACL)

网友投稿 696 2022-10-26


Cisco之访问控制列表(ACL)

访问控制列表(ACL)是应用在路由器接口的指令列表(即规则),这些规则表用来告诉路由器,哪些数据包可以接收,哪些包需要拒绝。其基本原理如下:ACL使用包过滤技术,在路由器上读取OSI七层模型的第三层和第四层包头中的信息,如源地址、目的地址、源端口、目的端口等,根据预先定义的规则,对包进行过滤,从而达到访问控制的目的。

ACL可以分为以下两种基本类型:

标准ACL:检查数据包的源地址,来决定是允许还是拒绝转发数据包,使用1-99之间的数字作为表号。扩展ACL:既能对数据包的源地址和目标地址进行检查,也能检查特定的协议、端口号及其它的参数。使用100-199之间的数字作为表号。

ACL是一组规则的集合,应用在路由器的某个接口上,因此对路由器的接口而言,ACL有两个方向:

出:已经经过路由器的处理,离开路由器接口的数据包,检查顺序:先查路由表,再查出ACL。入:已经到达路由器接口的数据包,将要被路由器处理。检查顺序:先检查入ACL,再查询路由表。匹配规则:如果匹配第一条规则,则不再继续往下查,路由器将决定是允许或拒绝数据包通过。如果不匹配第一条规则,则依次往下检查,直到匹配一条规则,如果没有任何规则匹配,路由器默认会丢弃数据包。

由以上规则可见,数据包要么被拒绝,要么被丢弃。如下图:

示例 1:标准访问控制列表

ROUTE(config)#access-list 1 deny 192.168.3.0 0.0.0.255

ROUTE(config)#int f1/0                              #应用到入站方向

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

ROUTE#sh ip access-lists                            #查看ACL

Standard IP access list 1

10 deny   192.168.3.0, wildcard bits 0.0.0.255

C:\Users\win7>ping 172.16.2.1

正在 Ping 172.16.2.1 具有 32 字节的数据:

来自 192.168.3.254 的回复: 无法访问目标主机。

来自 192.168.3.254 的回复: 无法访问目标主机。

来自 192.168.3.254 的回复: 无法访问目标主机。

来自 192.168.3.254 的回复: 无法访问目标主机。

在接口上取消ACL应用

ROUTE(config-if)#no ip access-group 1 in

C:\Users\win7>ping 172.16.2.1                      #取消ACL后,可以ping通

正在 Ping 172.16.2.1 具有 32 字节的数据:

来自 172.16.2.1 的回复: 字节=32 时间=127ms TTL=252

来自 172.16.2.1 的回复: 字节=32 时间=97ms TTL=252

来自 172.16.2.1 的回复: 字节=32 时间=78ms TTL=252

来自 172.16.2.1 的回复: 字节=32 时间=84ms TTL=252

删除ACL:

ROUTE(config)#no access-list 1

仅允许某台主机访问

ROUTE(config)#access-list 2 permit host 192.168.3.2

ROUTE(config)#int f1/0

ROUTE(config-if)#ip access-group 2 in

允许所有:

ROUTE(config)#access-list 2 permit any

ROUTE(config)#access-list 2 permit 0.0.0.0 255.255.255.255

示例 2:扩展访问控制列表

sw1(config)#access-list 101 deny tcp any host 172.16.1.1 eq vlan 2

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

sw1#sh access-lists

Extended IP access list 101

10 deny tcp any host 172.16.1.1 eq (24 matches)

sw1#sh ip int vlan 2

Vlan2 is up, line protocol is up

Internet address is 172.16.2.254/24

Broadcast address is 255.255.255.255

Address determined by setup command

MTU is 1500 bytes

Helper address is not set

Directed broadcast forwarding is disabled

Multicast reserved groups joined: 224.0.0.5 224.0.0.6

Outgoing access list is not set

Inbound  access list is 101

...

客户端无法正常访问:

在接口上取消ACL应用,即可正常访问:

sw1(config-if)#int vlan 2

sw1(config-if)#no ip access-group 101 in

示例 3:命名访问控制列表

sw1(config)#ip access-list extended name

sw1(config-ext-nacl)#deny tcp any host 172.16.1.1 eq vlan 2

sw1(config-if)#ip access-group name in

sw1#sh ip access-lists name

Extended IP access list name

10 deny tcp any host 172.16.1.1 eq access-list extended name

sw1(config-ext-nacl)#no deny tcp any host 172.16.1.1 eq deny tcp 172.16.2.0 0.0.0.255 host 172.16.1.1 eq permit tcp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq ip access-lists

Extended IP access list name

11 deny tcp 172.16.2.0 0.0.0.255 host 172.16.1.1 eq (36 matches)

12 permit tcp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq www

备注:

在路由器的接口上每个方向只能有一个ACL,即每个接口只能有两个ACL,一个出方向ACL,一个入方向ACL。ACL只对穿越流量起作用,而对于路由器或三层交换机本身产生的流量不起作用。标准ACL尽可能靠尽目标,扩展ACL尽可能应用在靠近源服务器的位置。标准和扩展ACL如果要修改,需要删除整个ACL,而命名ACL可以通过增加或删除ACL语句来实现。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:apache配置多个站点
下一篇:SpringBoot mybatis 实现多级树形菜单的示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~