需要两个不同子网之间的转发器/回显服务器

时间:2016-05-10 10:43:41

标签: python networking

我正在设计一个自动化框架,我需要与不同网络中的各种机器进行通信。我面临的问题是,由于安全原因,在我的一个子网上访问受限,所以我不能在除22(ssh)之外的任何端口上发出请求。为了实现这一点,我需要一个恶魔,它将使用ssh(结构)重复从网络A(主节点)到网络B(从节点)上的机器发送的命令。现在我希望这个恶魔能够回应/重复每个命令主机发送到网络B上的其他机器并将响应发送回网络A中的主节点。

我知道这真的令人困惑,但我尽力让它变得清晰。如果有人知道我可以在python中做到这一点,除了编写我自己的程序,请评论。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您基本上需要在2个子网之间使用代理。您可以使用包含以下内容的逻辑来执行python的小代理:

1. A connection between the proxy & remote server B(original target).
2. Client_in_subnet_A --> Proxy --> Server_in_subnet_B
3. Client_in_subnet_A <-- Proxy --> Server_in_subnet_B
4. Close_connection.

有几种方法,https://gist.github.com/pomack/6194156https://mitmproxy.org/

答案 1 :(得分:0)

对于那些面临类似问题的人。 SSH隧道为我做了诀窍。在我的情况下防火墙阻止除了shh之外的所有东西,所以我创建了到网络B中的机器的ssh隧道。这可以通过从网络A中的机器执行以下命令来完成:

  

ssh -D 8123 -f -C -q -N sammy@example.com

sammy是Netwrok B中example.com上的用户。现在我所要做的就是使用SOCKS代理连接到localhost:8123并通过此连接路由我的所有流量。以下是您可以参考的好教程:

SOCKS Tunnel