В iptables-m u32 - u32 может использоваться для соответствия определенным байтам в пакете против пользовательского значения. Например,
iptables-A ВВОДЯТ-p tcp - dport 1000-m u32 - ОТКЛОНЕНИЕ u32 "xxxxxxxxxxx=0x11"-j
Через вышеупомянутое iptables правило, будет отклонен пакет, если значение определенного 1 байта будет равно 0x11.
Мой вопрос: как представить "не равный", или "не соответствуют"? Из страницы справочника iptables кажется, что существует не такой!-m или-m! функция.
-m u32
часть командной строки указывает модуль. --u32
часть указывает фактическое выражение. Так, синтаксис, который Вы ищете:
iptables -A INPUT -p tcp --dport 1000 -m u32 ! --u32 "xxxxxxxxxxx=0x11" -j REJECT
См. также эти страницы справочника iptables-расширений , выборка ниже:
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.