浅谈谈traceroute时经过cisco防火墙的过程

繁简对译:[]  字体设置:[] 2008-09-23  作者:李鑫  来源:www.chinaitlab.com  阅读  次

预备知识:
    1.traceroute原理,UDP和ICMP
    2.cisco防火墙基础NAT相关知识

    正文:
    防火墙做为一种安全设备,是不希望自己的接口地址被别人探测到的,所以在做traceroute时,不管是从内到外,还是从外到内,pix接口地址都是隐藏的,不在这其中的。

    这是这次实验的网络拓扑

   

  1)pix 不做转换
    pix config:
    no nat-control
    access-list in permit ip any any
    access-list out permit ip any any
    access-group in in interface inside
    access-group out in interface outside
    winxp trace R2

   

   R5 trace R2

   

  R2 trace winxp

   

 R2 trace R6的172.16.1.1的时候,出现如下情况:

   

 这个时候即使到了172.16.1.1,但是icmp port-unreachable还是出向接口发出的,在这里是10.10.10.2

    总结:如果在没有nat转换的时候,只要访问控制列表放行相应的流量,就可以进行正常的traceroute

2) pix static nat
    static (in,out) 209.165.200.242 172.16.1.2
    winxp trace R2

 

   在返回的time exceeded数据包中,有原有包的ip和icmp头部信息,这里的头部信息显示是的源是172.16.1.2,这个时候在到达209.165.200.241的时候应该是转换后的地址209.165.200.242。所以在经过防火墙的时候被fixup了

    在R3的icmp debug

   

 

  从R2到winxp

   

    R6上面的debug

   

 

    winxp抓包

   

 

 

    可以看出,数据包是正常的到达了目的ip 172.16.1.2的,但是每次在pix转换的时候,都把源地址转换成nat地址209.165.200.242,而且有两次,分别是R6和winxp回的包。


    3)nat 0
    如果只是普通的nat 0(产生xlate转换项),和静态的方式无异。返回的还是转换过后的地址。
    但是如果nat 0 (不产生xlate转换项)的时候,那返回的都是真实的ip地址。
    pix config:
    nat (inside) 0 access-list nonat
    access-list nonat permit ip 172.16.1.0 255.255.255.0 any

   

 

    4)
    关于inspect icmp和inspect icmp-error
    如果是inspect icmp那就把icmp流量也看成有状态话的,不需要显式的放行。
    inspect icmp-error是返回的icmp-error流量,修改一些参数,使符合转换前的地址和校验值等。如上面的trace的时候,就修改了icmp-error中的地址。

 

打印 收藏 关闭