LINUX.ORG.RU
ФорумAdmin

прозрачный http+websocket прокси с фильтрацией

 ,


0

1

Добрый день уважаемые форумчане!
Нужен прозрачный прокси с фильтрацией для некого приложения сбора статистики. Помогите советом пожалста...

Дано: приложение сбора статистики клиент-сервер, один сервер несколько клиентов.

Соединение клиента с сервером происходит следующим образом ( слушали вайршарком ):

клиент инициирует запрос ping ( ICMP ):
Echo (ping) request id=0x0001, seq=3/768, ttl=128 (reply in 313)

сервер отвечает на запрос ping:
Echo (ping) reply id=0x0001, seq=3/768, ttl=128 (request in 312)

клиент устанавливает TCP соединение:
49158 → 81 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
сервер:
81 → 49158 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=256 SACK_PERM=1

далее клиент запрашивает по HTTP: GET /workdirectory/put/AC6F-C729-4D61-837B-63A507AF/ HTTP/1.1
получает ответ переключения протокола на websocket:
497 HTTP/1.1 101 Switching Protocols

далее клиент отправляет по websocket строки длинной ~50 байт:
110 WebSocket Text [FIN] [MASKED]

….
полезная нагрузка:
Line-based text data (1 lines)
{«ID»:«X60»,«TYPE»:10,«VALUE»:«400910»,«ACLOSE»:0}

получает от сервера всегда одинаковый ответ:
99 WebSocket Text [FIN]


полезная нагрузка
Line-based text data (1 lines)
{«XDX»:«DDD»,«KEY»:«67565697294466565»}

Задача: создать прозрачный прокси, проверяющий websocket ответы от сервера на предмет точного соответствия полезной нагрузки заданной:
( «XDX»:«DDD»,«KEY»:«67565697294466565» )
В случае несовпадения рвать соединение или заменять на заданную )

Вопрос: можно ли с помощью готового софта реализовать такую задачу ?