2013-02-12 126 views
0

我的公司正在通過兩臺服務器之間的TCP進行私有協議,現在他們詢問我們是否可以偵聽此協議並嘗試阻止其中的一些消息。通過TCP協議的代理

我正在考慮使用Simpleproxy,但我不知道如何聽這個協議,我也不確定這個實現有多強大。

是否有任何實現或設計我可以用來做到這一點?

這個想法是,我需要在服務器和客戶端之間的中間,並通過/轉發消息,除非當我向服務器發送失敗響應時,由於某些特定規則我不接受消息有。

服務器將是Linux。

假設有server1連接到server2,我的服務器將被命名爲middle_server,因此server1將更改其配置並將連接到我,然後middle_server將發送到server2,那麼middle_server將收到來自服務器2和爲下圖所示寄回到server1,

server1 --ask--> middle_server --ask---> server2 
server2 --response--> middle_server --response---> server2 
+0

什麼是協議?設計在很大程度上取決於它是什麼。 – duskwuff 2013-02-12 00:34:14

+0

這是我們的供應商和我們的服務器使用的奇怪和私人的東西。它的一部分是XML。 – user1832809 2013-02-12 00:36:50

+0

你可以訪問路由器嗎? – hek2mgl 2013-02-12 00:37:37

回答

0

我不知道任何實際的軟件包,可以做到你想要什麼,但你應該能夠使用iptables來阻止使用字符串模塊的特定字符串。我不太確定,如果字符串碰巧在多個數據包中被分解了,但它可以起作用,但您可以嘗試一下。

stackexchange question on filtering http requests using iptables

+0

這將工作隨機和不可預測的,正是你提到的原因。 – 2013-02-12 03:06:07

+0

作爲一箇中繼服務器怎麼樣,所以我從服務器1接收信息,然後如果我想通過消息傳遞給服務器2,則更改源IP併發送它,並且如果我想根據我的規則拒絕它,請將其拒絕。 – user1832809 2013-02-12 21:13:39

+0

這就是你要用iptables做的事情,但是要做到這一點,你需要像大衛施瓦茨所說的那樣做,並在嘗試應用任何過濾器之前重新組裝數據包。 – Eric 2013-02-12 22:06:39