Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux TCP上协议的代理_Linux_Networking_Tcp - Fatal编程技术网

Linux TCP上协议的代理

Linux TCP上协议的代理,linux,networking,tcp,Linux,Networking,Tcp,我的公司正在两台服务器之间使用TCP专用协议,现在他们询问我们是否可以监听该协议并尝试阻止其部分消息 我曾考虑使用,但我不确定如何使用它来听协议,也不确定这个实现有多健壮 是否有任何实现或设计我可以用来做到这一点 这个想法是,我需要在中间,在服务器和客户端之间,传递/转发消息,除非当我由于某些特定规则而不接受消息时,向服务器发送失败响应。p> 服务器将是Linux 假设有一台服务器1将连接到服务器2,我的服务器将被命名为middle_server,因此服务器1将更改其配置并连接到我,然后midd

我的公司正在两台服务器之间使用TCP专用协议,现在他们询问我们是否可以监听该协议并尝试阻止其部分消息

我曾考虑使用,但我不确定如何使用它来听协议,也不确定这个实现有多健壮

是否有任何实现或设计我可以用来做到这一点

这个想法是,我需要在中间,在服务器和客户端之间,传递/转发消息,除非当我由于某些特定规则而不接受消息时,向服务器发送失败响应。p> 服务器将是Linux

假设有一台服务器1将连接到服务器2,我的服务器将被命名为middle_server,因此服务器1将更改其配置并连接到我,然后middle_server将发送到服务器2,然后middle_server将接收来自服务器2的响应并将其发送回服务器1,如下所示

server1 --ask--> middle_server --ask---> server2
server2 --response--> middle_server --response---> server2

我不确定是否有任何实际的包可以实现您想要的功能,但是您应该能够使用iptables来使用string模块阻止特定的字符串。如果字符串恰好在多个数据包中被拆分,我不太确定这会有多好,但是您可以尝试一下


什么是协议?设计在很大程度上取决于它是什么,它是我们的供应商和我们的服务器所使用的怪异和私有的东西。它的一部分是XML。你能访问路由器吗?不,我没有访问路由器的权限。你需要编写一个服务器,作为服务器和客户端实现协议。您将以服务器的身份与客户机交谈,并以客户机的身份与服务器交谈。当您在它们之间传递消息时,您会根据自己的规则对它们进行过滤。您至少需要足够的协议实现来识别消息边界。你有协议的规范吗?否则,您至少必须对其消息边界的工作方式进行反向工程。这是一项艰巨的工作,应该由具有服务器端经验的程序员来完成。语言可以是C、python、javascript。这将随机和不可预测地工作,原因正是您提到的。作为中继如何,因此我从server1接收,然后更改源IP,如果我想将消息传递到服务器2,则发送它,如果我想根据我的规则拒绝它?这就是你对iptables所做的,但是要准确地做到这一点,你需要按照david schwartz所说的做,并在尝试对数据包应用任何过滤器之前重新组装数据包。