【问题标题】:Transparently proxying telnet traffic?透明代理 telnet 流量?
【发布时间】:2010-10-15 11:01:42
【问题描述】:

我们编写了一个工具来代理 telnet 流量,并分叉入站/出站流以进行记录(这是一个测试遗留系统的测试工具)。然而,我们遇到了障碍。在某些情况下,遗留系统依赖于知道客户端的 IP 地址,但是当我们使用代理时,客户端的地址全部更改为代理的地址。由于我们控制遗留系统用作网关的机器,我想知道是否没有某种方法可以通过 iptables 或其他一些数据包处理技术来欺骗它。所以,换句话说,没有我们拥有的代理:

[CLIENT A - 172.16.2.2]------|
[CLIENT B - 172.16.2.3]------|------------[SERVER sees CLIENT A as 172.16.2.2, B as 2.3, so on]
[CLIENT C - 172.16.2.4]------|

通过代理我们得到:

[CLIENT A - 172.16.2.2]---|
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees all clients as 172.16.2.5]
[CLIENT C - 172.16.2.4]---|

我们需要什么:

[CLIENT A - 172.16.2.2]---|
[CLIENT B - 172.16.2.3]---|---[PROXY 172.16.2.5]--[SERVER sees CLIENT A as 172.16.2.2, so on]
[CLIENT C - 172.16.2.4]---|

有什么办法可以做到吗?

谢谢!

【问题讨论】:

    标签: networking firewall network-protocols telnet iptables


    【解决方案1】:

    这个问题与编程无关。

    但是您可以使用 Linux 内核工具 TPROXY 来实现,我相信它是独立于 Linux 分发的。

    TPROXY 让您可以透明地代理流量,让客户端和服务器看到自己的原始 IP 地址。你也可以做其他的花样。

    【讨论】:

      【解决方案2】:

      您可以不使用代理,而是将网卡置于混杂模式并使用 tcpdump 或类似的东西来捕获正在发生的事情吗?

      【讨论】:

      • 这其实是个好主意,但是重新组装和排序的任务似乎有点令人生畏。我会看看是否存在任何像样的 tcp 重组实用程序。
      • tcpdump 有一些非常复杂的过滤机制。例如,您可以使用它们来过滤从一台主机到一个端口上的一台客户端的流量。
      • 是的,我们发现了一个名为 chaosreader 的项目,看起来它也会有所帮助。感谢您跳出框框思考!
      【解决方案3】:

      一些 NATing 怎么样:服务器真的需要查看客户端的确切 IP 还是仅查看唯一 IP?如果没有,怎么办:

      172.16.88.2                     --- 172.16.2.2
      172.16.88.3   ---  PROXY        --- 172.16.2.3   --- SERVER
      172.16.88.4       w/ 3 IPs      --- 172.16.2.4
      

      【讨论】:

      • 不幸的是...它需要查看原始 ips。不过感谢您的回答。
      猜你喜欢
      • 2010-10-12
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多