代码之家  ›  专栏  ›  技术社区  ›  Corey Goldberg

欺骗IP地址的来源

  •  20
  • Corey Goldberg  · 技术社区  · 15 年前

    该工具使用Python的urllib2进行传输。有没有可能用伪造的IP地址来发送HTTP请求来组成请求的数据包?

    5 回复  |  直到 15 年前
        1
  •  48
  •   Unknown    15 年前

    这是对HTTP的误解。HTTP协议基于 TCP . TCP协议依赖于3路握手来初始化请求。

    alt text http://upload.wikimedia.org/wikipedia/commons/archive/c/c7/20051221162333!300px-Tcp-handshake.png

    不用说,如果您欺骗您的原始IP地址,您将永远无法通过同步阶段,也不会发送任何HTTP信息(服务器无法将其发送到合法主机)。

    如果您需要测试一个IP负载平衡器,这不是这样做的方法。

        2
  •  6
  •   Anthony    15 年前

    请注意,正如我昨天刚刚了解到的:

    我想您已经暗示您已经知道了这一点,但是对HTTP请求的任何响应都会指向在报头中显示的IP地址。因此,如果您希望看到这些响应,您需要控制路由器并设置它,以便所有伪造的IP都路由回您用于查看响应的IP。

        3
  •  5
  •   Glenn Maynard    15 年前

    您要设置用于连接的源地址。谷歌搜索“urllib2源地址”给出 http://bugs.python.org/file9988/urllib2_util.py . 我没试过。

    您正在运行的系统需要配置您正在测试的IP。

        4
  •  1
  •   Rob Carr    15 年前

    我建议您看看是否可以配置负载平衡器,使其基于X-Forwarded-For报头,而不是包含HTTP请求的数据包的源IP做出决定。我知道大多数重要的商业负载平衡器都有这种功能。

    如果你不能做到这一点,那么我建议你可能需要配置一个linux机器和一堆辅助IP——不用费心在LB上配置静态路由,只要让你的linux机器成为LB设备的默认网关。

        5
  •  1
  •   Community CDub    9 年前

    current client address on eth0 = 192.168.1.10/24
    
    server-side:
    ifconfig eth0:1 172.16.1.1 netmask 255.255.255.0
    
    client-side:
    ifconfig eth0:1 172.16.1.2 netmask 255.255.255.0 
    route add -net 172.16.1.0/24 gw 172.16.1.1 metric 0
    

    对任意多个子网重复此操作。重新启动apache以在所有新的alias接口上设置侦听器,您就可以关闭并运行了。