noel0217 发表于 2018-7-20 07:03:02

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 www
  sw1(config)#int 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 www (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
  Inboundaccess 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 www
  sw1(config)#int 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 www
  禁止后,从客户端已无法访问,取消后可正常访问:
  sw1(config)#ip access-list extended name
  sw1(config-ext-nacl)#no deny tcp any host 172.16.1.1 eq www
  sw1(config-ext-nacl)#11 deny tcp 172.16.2.0 0.0.0.255 host 172.16.1.1 eq www
  sw1(config-ext-nacl)#12 permit tcp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq www
  sw1#sh 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 www (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语句来实现。
页: [1]
查看完整版本: Cisco之访问控制列表(ACL)