В iptables -m u32 --u32 может использоваться для сопоставления определенных байтов в пакете с определенным пользователем значением. Например,
iptables -A ВХОД -p tcp --dport 1000 -m u32 --u32 "xxxxxxxxxxxx=0x11" -j ОТКЛОНИТЬ
Благодаря указанному выше правилу iptables пакет будет отклонен, если значение определенного 1 байта равноравно0x11.
Мой вопрос: как представить "не равно" или"не соответствует"? Судя по странице руководства iptables, такой функции !-m или -m! нет.
решение1
Часть -m u32
командной строки указывает модуль. --u32
Часть указывает фактическое выражение. Итак, синтаксис, который вы ищете, следующий:
iptables -A INPUT -p tcp --dport 1000 -m u32 ! --u32 "xxxxxxxxxxx=0x11" -j REJECT
Смотрите такжеiptables-extensions страницы руководства, выдержка ниже:
u32
U32 tests whether quantities of up to 4 bytes extracted from a
packet have specified values. The specification of what to
extract is general enough to find data at given offsets from
tcp headers or payloads.
[!] --u32 tests
The argument amounts to a program in a small language described below.