Назад | Перейти на главную страницу

Правило соответствия iptables для получения размера окна?

Мне нужно правило для сопоставления пакетов без установленных параметров и / или определенного размера окна приема:

IP (tos 0x0, ttl 66, id 9000, смещение 0, флаги [нет], протокол TCP (6), длина 40) yyyy11111> xxxxhttp: Flags [S], cksum 0xe425 (правильно), seq 1729214256, win 715 , длина 0

Итак, этот пакет имеет выигрыш 715, flags [none] -> как я могу сопоставить такие пакеты?

Спасибо за ответы, но я думаю, что нашел лучшее решение (лучшее по скорости):

iptables -I INPUT -m u32 --u32 "6&0xFF=0x6 && 0>>22&0x3C@12&0xFFFF=0x02CB" -j LOG

Вышеупомянутая строка гарантирует, что это TCP-пакет, затем находит длину IP и принимает (есть дополнительное двухбайтовое извлечение) его с байтами, которые необходимо сравнить (в примере 715). Одним словом, каждый мог извлечь / найти / сравнить каждый бит / байт в пакетах с помощью замечательного модуля -> u32. Для получения дополнительной информации: iptables-u32.v0.1

У Iptables есть опции для работы с флагами TCP и параметрами TCP, а именно: --tcp-option number и --tcp-flags.

Для размера окна вы можете использовать строковый модуль с опцией: --hex-string pattern. Итак, вариант будет --hex-string 02CB в твоем случае. Для получения точных результатов следует ограничить смещение поиска, используя --from и --to. смотреть на iptables руководство для получения дополнительной информации.