访问控制列表学习:自反访问列表引入和配置
创始人
2024-03-21 09:30:36
0
三台路由器串联,要求阻止R3对R1的远程访问(telnet),但只能在R2上做。R1可以对R3进行telnet登陆。


1 底层配置
  R1
  interface Serial2/1
  p address 12.0.0.1 255.255.255.0
  router eigrp 90
  network 12.0.0.0 0.0.0.255
  o auto-summary
  R2
  interface Serial2/1
  p address 12.0.0.2 255.255.255.0
  interface Serial2/2
  p address 23.0.0.2 255.255.255.0
  router eigrp 90
  network 0.0.0.0
  o auto-summary
  R3
  interface Serial2/1
  p address 23.0.0.3 255.255.255.0
  router eigrp 90
  network 23.0.0.0 0.0.0.255
  o auto-summary

 
2 在R2上做ACL 拒绝R3对R1的所有TCP连接,但不能影响R1对R3的telnet

  在这里我们先用扩展访问列表做一下,看能不能实现。
  r2(config)#access-list 100 deny tcp host 23.0.0.3 host 12.0.0.1
  r2(config)#access-list 100 permit ip any any
  r2(config)#int s2/2
  r2(config-if)#ip access-group 100 in / 将ACL应用到接口
  为了验证将R1和R3的VTY线路配置成直接登陆,无需密码。
  r1(config)#line vty 0 4
  r1(config-line)#no login
  r3(config)#line vty 0 4
  r3(config-line)#no login
  现在进行验证。
  r3#telnet 12.0.0.1
  Trying 12.0.0.1 ...
   Destination unreachable; gateway or host down
  在R3上无法telnetR1,访问列表起了作用。我们再去R1做一下验证。
  r1#telnet 23.0.0.3
  Trying 23.0.0.3 ...
   Connection timed out; remote host not responding

  这时,R1也无法telnet R3 这可不是我们所希望的结果。那为什么会产生这种结果呢?这是因为R1向R3发起telnet请求时,是R1的一个随机端口与R3的23号端口通信。R3收到这个请求后,再用自己的23号端口向R1的随即端口回应。在这个例子中,R1向R3的请求,R3可以收到。但当R3向R1回应时,却被R2上的ACL阻止了。因为R2的ACL的作用是阻止R3向R1的所有TCP连接。这个TCP回应也就被阻止掉了,所以就间接的造成了R1无法telnet到R3.
  综上所述,在R2上用扩展访问列表可以阻止R3主动向R1发起的TCP连接。但也阻止了R3被动向R1发的TCP回应。这是不合题意的。因此就目前而言,扩展访问列表无法满足这个需求。于是就引出了一个新型的访问列表―――自反访问控制列表。

 
3 用自反访问列表解决此问题

  注意:因为自反列表只能建立在命名访问控制列表中,所以这里只能用命名控制列表
  r2#sh ip access-lists
  Reflexive IP access list REF
   触发的自反列表项,匹配自反列表后自动产生
  Extended IP access list REFIN
  deny tcp host 23.0.0.3 host 12.0.0.1
  permit ip any any
  evaluate REF
   根据上面的自反列表项执行
  Extended IP access list REFOUT
  permit ip any any reflect REF
   建立自反列表
  r2(config)#int s2/2
  r2(config-if)#ip access-group REFIN in
   在进方向调用列表REFIN
  r2(config-if)#ip access-group REFOUT out
  /在出方向调用列表REFOUT
  下面进行检验

  r3#telnet 12.0.0.1
  Trying 12.0.0.1 ...
   Destination unreachable; gateway or host down

  R3无法登陆R1,这一步成功。再到R1上验证

  r1#telnet 23.0.0.3
  Trying 23.0.0.3 ...
   Connection timed out; remote host not responding
  R1也无法登陆R3,这个需求失败了,我们到R2上查看一下ACL

  r2#sh ip access-lists
  Reflexive IP access list REF
  permit tcp host 23.0.0.3 eq telnet host 12.0.0.1 eq 11013 (5 matches) (time left 285)
  Extended IP access list REFIN
  deny tcp host 23.0.0.3 host 12.0.0.1 (18 matches)
  permit ip any any (150 matches)
  evaluate REF
  Extended IP access list REFOUT
  permit ip any any reflect REF (5 matches)
 

     让我们仔细的分析一下这个过程,当R3登陆R1时,R2 in 方向的REFIN 列表的第一条语句 deny tcp host 23.0.0.3 host 12.0.0.1 起了作用,因此登陆失败。

  当R1登陆R3时,R1先向R3发起TCP请求,当这个请求数据包从R2的S2/2接口出来时匹配了REFOUT 列表的permit ip any any reflect REF 的这条语句。并触发了一条自反项。

  我们可以看到permit tcp host 23.0.0.3 eq telnet host 12.0.0.1 eq 11013 (5 matches) (time left 285) 这个自反项是由于触发自动产生的。它的意思是允许R3用自己的23端口对R1向自己发出的telnet请求作出回应,这个回应向R1的随机端口11013发出。我开始看到产生了这个自反项,就觉得R1应该能成功登陆R3.但事实并不是如此。这是因为虽然产生了这条自反项,但要使数据包按照这个自反项来走,还需要匹配 evaluate REF 这条语句。而这条语句是建立在列表REFIN 中。当R3向R1的回应数据包到达R2时先要匹配列表REFIN .这时我们可以看到这个数据包直接匹配上了deny tcp host 23.0.0.3 host 12.0.0.1 这条语句,而不再匹配下面的语句了。所以它就被直接拒绝了。evaluate REF 这条语句在这里实际上被架空了因此 控制列表语句的顺序是至关重要的。

【编辑推荐】

  1. 思科认证专区
  2. 软考专区

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...