LINUX.ORG.RU

Сообщения alex3d

 

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

Форум — Admin

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

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

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

клиент инициирует запрос 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» )
В случае несовпадения рвать соединение или заменять на заданную )

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

 ,

alex3d
()

межсетевой экран в пределах одной логической подсети

Форум — Admin

Добрый день.

Стоит задача организовать фильтрацию в пределах одной логической подсети.
К примеру между клиентами 192.168.120.x и сервером 192.168.120.50
На MicroTik-e или RouteOS возможно это сделать ?
Физически подсети будут разделены этим маршрутизатором.

Спасибо.

 

alex3d
()

Фильтрация websocket пакетов по содержанию

Форум — Security

Здравствуйте.

Имеется некое приложение сбора статистики отправляющее на свой сервер данные по протоколу websocket. Все в локалке. После отправки любых данных приложение получает такой ответ от сервера:

Frame 347: 99 bytes on wire (792 bits), 99 bytes captured (792 bits) on interface \Device\NPF_{2B5D6C30-A082-41C7-BBA9-C98A835742F7}, id 0
Ethernet II, Src: 96:55:db:a2:a4:2f (96:55:db:a3:a2:2f), Dst: SURECOMT_93:d2:0e (00:02:41:93:d2:0e)
Internet Protocol Version 4, Src: 192.168.0.50, Dst: 192.168.0.70 Transmission Control Protocol, Src Port: 81, Dst Port: 49158, Seq: 579, Ack: 459, Len: 45
WebSocket
Line-based text data (1 lines)
{«CMD»:«PUT»,«KEY»:«57456759461837635676»}

Стоит задача поставить между приложением и сервером фаирвол и пропускать от сервера только пакеты этого типа, т.е. пакеты websocket по портам 81 и 49158 соответственно, содержащие конкретно:
Line-based text data (1 lines)
{«CMD»:«PUT»,«KEY»:«57456759461837635676»}
Любые другие не пропускать.
Пакеты от приложения к серверу пропускать без фильтрации.

Посоветуйте пожалуйста, как это организовать, какой софт лучше всего подойдет для решения задачи ?

Заранее спасибо.

 ,

alex3d
()

Фильтрация websocket пакетов по содержанию

Форум — Admin

Здравствуйте.

Имеется некое приложение сбора статистики отправляющее на свой сервер данные по протоколу websocket. Все в локалке. После отправки любых данных приложение получает такой ответ от сервера:

Frame 347: 99 bytes on wire (792 bits), 99 bytes captured (792 bits) on interface \Device\NPF_{2B5D6C30-A082-41C7-BBA9-C98A835742F7}, id 0
Ethernet II, Src: 96:55:db:a2:a4:2f (96:55:db:a3:a2:2f), Dst: SURECOMT_93:d2:0e (00:02:41:93:d2:0e)
Internet Protocol Version 4, Src: 192.168.0.50, Dst: 192.168.0.70 Transmission Control Protocol, Src Port: 81, Dst Port: 49158, Seq: 579, Ack: 459, Len: 45
WebSocket
Line-based text data (1 lines)
{«CMD»:«PUT»,«KEY»:«57456759461837635676»}

Стоит задача поставить между приложением и сервером фаирвол и пропускать от сервера только пакеты этого типа, т.е. пакеты websocket по порту 81, содержащие конкретно:
Line-based text data (1 lines) {«CMD»:«PUT»,«KEY»:«57456759461837635676»}
Любые другие не пропускать.
Пакеты от приложения к серверу пропускать без фильтрации.

Посоветуйте пожалуйста, как это организовать, какой софт лучше всего подойдет для решения задачи ?

Заранее спасибо.

 ,

alex3d
()

RSS подписка на новые темы