透明地代理telnet流量?

时间:2009-03-25 13:26:45

标签: networking firewall network-protocols telnet iptables

我们已经编写了一个代理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]---|

有没有办法实现这个目标?

谢谢!

3 个答案:

答案 0 :(得分:1)

这个问题与编程无关。

但你可以使用Linux内核工具TPROXY来实现,我相信它是与Linux分开发布的。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

一些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